diff --git a/generate-openapi.sh b/generate-openapi.sh index 83fb15d..e790a11 100755 --- a/generate-openapi.sh +++ b/generate-openapi.sh @@ -6,6 +6,6 @@ CHAT_DIR="../chat" rm -rf $OUTPUT_DIR -( cd $CHAT_DIR ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language ts --spec ./releases/v2/feeds-serverside-api.yaml --output $OUTPUT_DIR ) +( cd $CHAT_DIR ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language ts --spec ./releases/v2/serverside-api.yaml --output $OUTPUT_DIR ) yarn lint:gen \ No newline at end of file diff --git a/src/StreamFeed.ts b/src/StreamFeed.ts index 63c581f..ee0fad7 100644 --- a/src/StreamFeed.ts +++ b/src/StreamFeed.ts @@ -1,7 +1,7 @@ import { FeedApi } from './gen/feeds/FeedApi'; export class StreamFeed extends FeedApi { - get fid() { + get feed() { return `${this.group}:${this.id}`; } } diff --git a/src/StreamFeedsClient.ts b/src/StreamFeedsClient.ts index d138d91..0f00d27 100644 --- a/src/StreamFeedsClient.ts +++ b/src/StreamFeedsClient.ts @@ -1,8 +1,13 @@ import { FeedsApi } from './gen/feeds/FeedsApi'; +import { QueryFeedsRequest } from './gen/models'; import { StreamFeed } from './StreamFeed'; export class StreamFeedsClient extends FeedsApi { feed = (group: string, id: string) => { return new StreamFeed(this, group, id); }; + + queryFeeds = (request: QueryFeedsRequest) => { + return super._queryFeeds(request); + }; } diff --git a/src/gen/common/CommonApi.ts b/src/gen/common/CommonApi.ts index f9e76c2..96eed6b 100644 --- a/src/gen/common/CommonApi.ts +++ b/src/gen/common/CommonApi.ts @@ -1335,6 +1335,7 @@ export class CommonApi { user_ids: request?.user_ids, calls: request?.calls, conversations: request?.conversations, + files: request?.files, messages: request?.messages, new_call_owner_id: request?.new_call_owner_id, new_channel_owner_id: request?.new_channel_owner_id, diff --git a/src/gen/feeds/FeedsApi.ts b/src/gen/feeds/FeedsApi.ts index 72d01c8..49aaa53 100644 --- a/src/gen/feeds/FeedsApi.ts +++ b/src/gen/feeds/FeedsApi.ts @@ -4,6 +4,8 @@ import { AcceptFeedMemberInviteResponse, AcceptFollowRequest, AcceptFollowResponse, + ActivityFeedbackRequest, + ActivityFeedbackResponse, AddActivityRequest, AddActivityResponse, AddBookmarkRequest, @@ -23,6 +25,8 @@ import { CreateFeedViewResponse, CreateFeedsBatchRequest, CreateFeedsBatchResponse, + CreateMembershipLevelRequest, + CreateMembershipLevelResponse, DeleteActivitiesRequest, DeleteActivitiesResponse, DeleteActivityReactionResponse, @@ -38,6 +42,7 @@ import { ExportFeedUserDataResponse, FollowBatchRequest, FollowBatchResponse, + FollowRequest, GetActivityResponse, GetCommentRepliesResponse, GetCommentResponse, @@ -75,12 +80,13 @@ import { QueryFeedsResponse, QueryFollowsRequest, QueryFollowsResponse, + QueryMembershipLevelsRequest, + QueryMembershipLevelsResponse, RejectFeedMemberInviteRequest, RejectFeedMemberInviteResponse, RejectFollowRequest, RejectFollowResponse, Response, - SingleFollowRequest, SingleFollowResponse, UnfollowBatchRequest, UnfollowBatchResponse, @@ -106,6 +112,8 @@ import { UpdateFeedViewResponse, UpdateFollowRequest, UpdateFollowResponse, + UpdateMembershipLevelRequest, + UpdateMembershipLevelResponse, UpsertActivitiesRequest, UpsertActivitiesResponse, } from '../models'; @@ -119,7 +127,7 @@ export class FeedsApi { ): Promise> { const body = { type: request?.type, - fids: request?.fids, + feeds: request?.feeds, expires_at: request?.expires_at, id: request?.id, parent_id: request?.parent_id, @@ -180,7 +188,7 @@ export class FeedsApi { request: DeleteActivitiesRequest, ): Promise> { const body = { - activity_ids: request?.activity_ids, + ids: request?.ids, hard_delete: request?.hard_delete, user_id: request?.user_id, user: request?.user, @@ -229,112 +237,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async deleteActivity(request: { - activity_id: string; - hard_delete?: boolean; - }): Promise> { - const queryParams = { - hard_delete: request?.hard_delete, - }; - const pathParams = { - activity_id: request?.activity_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'DELETE', - '/api/v2/feeds/activities/{activity_id}', - pathParams, - queryParams, - ); - - decoders.DeleteActivityResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getActivity(request: { - activity_id: string; - }): Promise> { - const pathParams = { - activity_id: request?.activity_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/api/v2/feeds/activities/{activity_id}', pathParams, undefined); - - decoders.GetActivityResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updateActivityPartial( - request: UpdateActivityPartialRequest & { activity_id: string }, - ): Promise> { - const pathParams = { - activity_id: request?.activity_id, - }; - const body = { - user_id: request?.user_id, - unset: request?.unset, - set: request?.set, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PATCH', - '/api/v2/feeds/activities/{activity_id}', - pathParams, - undefined, - body, - 'application/json', - ); - - decoders.UpdateActivityPartialResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updateActivity( - request: UpdateActivityRequest & { activity_id: string }, - ): Promise> { - const pathParams = { - activity_id: request?.activity_id, - }; - const body = { - expires_at: request?.expires_at, - poll_id: request?.poll_id, - text: request?.text, - user_id: request?.user_id, - visibility: request?.visibility, - attachments: request?.attachments, - filter_tags: request?.filter_tags, - interest_tags: request?.interest_tags, - custom: request?.custom, - location: request?.location, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PUT', - '/api/v2/feeds/activities/{activity_id}', - pathParams, - undefined, - body, - 'application/json', - ); - - decoders.UpdateActivityResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async deleteBookmark(request: { activity_id: string; folder_id?: string; @@ -423,6 +325,38 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async activityFeedback( + request: ActivityFeedbackRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + hide: request?.hide, + mute_user: request?.mute_user, + reason: request?.reason, + report: request?.report, + show_less: request?.show_less, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/activities/{activity_id}/feedback', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.ActivityFeedbackResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async castPollVote( request: CastPollVoteRequest & { activity_id: string; poll_id: string }, ): Promise> { @@ -568,6 +502,107 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async deleteActivity(request: { + id: string; + hard_delete?: boolean; + }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; + const pathParams = { + id: request?.id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/api/v2/feeds/activities/{id}', pathParams, queryParams); + + decoders.DeleteActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getActivity(request: { + id: string; + }): Promise> { + const pathParams = { + id: request?.id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/feeds/activities/{id}', pathParams, undefined); + + decoders.GetActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateActivityPartial( + request: UpdateActivityPartialRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + user_id: request?.user_id, + unset: request?.unset, + set: request?.set, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/api/v2/feeds/activities/{id}', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.UpdateActivityPartialResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateActivity( + request: UpdateActivityRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + expires_at: request?.expires_at, + poll_id: request?.poll_id, + text: request?.text, + user_id: request?.user_id, + visibility: request?.visibility, + attachments: request?.attachments, + filter_tags: request?.filter_tags, + interest_tags: request?.interest_tags, + custom: request?.custom, + location: request?.location, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PUT', + '/api/v2/feeds/activities/{id}', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.UpdateActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async queryBookmarkFolders( request?: QueryBookmarkFoldersRequest, ): Promise> { @@ -785,15 +820,19 @@ export class FeedsApi { } async deleteComment(request: { - comment_id: string; + id: string; + hard_delete?: boolean; }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined); + >('DELETE', '/api/v2/feeds/comments/{id}', pathParams, queryParams); decoders.DeleteCommentResponse?.(response.body); @@ -801,15 +840,15 @@ export class FeedsApi { } async getComment(request: { - comment_id: string; + id: string; }): Promise> { const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined); + >('GET', '/api/v2/feeds/comments/{id}', pathParams, undefined); decoders.GetCommentResponse?.(response.body); @@ -817,10 +856,10 @@ export class FeedsApi { } async updateComment( - request: UpdateCommentRequest & { comment_id: string }, + request: UpdateCommentRequest & { id: string }, ): Promise> { const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const body = { comment: request?.comment, @@ -831,7 +870,7 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/api/v2/feeds/comments/{comment_id}', + '/api/v2/feeds/comments/{id}', pathParams, undefined, body, @@ -844,10 +883,10 @@ export class FeedsApi { } async addCommentReaction( - request: AddCommentReactionRequest & { comment_id: string }, + request: AddCommentReactionRequest & { id: string }, ): Promise> { const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const body = { type: request?.type, @@ -861,7 +900,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v2/feeds/comments/{comment_id}/reactions', + '/api/v2/feeds/comments/{id}/reactions', pathParams, undefined, body, @@ -874,10 +913,10 @@ export class FeedsApi { } async queryCommentReactions( - request: QueryCommentReactionsRequest & { comment_id: string }, + request: QueryCommentReactionsRequest & { id: string }, ): Promise> { const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const body = { limit: request?.limit, @@ -891,7 +930,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v2/feeds/comments/{comment_id}/reactions/query', + '/api/v2/feeds/comments/{id}/reactions/query', pathParams, undefined, body, @@ -904,7 +943,7 @@ export class FeedsApi { } async deleteCommentReaction(request: { - comment_id: string; + id: string; type: string; user_id?: string; }): Promise> { @@ -912,7 +951,7 @@ export class FeedsApi { user_id: request?.user_id, }; const pathParams = { - comment_id: request?.comment_id, + id: request?.id, type: request?.type, }; @@ -920,7 +959,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v2/feeds/comments/{comment_id}/reactions/{type}', + '/api/v2/feeds/comments/{id}/reactions/{type}', pathParams, queryParams, ); @@ -931,7 +970,7 @@ export class FeedsApi { } async getCommentReplies(request: { - comment_id: string; + id: string; depth?: number; sort?: string; replies_limit?: number; @@ -948,17 +987,12 @@ export class FeedsApi { next: request?.next, }; const pathParams = { - comment_id: request?.comment_id, + id: request?.id, }; const response = await this.apiClient.sendRequest< StreamResponse - >( - 'GET', - '/api/v2/feeds/comments/{comment_id}/replies', - pathParams, - queryParams, - ); + >('GET', '/api/v2/feeds/comments/{id}/replies', pathParams, queryParams); decoders.GetCommentRepliesResponse?.(response.body); @@ -979,11 +1013,14 @@ export class FeedsApi { request: CreateFeedGroupRequest, ): Promise> { const body = { - feed_group_id: request?.feed_group_id, - default_view_id: request?.default_view_id, + id: request?.id, default_visibility: request?.default_visibility, + activity_processors: request?.activity_processors, + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, custom: request?.custom, notification: request?.notification, + ranking: request?.ranking, }; const response = await this.apiClient.sendRequest< @@ -1002,109 +1039,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async deleteFeedGroup(request: { - feed_group_id: string; - hard_delete?: boolean; - }): Promise> { - const queryParams = { - hard_delete: request?.hard_delete, - }; - const pathParams = { - feed_group_id: request?.feed_group_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'DELETE', - '/api/v2/feeds/feed_groups/{feed_group_id}', - pathParams, - queryParams, - ); - - decoders.DeleteFeedGroupResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getFeedGroup(request: { - feed_group_id: string; - }): Promise> { - const pathParams = { - feed_group_id: request?.feed_group_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'GET', - '/api/v2/feeds/feed_groups/{feed_group_id}', - pathParams, - undefined, - ); - - decoders.GetFeedGroupResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getOrCreateFeedGroup( - request: GetOrCreateFeedGroupRequest & { feed_group_id: string }, - ): Promise> { - const pathParams = { - feed_group_id: request?.feed_group_id, - }; - const body = { - default_view_id: request?.default_view_id, - default_visibility: request?.default_visibility, - custom: request?.custom, - notification: request?.notification, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v2/feeds/feed_groups/{feed_group_id}', - pathParams, - undefined, - body, - 'application/json', - ); - - decoders.GetOrCreateFeedGroupResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updateFeedGroup( - request: UpdateFeedGroupRequest & { feed_group_id: string }, - ): Promise> { - const pathParams = { - feed_group_id: request?.feed_group_id, - }; - const body = { - default_view_id: request?.default_view_id, - custom: request?.custom, - notification: request?.notification, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PUT', - '/api/v2/feeds/feed_groups/{feed_group_id}', - pathParams, - undefined, - body, - 'application/json', - ); - - decoders.UpdateFeedGroupResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async deleteFeed(request: { feed_group_id: string; feed_id: string; @@ -1430,9 +1364,11 @@ export class FeedsApi { async getFollowSuggestions(request: { feed_group_id: string; limit?: number; + user_id?: string; }): Promise> { const queryParams = { limit: request?.limit, + user_id: request?.user_id, }; const pathParams = { feed_group_id: request?.feed_group_id, @@ -1452,6 +1388,105 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async deleteFeedGroup(request: { + id: string; + hard_delete?: boolean; + }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; + const pathParams = { + id: request?.id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/api/v2/feeds/feed_groups/{id}', pathParams, queryParams); + + decoders.DeleteFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getFeedGroup(request: { + id: string; + }): Promise> { + const pathParams = { + id: request?.id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/feeds/feed_groups/{id}', pathParams, undefined); + + decoders.GetFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getOrCreateFeedGroup( + request: GetOrCreateFeedGroupRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + default_visibility: request?.default_visibility, + activity_processors: request?.activity_processors, + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, + custom: request?.custom, + notification: request?.notification, + ranking: request?.ranking, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/feed_groups/{id}', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.GetOrCreateFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateFeedGroup( + request: UpdateFeedGroupRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + activity_processors: request?.activity_processors, + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, + custom: request?.custom, + notification: request?.notification, + ranking: request?.ranking, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PUT', + '/api/v2/feeds/feed_groups/{id}', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.UpdateFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async listFeedViews(): Promise> { const response = await this.apiClient.sendRequest< StreamResponse @@ -1466,7 +1501,7 @@ export class FeedsApi { request: CreateFeedViewRequest, ): Promise> { const body = { - view_id: request?.view_id, + id: request?.id, activity_processors: request?.activity_processors, activity_selectors: request?.activity_selectors, aggregation: request?.aggregation, @@ -1490,15 +1525,15 @@ export class FeedsApi { } async deleteFeedView(request: { - view_id: string; + id: string; }): Promise> { const pathParams = { - view_id: request?.view_id, + id: request?.id, }; const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/api/v2/feeds/feed_views/{view_id}', pathParams, undefined); + >('DELETE', '/api/v2/feeds/feed_views/{id}', pathParams, undefined); decoders.DeleteFeedViewResponse?.(response.body); @@ -1506,15 +1541,15 @@ export class FeedsApi { } async getFeedView(request: { - view_id: string; + id: string; }): Promise> { const pathParams = { - view_id: request?.view_id, + id: request?.id, }; const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/api/v2/feeds/feed_views/{view_id}', pathParams, undefined); + >('GET', '/api/v2/feeds/feed_views/{id}', pathParams, undefined); decoders.GetFeedViewResponse?.(response.body); @@ -1522,10 +1557,10 @@ export class FeedsApi { } async getOrCreateFeedView( - request: GetOrCreateFeedViewRequest & { view_id: string }, + request: GetOrCreateFeedViewRequest & { id: string }, ): Promise> { const pathParams = { - view_id: request?.view_id, + id: request?.id, }; const body = { activity_processors: request?.activity_processors, @@ -1538,7 +1573,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v2/feeds/feed_views/{view_id}', + '/api/v2/feeds/feed_views/{id}', pathParams, undefined, body, @@ -1551,10 +1586,10 @@ export class FeedsApi { } async updateFeedView( - request: UpdateFeedViewRequest & { view_id: string }, + request: UpdateFeedViewRequest & { id: string }, ): Promise> { const pathParams = { - view_id: request?.view_id, + id: request?.id, }; const body = { activity_processors: request?.activity_processors, @@ -1567,7 +1602,7 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/api/v2/feeds/feed_views/{view_id}', + '/api/v2/feeds/feed_views/{id}', pathParams, undefined, body, @@ -1602,7 +1637,7 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async feedsQueryFeeds( + protected async _queryFeeds( request?: QueryFeedsRequest, ): Promise> { const body = { @@ -1659,7 +1694,7 @@ export class FeedsApi { } async follow( - request: SingleFollowRequest, + request: FollowRequest, ): Promise> { const body = { source: request?.source, @@ -1689,8 +1724,8 @@ export class FeedsApi { request: AcceptFollowRequest, ): Promise> { const body = { - source_fid: request?.source_fid, - target_fid: request?.target_fid, + source: request?.source, + target: request?.target, follower_role: request?.follower_role, }; @@ -1764,8 +1799,8 @@ export class FeedsApi { request: RejectFollowRequest, ): Promise> { const body = { - source_fid: request?.source_fid, - target_fid: request?.target_fid, + source: request?.source, + target: request?.target, }; const response = await this.apiClient.sendRequest< @@ -1807,6 +1842,110 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async createMembershipLevel( + request: CreateMembershipLevelRequest, + ): Promise> { + const body = { + id: request?.id, + name: request?.name, + description: request?.description, + priority: request?.priority, + tags: request?.tags, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/membership_levels', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.CreateMembershipLevelResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryMembershipLevels( + request?: QueryMembershipLevelsRequest, + ): Promise> { + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/feeds/membership_levels/query', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.QueryMembershipLevelsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteMembershipLevel(request: { + id: string; + }): Promise> { + const pathParams = { + id: request?.id, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/api/v2/feeds/membership_levels/{id}', + pathParams, + undefined, + ); + + decoders.Response?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateMembershipLevel( + request: UpdateMembershipLevelRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + description: request?.description, + name: request?.name, + priority: request?.priority, + tags: request?.tags, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/api/v2/feeds/membership_levels/{id}', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.UpdateMembershipLevelResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async unfollowBatch( request: UnfollowBatchRequest, ): Promise> { diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index 388f321..9fc5c8b 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -1656,6 +1656,13 @@ decoders.CreateImportResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CreateMembershipLevelResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + membership_level: { type: 'MembershipLevelResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CreateRoleResponse = (input?: Record) => { const typeMappings: TypeMapping = { role: { type: 'Role', isSingle: true }, @@ -1888,6 +1895,8 @@ decoders.FeedGroupResponse = (input?: Record) => { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, }; return decode(typeMappings, input); }; @@ -2535,6 +2544,15 @@ decoders.MembersResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.MembershipLevelResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.Message = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3301,6 +3319,13 @@ decoders.QueryFollowsResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.QueryMembershipLevelsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + membership_levels: { type: 'MembershipLevelResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.QueryMessageFlagsResponse = (input?: Record) => { const typeMappings: TypeMapping = { flags: { type: 'MessageFlagResponse', isSingle: false }, @@ -3563,6 +3588,8 @@ decoders.ReviewQueueItemNewEvent = (input?: Record) => { received_at: { type: 'DatetimeType', isSingle: true }, + flags: { type: 'ModerationFlagResponse', isSingle: false }, + action: { type: 'ActionLogResponse', isSingle: true }, review_queue_item: { type: 'ReviewQueueItemResponse', isSingle: true }, @@ -3580,6 +3607,8 @@ decoders.ReviewQueueItemResponse = (input?: Record) => { bans: { type: 'Ban', isSingle: false }, + flags: { type: 'ModerationFlagResponse', isSingle: false }, + completed_at: { type: 'DatetimeType', isSingle: true }, reviewed_at: { type: 'DatetimeType', isSingle: true }, @@ -3605,6 +3634,8 @@ decoders.ReviewQueueItemUpdatedEvent = (input?: Record) => { received_at: { type: 'DatetimeType', isSingle: true }, + flags: { type: 'ModerationFlagResponse', isSingle: false }, + action: { type: 'ActionLogResponse', isSingle: true }, review_queue_item: { type: 'ReviewQueueItemResponse', isSingle: true }, @@ -4105,6 +4136,13 @@ decoders.UpdateMemberPartialResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpdateMembershipLevelResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + membership_level: { type: 'MembershipLevelResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UpdateMessagePartialResponse = (input?: Record) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, @@ -4256,6 +4294,17 @@ decoders.UserFlaggedEvent = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UserMessagesDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UserMute = (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 5e111b4..940c3ea 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -131,9 +131,9 @@ export interface AcceptFeedMemberInviteResponse { } export interface AcceptFollowRequest { - source_fid: string; + source: string; - target_fid: string; + target: string; follower_role?: string; } @@ -242,6 +242,12 @@ export interface ActiveCallsMetrics { subscribers?: SubscribersMetrics; } +export interface ActiveCallsResolutionStats { + p10: number; + + p50: number; +} + export interface ActiveCallsSummary { active_calls: number; @@ -263,6 +269,8 @@ export interface ActivityAddedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -279,11 +287,35 @@ export interface ActivityDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; } +export interface ActivityFeedbackRequest { + hide?: boolean; + + mute_user?: boolean; + + reason?: string; + + report?: boolean; + + show_less?: boolean; + + user_id?: string; + + user?: UserRequest; +} + +export interface ActivityFeedbackResponse { + activity_id: string; + + duration: string; +} + export interface ActivityLocation { lat: number; @@ -299,6 +331,8 @@ export interface ActivityMarkEvent { type: string; + feed_visibility?: string; + mark_all_read?: boolean; mark_all_seen?: boolean; @@ -355,12 +389,16 @@ export interface ActivityPinnedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; } -export interface ActivityProcessorConfig {} +export interface ActivityProcessorConfig { + type: string; +} export interface ActivityReactionAddedEvent { created_at: Date; @@ -375,6 +413,8 @@ export interface ActivityReactionAddedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -393,6 +433,8 @@ export interface ActivityReactionDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -411,6 +453,8 @@ export interface ActivityReactionUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -427,6 +471,8 @@ export interface ActivityRemovedFromFeedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -435,7 +481,7 @@ export interface ActivityRemovedFromFeedEvent { export interface ActivityRequest { type: string; - fids: string[]; + feeds: string[]; expires_at?: string; @@ -523,6 +569,8 @@ export interface ActivityResponse { expires_at?: Date; + hidden?: boolean; + text?: string; visibility_tag?: string; @@ -563,6 +611,8 @@ export interface ActivityUnpinnedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -579,6 +629,8 @@ export interface ActivityUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -587,7 +639,7 @@ export interface ActivityUpdatedEvent { export interface AddActivityRequest { type: string; - fids: string[]; + feeds: string[]; expires_at?: string; @@ -3554,6 +3606,8 @@ export interface CommentAddedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -3570,6 +3624,8 @@ export interface CommentDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -3588,6 +3644,8 @@ export interface CommentReactionAddedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -3606,6 +3664,8 @@ export interface CommentReactionDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -3622,6 +3682,8 @@ export interface CommentReactionUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -3688,6 +3750,8 @@ export interface CommentUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -4002,9 +4066,7 @@ export interface CreateExternalStorageResponse { } export interface CreateFeedGroupRequest { - feed_group_id: string; - - default_view_id?: string; + id: string; default_visibility?: | 'public' @@ -4013,9 +4075,17 @@ export interface CreateFeedGroupRequest { | 'members' | 'private'; + activity_processors?: ActivityProcessorConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + custom?: Record; notification?: NotificationConfig; + + ranking?: RankingConfig; } export interface CreateFeedGroupResponse { @@ -4025,7 +4095,7 @@ export interface CreateFeedGroupResponse { } export interface CreateFeedViewRequest { - view_id: string; + id: string; activity_processors?: ActivityProcessorConfig[]; @@ -4088,6 +4158,26 @@ export interface CreateImportURLResponse { upload_url: string; } +export interface CreateMembershipLevelRequest { + id: string; + + name: string; + + description?: string; + + priority?: number; + + tags?: string[]; + + custom?: Record; +} + +export interface CreateMembershipLevelResponse { + duration: string; + + membership_level: MembershipLevelResponse; +} + export interface CreatePollOptionRequest { text: string; @@ -4289,7 +4379,7 @@ export interface DecayFunctionConfig { } export interface DeleteActivitiesRequest { - activity_ids: string[]; + ids: string[]; hard_delete?: boolean; @@ -4301,7 +4391,7 @@ export interface DeleteActivitiesRequest { export interface DeleteActivitiesResponse { duration: string; - deleted_activity_ids: string[]; + deleted_ids: string[]; } export interface DeleteActivityReactionResponse { @@ -4477,6 +4567,8 @@ export interface DeleteUsersRequest { conversations?: 'soft' | 'hard'; + files?: boolean; + messages?: 'soft' | 'pruning' | 'hard'; new_call_owner_id?: string; @@ -4995,6 +5087,8 @@ export interface FeedCreatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -5007,32 +5101,42 @@ export interface FeedDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; } export interface FeedGroup { + aggregation_version: number; + app_pk: number; created_at: Date; - default_view_id: string; - default_visibility: string; id: string; updated_at: Date; + activity_processors: ActivityProcessorConfig[]; + + activity_selectors: ActivitySelectorConfig[]; + custom: Record; deleted_at?: Date; last_feed_get_at?: Date; + aggregation?: AggregationConfig; + notification?: NotificationConfig; + ranking?: RankingConfig; + stories?: StoriesConfig; } @@ -5045,6 +5149,8 @@ export interface FeedGroupChangedEvent { type: string; + feed_visibility?: string; + received_at?: Date; feed_group?: FeedGroup; @@ -5063,6 +5169,8 @@ export interface FeedGroupDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -5073,14 +5181,20 @@ export interface FeedGroupResponse { updated_at: Date; - default_view_id?: string; - default_visibility?: string; + activity_processors?: ActivityProcessorConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + custom?: Record; notification?: NotificationConfig; + ranking?: RankingConfig; + stories?: StoriesConfig; } @@ -5109,6 +5223,8 @@ export interface FeedMemberAddedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -5125,6 +5241,8 @@ export interface FeedMemberRemovedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -5135,6 +5253,8 @@ export interface FeedMemberRequest { invite?: boolean; + membership_level?: string; + role?: string; custom?: Record; @@ -5169,6 +5289,8 @@ export interface FeedMemberUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; @@ -5236,7 +5358,7 @@ export interface FeedResponse { description: string; - fid: string; + feed: string; follower_count: number; @@ -5278,13 +5400,15 @@ export interface FeedUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; user?: UserResponseCommonFields; } export interface FeedViewResponse { - view_id: string; + id: string; last_used_at?: Date; @@ -5510,6 +5634,8 @@ export interface FollowCreatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -5524,6 +5650,8 @@ export interface FollowDeletedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -5578,6 +5706,8 @@ export interface FollowUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; } @@ -6036,8 +6166,6 @@ export interface GetOrCreateCallResponse { } export interface GetOrCreateFeedGroupRequest { - default_view_id?: string; - default_visibility?: | 'public' | 'visible' @@ -6045,9 +6173,17 @@ export interface GetOrCreateFeedGroupRequest { | 'members' | 'private'; + activity_processors?: ActivityProcessorConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + custom?: Record; notification?: NotificationConfig; + + ranking?: RankingConfig; } export interface GetOrCreateFeedGroupResponse { @@ -6826,6 +6962,24 @@ export interface MembersResponse { members: ChannelMember[]; } +export interface MembershipLevelResponse { + created_at: Date; + + id: string; + + name: string; + + priority: number; + + updated_at: Date; + + tags: string[]; + + description?: string; + + custom?: Record; +} + export interface Message { cid: string; @@ -7457,12 +7611,12 @@ export interface ModerationFlagResponse { entity_type: string; - id: string; - type: string; updated_at: string; + user_id: string; + entity_creator_id?: string; reason?: string; @@ -7633,6 +7787,8 @@ export interface NotificationFeedUpdatedEvent { type: string; + feed_visibility?: string; + received_at?: Date; aggregated_activities?: AggregatedActivityResponse[]; @@ -8021,7 +8177,7 @@ export interface PinActivityResponse { duration: string; - fid: string; + feed: string; user_id: string; @@ -8302,6 +8458,8 @@ export interface PublisherVideoMetrics { frame_encoding_time_ms?: ActiveCallsLatencyStats; jitter_ms?: ActiveCallsLatencyStats; + + resolution?: ActiveCallsResolutionStats; } export interface PublishersMetrics { @@ -8958,6 +9116,28 @@ export interface QueryMembersPayload { user?: UserRequest; } +export interface QueryMembershipLevelsRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryMembershipLevelsResponse { + duration: string; + + membership_levels: MembershipLevelResponse[]; + + next?: string; + + prev?: string; +} + export interface QueryMessageFlagsPayload { limit?: number; @@ -9651,9 +9831,9 @@ export interface RejectFeedMemberInviteResponse { } export interface RejectFollowRequest { - source_fid: string; + source: string; - target_fid: string; + target: string; } export interface RejectFollowResponse { @@ -9889,7 +10069,7 @@ export interface ReviewQueueItemNewEvent { received_at?: Date; - flags?: FlagResponse[]; + flags?: ModerationFlagResponse[]; action?: ActionLogResponse; @@ -9923,7 +10103,7 @@ export interface ReviewQueueItemResponse { bans: Ban[]; - flags: FlagResponse[]; + flags: ModerationFlagResponse[]; languages: string[]; @@ -9965,7 +10145,7 @@ export interface ReviewQueueItemUpdatedEvent { received_at?: Date; - flags?: FlagResponse[]; + flags?: ModerationFlagResponse[]; action?: ActionLogResponse; @@ -10500,18 +10680,6 @@ export interface ShowChannelResponse { duration: string; } -export interface SingleFollowRequest { - source: string; - - target: string; - - create_notification_activity?: boolean; - - push_preference?: 'all' | 'none'; - - custom?: Record; -} - export interface SingleFollowResponse { duration: string; @@ -11373,7 +11541,7 @@ export interface UnmuteResponse { export interface UnpinActivityResponse { duration: string; - fid: string; + feed: string; user_id: string; @@ -11935,11 +12103,17 @@ export interface UpdateExternalStorageResponse { } export interface UpdateFeedGroupRequest { - default_view_id?: string; + activity_processors?: ActivityProcessorConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; custom?: Record; notification?: NotificationConfig; + + ranking?: RankingConfig; } export interface UpdateFeedGroupResponse { @@ -12040,6 +12214,24 @@ export interface UpdateMemberPartialResponse { channel_member?: ChannelMemberResponse; } +export interface UpdateMembershipLevelRequest { + description?: string; + + name?: string; + + priority?: number; + + tags?: string[]; + + custom?: Record; +} + +export interface UpdateMembershipLevelResponse { + duration: string; + + membership_level: MembershipLevelResponse; +} + export interface UpdateMessagePartialRequest { skip_enrich_url?: boolean; @@ -12463,6 +12655,34 @@ export interface UserFlaggedEvent { user?: User; } +export interface UserMessagesDeletedEvent { + created_at: Date; + + hard_delete: boolean; + + soft_delete: boolean; + + custom: Record; + + user: UserResponseCommonFields; + + type: string; + + channel_id?: string; + + channel_member_count?: number; + + channel_type?: string; + + cid?: string; + + received_at?: Date; + + team?: string; + + channel_custom?: Record; +} + export interface UserMute { created_at: Date; @@ -13057,6 +13277,7 @@ export type WebhookEvent = | ({ type: 'user.deactivated' } & UserDeactivatedEvent) | ({ type: 'user.deleted' } & UserDeletedEvent) | ({ type: 'user.flagged' } & UserFlaggedEvent) + | ({ type: 'user.messages.deleted' } & UserMessagesDeletedEvent) | ({ type: 'user.muted' } & UserMutedEvent) | ({ type: 'user.reactivated' } & UserReactivatedEvent) | ({ type: 'user.unbanned' } & UserUnbannedEvent)