From b0556dd9ec6187700b81d044b864eb4409231e39 Mon Sep 17 00:00:00 2001 From: Jana Naumoska Date: Fri, 26 Jun 2026 12:10:20 +0200 Subject: [PATCH] Add batch query activity and comment reactions endpoints --- src/gen/feeds/FeedsApi.ts | 64 ++++++++++++++++++++++++ src/gen/model-decoders/decoders.ts | 16 ++++++ src/gen/models/index.ts | 80 ++++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+) diff --git a/src/gen/feeds/FeedsApi.ts b/src/gen/feeds/FeedsApi.ts index 641e367..390517b 100644 --- a/src/gen/feeds/FeedsApi.ts +++ b/src/gen/feeds/FeedsApi.ts @@ -20,6 +20,10 @@ import { AddCommentsBatchResponse, AddReactionRequest, AddReactionResponse, + BatchQueryActivityReactionsRequest, + BatchQueryActivityReactionsResponse, + BatchQueryCommentReactionsRequest, + BatchQueryCommentReactionsResponse, CastPollVoteRequest, CreateCollectionsRequest, CreateCollectionsResponse, @@ -349,6 +353,36 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async batchQueryActivityReactions( + request: BatchQueryActivityReactionsRequest, + ): Promise> { + const body = { + activity_ids: request?.activity_ids, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + user_id: request?.user_id, + sort: request?.sort, + filter: request?.filter, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/activities/reactions/query', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.BatchQueryActivityReactionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async deleteBookmark(request: { activity_id: string; folder_id?: string; @@ -1143,6 +1177,36 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async batchQueryCommentReactions( + request: BatchQueryCommentReactionsRequest, + ): Promise> { + const body = { + comment_ids: request?.comment_ids, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + user_id: request?.user_id, + sort: request?.sort, + filter: request?.filter, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/comments/reactions/query', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.BatchQueryCommentReactionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async deleteCommentBookmark(request: { comment_id: string; folder_id?: string; diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index e17a9ea..5583efe 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -508,6 +508,22 @@ decoders.BanResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.BatchQueryActivityReactionsResponse = ( + input?: Record, +) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.BatchQueryCommentReactionsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.BlockListResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 5b27af5..25cd112 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -2321,6 +2321,86 @@ export interface BanResponse { user?: UserResponse; } +export interface BatchQueryActivityReactionsRequest { + /** + * Activity IDs to fetch the user's reactions for (max 100) + */ + activity_ids: string[]; + + limit?: number; + + next?: string; + + prev?: string; + + /** + * Server-side only. The user whose reactions to fetch; defaults to the authenticated user for client-side requests + */ + user_id?: string; + + sort?: SortParamRequest[]; + + /** + * Optional filter on reaction_type or created_at + */ + filter?: Record; + + user?: UserRequest; +} + +export interface BatchQueryActivityReactionsResponse { + /** + * Duration of the request in milliseconds + */ + duration: string; + + reactions: FeedsReactionResponse[]; + + next?: string; + + prev?: string; +} + +export interface BatchQueryCommentReactionsRequest { + /** + * Comment IDs to fetch the user's reactions for (max 100) + */ + comment_ids: string[]; + + limit?: number; + + next?: string; + + prev?: string; + + /** + * Server-side only. The user whose reactions to fetch; defaults to the authenticated user for client-side requests + */ + user_id?: string; + + sort?: SortParamRequest[]; + + /** + * Optional filter on reaction_type or created_at + */ + filter?: Record; + + user?: UserRequest; +} + +export interface BatchQueryCommentReactionsResponse { + /** + * Duration of the request in milliseconds + */ + duration: string; + + reactions: FeedsReactionResponse[]; + + next?: string; + + prev?: string; +} + export interface BlockActionRequestPayload { /** * Reason for blocking