@stream-io/feeds-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/@react-bindings/index.ts +2 -0
  2. package/CHANGELOG.md +44 -0
  3. package/LICENSE +219 -0
  4. package/README.md +9 -0
  5. package/dist/@react-bindings/hooks/useComments.d.ts +12 -0
  6. package/dist/@react-bindings/hooks/useStateStore.d.ts +3 -0
  7. package/dist/@react-bindings/index.d.ts +2 -0
  8. package/dist/index-react-bindings.browser.cjs +56 -0
  9. package/dist/index-react-bindings.browser.cjs.map +1 -0
  10. package/dist/index-react-bindings.browser.js +53 -0
  11. package/dist/index-react-bindings.browser.js.map +1 -0
  12. package/dist/index-react-bindings.node.cjs +56 -0
  13. package/dist/index-react-bindings.node.cjs.map +1 -0
  14. package/dist/index-react-bindings.node.js +53 -0
  15. package/dist/index-react-bindings.node.js.map +1 -0
  16. package/dist/index.browser.cjs +5799 -0
  17. package/dist/index.browser.cjs.map +1 -0
  18. package/dist/index.browser.js +5782 -0
  19. package/dist/index.browser.js.map +1 -0
  20. package/dist/index.d.ts +13 -0
  21. package/dist/index.node.cjs +5799 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.js +5782 -0
  24. package/dist/index.node.js.map +1 -0
  25. package/dist/src/Feed.d.ts +109 -0
  26. package/dist/src/FeedsClient.d.ts +63 -0
  27. package/dist/src/ModerationClient.d.ts +3 -0
  28. package/dist/src/common/ActivitySearchSource.d.ts +17 -0
  29. package/dist/src/common/ApiClient.d.ts +20 -0
  30. package/dist/src/common/BaseSearchSource.d.ts +87 -0
  31. package/dist/src/common/ConnectionIdManager.d.ts +11 -0
  32. package/dist/src/common/EventDispatcher.d.ts +11 -0
  33. package/dist/src/common/FeedSearchSource.d.ts +17 -0
  34. package/dist/src/common/Poll.d.ts +34 -0
  35. package/dist/src/common/SearchController.d.ts +41 -0
  36. package/dist/src/common/StateStore.d.ts +124 -0
  37. package/dist/src/common/TokenManager.d.ts +29 -0
  38. package/dist/src/common/UserSearchSource.d.ts +17 -0
  39. package/dist/src/common/gen-imports.d.ts +2 -0
  40. package/dist/src/common/rate-limit.d.ts +2 -0
  41. package/dist/src/common/real-time/StableWSConnection.d.ts +144 -0
  42. package/dist/src/common/real-time/event-models.d.ts +36 -0
  43. package/dist/src/common/types.d.ts +29 -0
  44. package/dist/src/common/utils.d.ts +54 -0
  45. package/dist/src/gen/feeds/FeedApi.d.ts +26 -0
  46. package/dist/src/gen/feeds/FeedsApi.d.ts +237 -0
  47. package/dist/src/gen/model-decoders/decoders.d.ts +3 -0
  48. package/dist/src/gen/model-decoders/event-decoder-mapping.d.ts +6 -0
  49. package/dist/src/gen/models/index.d.ts +3437 -0
  50. package/dist/src/gen/moderation/ModerationApi.d.ts +21 -0
  51. package/dist/src/gen-imports.d.ts +3 -0
  52. package/dist/src/state-updates/activity-reaction-utils.d.ts +10 -0
  53. package/dist/src/state-updates/activity-utils.d.ts +13 -0
  54. package/dist/src/state-updates/bookmark-utils.d.ts +14 -0
  55. package/dist/src/types-internal.d.ts +4 -0
  56. package/dist/src/types.d.ts +13 -0
  57. package/dist/src/utils.d.ts +1 -0
  58. package/dist/tsconfig.tsbuildinfo +1 -0
  59. package/index.ts +13 -0
  60. package/package.json +85 -0
  61. package/src/Feed.ts +1070 -0
  62. package/src/FeedsClient.ts +352 -0
  63. package/src/ModerationClient.ts +3 -0
  64. package/src/common/ActivitySearchSource.ts +46 -0
  65. package/src/common/ApiClient.ts +197 -0
  66. package/src/common/BaseSearchSource.ts +238 -0
  67. package/src/common/ConnectionIdManager.ts +51 -0
  68. package/src/common/EventDispatcher.ts +52 -0
  69. package/src/common/FeedSearchSource.ts +94 -0
  70. package/src/common/Poll.ts +313 -0
  71. package/src/common/SearchController.ts +152 -0
  72. package/src/common/StateStore.ts +314 -0
  73. package/src/common/TokenManager.ts +112 -0
  74. package/src/common/UserSearchSource.ts +93 -0
  75. package/src/common/gen-imports.ts +2 -0
  76. package/src/common/rate-limit.ts +23 -0
  77. package/src/common/real-time/StableWSConnection.ts +761 -0
  78. package/src/common/real-time/event-models.ts +38 -0
  79. package/src/common/types.ts +40 -0
  80. package/src/common/utils.ts +194 -0
  81. package/src/gen/feeds/FeedApi.ts +129 -0
  82. package/src/gen/feeds/FeedsApi.ts +2192 -0
  83. package/src/gen/model-decoders/decoders.ts +1877 -0
  84. package/src/gen/model-decoders/event-decoder-mapping.ts +150 -0
  85. package/src/gen/models/index.ts +5882 -0
  86. package/src/gen/moderation/ModerationApi.ts +270 -0
  87. package/src/gen-imports.ts +3 -0
  88. package/src/state-updates/activity-reaction-utils.test.ts +348 -0
  89. package/src/state-updates/activity-reaction-utils.ts +107 -0
  90. package/src/state-updates/activity-utils.test.ts +257 -0
  91. package/src/state-updates/activity-utils.ts +80 -0
  92. package/src/state-updates/bookmark-utils.test.ts +383 -0
  93. package/src/state-updates/bookmark-utils.ts +157 -0
  94. package/src/types-internal.ts +5 -0
  95. package/src/types.ts +20 -0
  96. package/src/utils.ts +4 -0
@@ -0,0 +1,2192 @@
1
+ import { ApiClient, StreamResponse } from '../../gen-imports';
2
+ import {
3
+ AcceptFeedMemberInviteRequest,
4
+ AcceptFeedMemberInviteResponse,
5
+ AcceptFollowRequest,
6
+ AcceptFollowResponse,
7
+ AddActivityRequest,
8
+ AddActivityResponse,
9
+ AddBookmarkRequest,
10
+ AddBookmarkResponse,
11
+ AddCommentReactionRequest,
12
+ AddCommentReactionResponse,
13
+ AddCommentRequest,
14
+ AddCommentResponse,
15
+ AddCommentsBatchRequest,
16
+ AddCommentsBatchResponse,
17
+ AddReactionRequest,
18
+ AddReactionResponse,
19
+ BlockUsersRequest,
20
+ BlockUsersResponse,
21
+ CastPollVoteRequest,
22
+ CreateBlockListRequest,
23
+ CreateBlockListResponse,
24
+ CreateDeviceRequest,
25
+ CreateFeedsBatchRequest,
26
+ CreateFeedsBatchResponse,
27
+ CreateGuestRequest,
28
+ CreateGuestResponse,
29
+ CreatePollOptionRequest,
30
+ CreatePollRequest,
31
+ DeleteActivitiesRequest,
32
+ DeleteActivitiesResponse,
33
+ DeleteActivityReactionResponse,
34
+ DeleteActivityResponse,
35
+ DeleteBookmarkResponse,
36
+ DeleteCommentReactionResponse,
37
+ DeleteCommentResponse,
38
+ DeleteFeedResponse,
39
+ FileUploadRequest,
40
+ FileUploadResponse,
41
+ FollowBatchRequest,
42
+ FollowBatchResponse,
43
+ GetActivityResponse,
44
+ GetApplicationResponse,
45
+ GetBlockedUsersResponse,
46
+ GetCommentRepliesResponse,
47
+ GetCommentResponse,
48
+ GetCommentsResponse,
49
+ GetFollowSuggestionsResponse,
50
+ GetOGResponse,
51
+ GetOrCreateFeedRequest,
52
+ GetOrCreateFeedResponse,
53
+ ImageUploadRequest,
54
+ ImageUploadResponse,
55
+ ListBlockListResponse,
56
+ ListDevicesResponse,
57
+ MarkActivityRequest,
58
+ PinActivityRequest,
59
+ PinActivityResponse,
60
+ PollOptionResponse,
61
+ PollResponse,
62
+ PollVoteResponse,
63
+ PollVotesResponse,
64
+ QueryActivitiesRequest,
65
+ QueryActivitiesResponse,
66
+ QueryActivityReactionsRequest,
67
+ QueryActivityReactionsResponse,
68
+ QueryBookmarkFoldersRequest,
69
+ QueryBookmarkFoldersResponse,
70
+ QueryBookmarksRequest,
71
+ QueryBookmarksResponse,
72
+ QueryCommentReactionsRequest,
73
+ QueryCommentReactionsResponse,
74
+ QueryCommentsRequest,
75
+ QueryCommentsResponse,
76
+ QueryFeedMembersRequest,
77
+ QueryFeedMembersResponse,
78
+ QueryFeedsRequest,
79
+ QueryFeedsResponse,
80
+ QueryFollowsRequest,
81
+ QueryFollowsResponse,
82
+ QueryPollVotesRequest,
83
+ QueryPollsRequest,
84
+ QueryPollsResponse,
85
+ QueryUsersPayload,
86
+ QueryUsersResponse,
87
+ RejectFeedMemberInviteRequest,
88
+ RejectFeedMemberInviteResponse,
89
+ RejectFollowRequest,
90
+ RejectFollowResponse,
91
+ Response,
92
+ SharedLocationResponse,
93
+ SharedLocationsResponse,
94
+ SingleFollowRequest,
95
+ SingleFollowResponse,
96
+ UnblockUsersRequest,
97
+ UnblockUsersResponse,
98
+ UnfollowResponse,
99
+ UnpinActivityResponse,
100
+ UpdateActivityPartialRequest,
101
+ UpdateActivityPartialResponse,
102
+ UpdateActivityRequest,
103
+ UpdateActivityResponse,
104
+ UpdateBlockListRequest,
105
+ UpdateBlockListResponse,
106
+ UpdateBookmarkRequest,
107
+ UpdateBookmarkResponse,
108
+ UpdateCommentRequest,
109
+ UpdateCommentResponse,
110
+ UpdateFeedMembersRequest,
111
+ UpdateFeedMembersResponse,
112
+ UpdateFeedRequest,
113
+ UpdateFeedResponse,
114
+ UpdateFollowRequest,
115
+ UpdateFollowResponse,
116
+ UpdateLiveLocationRequest,
117
+ UpdatePollOptionRequest,
118
+ UpdatePollPartialRequest,
119
+ UpdatePollRequest,
120
+ UpdateUsersPartialRequest,
121
+ UpdateUsersRequest,
122
+ UpdateUsersResponse,
123
+ UpsertActivitiesRequest,
124
+ UpsertActivitiesResponse,
125
+ WSAuthMessage,
126
+ } from '../models';
127
+ import { decoders } from '../model-decoders/decoders';
128
+
129
+ export class FeedsApi {
130
+ constructor(public readonly apiClient: ApiClient) {}
131
+
132
+ async getApp(): Promise<StreamResponse<GetApplicationResponse>> {
133
+ const response = await this.apiClient.sendRequest<
134
+ StreamResponse<GetApplicationResponse>
135
+ >('GET', '/api/v2/app', undefined, undefined);
136
+
137
+ decoders.GetApplicationResponse?.(response.body);
138
+
139
+ return { ...response.body, metadata: response.metadata };
140
+ }
141
+
142
+ async listBlockLists(request?: {
143
+ team?: string;
144
+ }): Promise<StreamResponse<ListBlockListResponse>> {
145
+ const queryParams = {
146
+ team: request?.team,
147
+ };
148
+
149
+ const response = await this.apiClient.sendRequest<
150
+ StreamResponse<ListBlockListResponse>
151
+ >('GET', '/api/v2/blocklists', undefined, queryParams);
152
+
153
+ decoders.ListBlockListResponse?.(response.body);
154
+
155
+ return { ...response.body, metadata: response.metadata };
156
+ }
157
+
158
+ async createBlockList(
159
+ request: CreateBlockListRequest,
160
+ ): Promise<StreamResponse<CreateBlockListResponse>> {
161
+ const body = {
162
+ name: request?.name,
163
+ words: request?.words,
164
+ team: request?.team,
165
+ type: request?.type,
166
+ };
167
+
168
+ const response = await this.apiClient.sendRequest<
169
+ StreamResponse<CreateBlockListResponse>
170
+ >(
171
+ 'POST',
172
+ '/api/v2/blocklists',
173
+ undefined,
174
+ undefined,
175
+ body,
176
+ 'application/json',
177
+ );
178
+
179
+ decoders.CreateBlockListResponse?.(response.body);
180
+
181
+ return { ...response.body, metadata: response.metadata };
182
+ }
183
+
184
+ async deleteBlockList(request: {
185
+ name: string;
186
+ team?: string;
187
+ }): Promise<StreamResponse<Response>> {
188
+ const queryParams = {
189
+ team: request?.team,
190
+ };
191
+ const pathParams = {
192
+ name: request?.name,
193
+ };
194
+
195
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
196
+ 'DELETE',
197
+ '/api/v2/blocklists/{name}',
198
+ pathParams,
199
+ queryParams,
200
+ );
201
+
202
+ decoders.Response?.(response.body);
203
+
204
+ return { ...response.body, metadata: response.metadata };
205
+ }
206
+
207
+ async updateBlockList(
208
+ request: UpdateBlockListRequest & { name: string },
209
+ ): Promise<StreamResponse<UpdateBlockListResponse>> {
210
+ const pathParams = {
211
+ name: request?.name,
212
+ };
213
+ const body = {
214
+ team: request?.team,
215
+ words: request?.words,
216
+ };
217
+
218
+ const response = await this.apiClient.sendRequest<
219
+ StreamResponse<UpdateBlockListResponse>
220
+ >(
221
+ 'PUT',
222
+ '/api/v2/blocklists/{name}',
223
+ pathParams,
224
+ undefined,
225
+ body,
226
+ 'application/json',
227
+ );
228
+
229
+ decoders.UpdateBlockListResponse?.(response.body);
230
+
231
+ return { ...response.body, metadata: response.metadata };
232
+ }
233
+
234
+ async deleteDevice(request: {
235
+ id: string;
236
+ }): Promise<StreamResponse<Response>> {
237
+ const queryParams = {
238
+ id: request?.id,
239
+ };
240
+
241
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
242
+ 'DELETE',
243
+ '/api/v2/devices',
244
+ undefined,
245
+ queryParams,
246
+ );
247
+
248
+ decoders.Response?.(response.body);
249
+
250
+ return { ...response.body, metadata: response.metadata };
251
+ }
252
+
253
+ async listDevices(): Promise<StreamResponse<ListDevicesResponse>> {
254
+ const response = await this.apiClient.sendRequest<
255
+ StreamResponse<ListDevicesResponse>
256
+ >('GET', '/api/v2/devices', undefined, undefined);
257
+
258
+ decoders.ListDevicesResponse?.(response.body);
259
+
260
+ return { ...response.body, metadata: response.metadata };
261
+ }
262
+
263
+ async createDevice(
264
+ request: CreateDeviceRequest,
265
+ ): Promise<StreamResponse<Response>> {
266
+ const body = {
267
+ id: request?.id,
268
+ push_provider: request?.push_provider,
269
+ push_provider_name: request?.push_provider_name,
270
+ voip_token: request?.voip_token,
271
+ };
272
+
273
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
274
+ 'POST',
275
+ '/api/v2/devices',
276
+ undefined,
277
+ undefined,
278
+ body,
279
+ 'application/json',
280
+ );
281
+
282
+ decoders.Response?.(response.body);
283
+
284
+ return { ...response.body, metadata: response.metadata };
285
+ }
286
+
287
+ async addActivity(
288
+ request: AddActivityRequest,
289
+ ): Promise<StreamResponse<AddActivityResponse>> {
290
+ const body = {
291
+ type: request?.type,
292
+ fids: request?.fids,
293
+ expires_at: request?.expires_at,
294
+ id: request?.id,
295
+ parent_id: request?.parent_id,
296
+ poll_id: request?.poll_id,
297
+ text: request?.text,
298
+ visibility: request?.visibility,
299
+ visibility_tag: request?.visibility_tag,
300
+ attachments: request?.attachments,
301
+ filter_tags: request?.filter_tags,
302
+ interest_tags: request?.interest_tags,
303
+ mentioned_user_ids: request?.mentioned_user_ids,
304
+ custom: request?.custom,
305
+ location: request?.location,
306
+ search_data: request?.search_data,
307
+ };
308
+
309
+ const response = await this.apiClient.sendRequest<
310
+ StreamResponse<AddActivityResponse>
311
+ >(
312
+ 'POST',
313
+ '/api/v2/feeds/activities',
314
+ undefined,
315
+ undefined,
316
+ body,
317
+ 'application/json',
318
+ );
319
+
320
+ decoders.AddActivityResponse?.(response.body);
321
+
322
+ return { ...response.body, metadata: response.metadata };
323
+ }
324
+
325
+ async upsertActivities(
326
+ request: UpsertActivitiesRequest,
327
+ ): Promise<StreamResponse<UpsertActivitiesResponse>> {
328
+ const body = {
329
+ activities: request?.activities,
330
+ };
331
+
332
+ const response = await this.apiClient.sendRequest<
333
+ StreamResponse<UpsertActivitiesResponse>
334
+ >(
335
+ 'POST',
336
+ '/api/v2/feeds/activities/batch',
337
+ undefined,
338
+ undefined,
339
+ body,
340
+ 'application/json',
341
+ );
342
+
343
+ decoders.UpsertActivitiesResponse?.(response.body);
344
+
345
+ return { ...response.body, metadata: response.metadata };
346
+ }
347
+
348
+ async deleteActivities(
349
+ request: DeleteActivitiesRequest,
350
+ ): Promise<StreamResponse<DeleteActivitiesResponse>> {
351
+ const body = {
352
+ activity_ids: request?.activity_ids,
353
+ hard_delete: request?.hard_delete,
354
+ };
355
+
356
+ const response = await this.apiClient.sendRequest<
357
+ StreamResponse<DeleteActivitiesResponse>
358
+ >(
359
+ 'POST',
360
+ '/api/v2/feeds/activities/delete',
361
+ undefined,
362
+ undefined,
363
+ body,
364
+ 'application/json',
365
+ );
366
+
367
+ decoders.DeleteActivitiesResponse?.(response.body);
368
+
369
+ return { ...response.body, metadata: response.metadata };
370
+ }
371
+
372
+ async queryActivities(
373
+ request?: QueryActivitiesRequest,
374
+ ): Promise<StreamResponse<QueryActivitiesResponse>> {
375
+ const body = {
376
+ limit: request?.limit,
377
+ next: request?.next,
378
+ prev: request?.prev,
379
+ sort: request?.sort,
380
+ filter: request?.filter,
381
+ };
382
+
383
+ const response = await this.apiClient.sendRequest<
384
+ StreamResponse<QueryActivitiesResponse>
385
+ >(
386
+ 'POST',
387
+ '/api/v2/feeds/activities/query',
388
+ undefined,
389
+ undefined,
390
+ body,
391
+ 'application/json',
392
+ );
393
+
394
+ decoders.QueryActivitiesResponse?.(response.body);
395
+
396
+ return { ...response.body, metadata: response.metadata };
397
+ }
398
+
399
+ async deleteActivity(request: {
400
+ activity_id: string;
401
+ hard_delete?: boolean;
402
+ }): Promise<StreamResponse<DeleteActivityResponse>> {
403
+ const queryParams = {
404
+ hard_delete: request?.hard_delete,
405
+ };
406
+ const pathParams = {
407
+ activity_id: request?.activity_id,
408
+ };
409
+
410
+ const response = await this.apiClient.sendRequest<
411
+ StreamResponse<DeleteActivityResponse>
412
+ >(
413
+ 'DELETE',
414
+ '/api/v2/feeds/activities/{activity_id}',
415
+ pathParams,
416
+ queryParams,
417
+ );
418
+
419
+ decoders.DeleteActivityResponse?.(response.body);
420
+
421
+ return { ...response.body, metadata: response.metadata };
422
+ }
423
+
424
+ async getActivity(request: {
425
+ activity_id: string;
426
+ }): Promise<StreamResponse<GetActivityResponse>> {
427
+ const pathParams = {
428
+ activity_id: request?.activity_id,
429
+ };
430
+
431
+ const response = await this.apiClient.sendRequest<
432
+ StreamResponse<GetActivityResponse>
433
+ >('GET', '/api/v2/feeds/activities/{activity_id}', pathParams, undefined);
434
+
435
+ decoders.GetActivityResponse?.(response.body);
436
+
437
+ return { ...response.body, metadata: response.metadata };
438
+ }
439
+
440
+ async updateActivityPartial(
441
+ request: UpdateActivityPartialRequest & { activity_id: string },
442
+ ): Promise<StreamResponse<UpdateActivityPartialResponse>> {
443
+ const pathParams = {
444
+ activity_id: request?.activity_id,
445
+ };
446
+ const body = {
447
+ unset: request?.unset,
448
+ set: request?.set,
449
+ };
450
+
451
+ const response = await this.apiClient.sendRequest<
452
+ StreamResponse<UpdateActivityPartialResponse>
453
+ >(
454
+ 'PATCH',
455
+ '/api/v2/feeds/activities/{activity_id}',
456
+ pathParams,
457
+ undefined,
458
+ body,
459
+ 'application/json',
460
+ );
461
+
462
+ decoders.UpdateActivityPartialResponse?.(response.body);
463
+
464
+ return { ...response.body, metadata: response.metadata };
465
+ }
466
+
467
+ async updateActivity(
468
+ request: UpdateActivityRequest & { activity_id: string },
469
+ ): Promise<StreamResponse<UpdateActivityResponse>> {
470
+ const pathParams = {
471
+ activity_id: request?.activity_id,
472
+ };
473
+ const body = {
474
+ expires_at: request?.expires_at,
475
+ poll_id: request?.poll_id,
476
+ text: request?.text,
477
+ visibility: request?.visibility,
478
+ attachments: request?.attachments,
479
+ filter_tags: request?.filter_tags,
480
+ interest_tags: request?.interest_tags,
481
+ custom: request?.custom,
482
+ location: request?.location,
483
+ };
484
+
485
+ const response = await this.apiClient.sendRequest<
486
+ StreamResponse<UpdateActivityResponse>
487
+ >(
488
+ 'PUT',
489
+ '/api/v2/feeds/activities/{activity_id}',
490
+ pathParams,
491
+ undefined,
492
+ body,
493
+ 'application/json',
494
+ );
495
+
496
+ decoders.UpdateActivityResponse?.(response.body);
497
+
498
+ return { ...response.body, metadata: response.metadata };
499
+ }
500
+
501
+ async deleteBookmark(request: {
502
+ activity_id: string;
503
+ folder_id?: string;
504
+ }): Promise<StreamResponse<DeleteBookmarkResponse>> {
505
+ const queryParams = {
506
+ folder_id: request?.folder_id,
507
+ };
508
+ const pathParams = {
509
+ activity_id: request?.activity_id,
510
+ };
511
+
512
+ const response = await this.apiClient.sendRequest<
513
+ StreamResponse<DeleteBookmarkResponse>
514
+ >(
515
+ 'DELETE',
516
+ '/api/v2/feeds/activities/{activity_id}/bookmarks',
517
+ pathParams,
518
+ queryParams,
519
+ );
520
+
521
+ decoders.DeleteBookmarkResponse?.(response.body);
522
+
523
+ return { ...response.body, metadata: response.metadata };
524
+ }
525
+
526
+ async updateBookmark(
527
+ request: UpdateBookmarkRequest & { activity_id: string },
528
+ ): Promise<StreamResponse<UpdateBookmarkResponse>> {
529
+ const pathParams = {
530
+ activity_id: request?.activity_id,
531
+ };
532
+ const body = {
533
+ folder_id: request?.folder_id,
534
+ new_folder_id: request?.new_folder_id,
535
+ custom: request?.custom,
536
+ new_folder: request?.new_folder,
537
+ };
538
+
539
+ const response = await this.apiClient.sendRequest<
540
+ StreamResponse<UpdateBookmarkResponse>
541
+ >(
542
+ 'PATCH',
543
+ '/api/v2/feeds/activities/{activity_id}/bookmarks',
544
+ pathParams,
545
+ undefined,
546
+ body,
547
+ 'application/json',
548
+ );
549
+
550
+ decoders.UpdateBookmarkResponse?.(response.body);
551
+
552
+ return { ...response.body, metadata: response.metadata };
553
+ }
554
+
555
+ async addBookmark(
556
+ request: AddBookmarkRequest & { activity_id: string },
557
+ ): Promise<StreamResponse<AddBookmarkResponse>> {
558
+ const pathParams = {
559
+ activity_id: request?.activity_id,
560
+ };
561
+ const body = {
562
+ folder_id: request?.folder_id,
563
+ custom: request?.custom,
564
+ new_folder: request?.new_folder,
565
+ };
566
+
567
+ const response = await this.apiClient.sendRequest<
568
+ StreamResponse<AddBookmarkResponse>
569
+ >(
570
+ 'POST',
571
+ '/api/v2/feeds/activities/{activity_id}/bookmarks',
572
+ pathParams,
573
+ undefined,
574
+ body,
575
+ 'application/json',
576
+ );
577
+
578
+ decoders.AddBookmarkResponse?.(response.body);
579
+
580
+ return { ...response.body, metadata: response.metadata };
581
+ }
582
+
583
+ async castPollVote(
584
+ request: CastPollVoteRequest & { activity_id: string; poll_id: string },
585
+ ): Promise<StreamResponse<PollVoteResponse>> {
586
+ const pathParams = {
587
+ activity_id: request?.activity_id,
588
+ poll_id: request?.poll_id,
589
+ };
590
+ const body = {
591
+ vote: request?.vote,
592
+ };
593
+
594
+ const response = await this.apiClient.sendRequest<
595
+ StreamResponse<PollVoteResponse>
596
+ >(
597
+ 'POST',
598
+ '/api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote',
599
+ pathParams,
600
+ undefined,
601
+ body,
602
+ 'application/json',
603
+ );
604
+
605
+ decoders.PollVoteResponse?.(response.body);
606
+
607
+ return { ...response.body, metadata: response.metadata };
608
+ }
609
+
610
+ async deletePollVote(request: {
611
+ activity_id: string;
612
+ poll_id: string;
613
+ vote_id: string;
614
+ user_id?: string;
615
+ }): Promise<StreamResponse<PollVoteResponse>> {
616
+ const queryParams = {
617
+ user_id: request?.user_id,
618
+ };
619
+ const pathParams = {
620
+ activity_id: request?.activity_id,
621
+ poll_id: request?.poll_id,
622
+ vote_id: request?.vote_id,
623
+ };
624
+
625
+ const response = await this.apiClient.sendRequest<
626
+ StreamResponse<PollVoteResponse>
627
+ >(
628
+ 'DELETE',
629
+ '/api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}',
630
+ pathParams,
631
+ queryParams,
632
+ );
633
+
634
+ decoders.PollVoteResponse?.(response.body);
635
+
636
+ return { ...response.body, metadata: response.metadata };
637
+ }
638
+
639
+ async addReaction(
640
+ request: AddReactionRequest & { activity_id: string },
641
+ ): Promise<StreamResponse<AddReactionResponse>> {
642
+ const pathParams = {
643
+ activity_id: request?.activity_id,
644
+ };
645
+ const body = {
646
+ type: request?.type,
647
+ custom: request?.custom,
648
+ };
649
+
650
+ const response = await this.apiClient.sendRequest<
651
+ StreamResponse<AddReactionResponse>
652
+ >(
653
+ 'POST',
654
+ '/api/v2/feeds/activities/{activity_id}/reactions',
655
+ pathParams,
656
+ undefined,
657
+ body,
658
+ 'application/json',
659
+ );
660
+
661
+ decoders.AddReactionResponse?.(response.body);
662
+
663
+ return { ...response.body, metadata: response.metadata };
664
+ }
665
+
666
+ async queryActivityReactions(
667
+ request: QueryActivityReactionsRequest & { activity_id: string },
668
+ ): Promise<StreamResponse<QueryActivityReactionsResponse>> {
669
+ const pathParams = {
670
+ activity_id: request?.activity_id,
671
+ };
672
+ const body = {
673
+ limit: request?.limit,
674
+ next: request?.next,
675
+ prev: request?.prev,
676
+ sort: request?.sort,
677
+ filter: request?.filter,
678
+ };
679
+
680
+ const response = await this.apiClient.sendRequest<
681
+ StreamResponse<QueryActivityReactionsResponse>
682
+ >(
683
+ 'POST',
684
+ '/api/v2/feeds/activities/{activity_id}/reactions/query',
685
+ pathParams,
686
+ undefined,
687
+ body,
688
+ 'application/json',
689
+ );
690
+
691
+ decoders.QueryActivityReactionsResponse?.(response.body);
692
+
693
+ return { ...response.body, metadata: response.metadata };
694
+ }
695
+
696
+ async deleteActivityReaction(request: {
697
+ activity_id: string;
698
+ type: string;
699
+ }): Promise<StreamResponse<DeleteActivityReactionResponse>> {
700
+ const pathParams = {
701
+ activity_id: request?.activity_id,
702
+ type: request?.type,
703
+ };
704
+
705
+ const response = await this.apiClient.sendRequest<
706
+ StreamResponse<DeleteActivityReactionResponse>
707
+ >(
708
+ 'DELETE',
709
+ '/api/v2/feeds/activities/{activity_id}/reactions/{type}',
710
+ pathParams,
711
+ undefined,
712
+ );
713
+
714
+ decoders.DeleteActivityReactionResponse?.(response.body);
715
+
716
+ return { ...response.body, metadata: response.metadata };
717
+ }
718
+
719
+ async queryBookmarkFolders(
720
+ request?: QueryBookmarkFoldersRequest,
721
+ ): Promise<StreamResponse<QueryBookmarkFoldersResponse>> {
722
+ const body = {
723
+ limit: request?.limit,
724
+ next: request?.next,
725
+ prev: request?.prev,
726
+ sort: request?.sort,
727
+ filter: request?.filter,
728
+ };
729
+
730
+ const response = await this.apiClient.sendRequest<
731
+ StreamResponse<QueryBookmarkFoldersResponse>
732
+ >(
733
+ 'POST',
734
+ '/api/v2/feeds/bookmark_folders/query',
735
+ undefined,
736
+ undefined,
737
+ body,
738
+ 'application/json',
739
+ );
740
+
741
+ decoders.QueryBookmarkFoldersResponse?.(response.body);
742
+
743
+ return { ...response.body, metadata: response.metadata };
744
+ }
745
+
746
+ async queryBookmarks(
747
+ request?: QueryBookmarksRequest,
748
+ ): Promise<StreamResponse<QueryBookmarksResponse>> {
749
+ const body = {
750
+ limit: request?.limit,
751
+ next: request?.next,
752
+ prev: request?.prev,
753
+ sort: request?.sort,
754
+ filter: request?.filter,
755
+ };
756
+
757
+ const response = await this.apiClient.sendRequest<
758
+ StreamResponse<QueryBookmarksResponse>
759
+ >(
760
+ 'POST',
761
+ '/api/v2/feeds/bookmarks/query',
762
+ undefined,
763
+ undefined,
764
+ body,
765
+ 'application/json',
766
+ );
767
+
768
+ decoders.QueryBookmarksResponse?.(response.body);
769
+
770
+ return { ...response.body, metadata: response.metadata };
771
+ }
772
+
773
+ async getComments(request: {
774
+ object_id: string;
775
+ object_type: string;
776
+ depth?: number;
777
+ sort?: string;
778
+ replies_limit?: number;
779
+ limit?: number;
780
+ prev?: string;
781
+ next?: string;
782
+ }): Promise<StreamResponse<GetCommentsResponse>> {
783
+ const queryParams = {
784
+ object_id: request?.object_id,
785
+ object_type: request?.object_type,
786
+ depth: request?.depth,
787
+ sort: request?.sort,
788
+ replies_limit: request?.replies_limit,
789
+ limit: request?.limit,
790
+ prev: request?.prev,
791
+ next: request?.next,
792
+ };
793
+
794
+ const response = await this.apiClient.sendRequest<
795
+ StreamResponse<GetCommentsResponse>
796
+ >('GET', '/api/v2/feeds/comments', undefined, queryParams);
797
+
798
+ decoders.GetCommentsResponse?.(response.body);
799
+
800
+ return { ...response.body, metadata: response.metadata };
801
+ }
802
+
803
+ async addComment(
804
+ request: AddCommentRequest,
805
+ ): Promise<StreamResponse<AddCommentResponse>> {
806
+ const body = {
807
+ comment: request?.comment,
808
+ object_id: request?.object_id,
809
+ object_type: request?.object_type,
810
+ parent_id: request?.parent_id,
811
+ attachments: request?.attachments,
812
+ mentioned_user_ids: request?.mentioned_user_ids,
813
+ custom: request?.custom,
814
+ };
815
+
816
+ const response = await this.apiClient.sendRequest<
817
+ StreamResponse<AddCommentResponse>
818
+ >(
819
+ 'POST',
820
+ '/api/v2/feeds/comments',
821
+ undefined,
822
+ undefined,
823
+ body,
824
+ 'application/json',
825
+ );
826
+
827
+ decoders.AddCommentResponse?.(response.body);
828
+
829
+ return { ...response.body, metadata: response.metadata };
830
+ }
831
+
832
+ async addCommentsBatch(
833
+ request: AddCommentsBatchRequest,
834
+ ): Promise<StreamResponse<AddCommentsBatchResponse>> {
835
+ const body = {
836
+ comments: request?.comments,
837
+ };
838
+
839
+ const response = await this.apiClient.sendRequest<
840
+ StreamResponse<AddCommentsBatchResponse>
841
+ >(
842
+ 'POST',
843
+ '/api/v2/feeds/comments/batch',
844
+ undefined,
845
+ undefined,
846
+ body,
847
+ 'application/json',
848
+ );
849
+
850
+ decoders.AddCommentsBatchResponse?.(response.body);
851
+
852
+ return { ...response.body, metadata: response.metadata };
853
+ }
854
+
855
+ async queryComments(
856
+ request: QueryCommentsRequest,
857
+ ): Promise<StreamResponse<QueryCommentsResponse>> {
858
+ const body = {
859
+ filter: request?.filter,
860
+ limit: request?.limit,
861
+ next: request?.next,
862
+ prev: request?.prev,
863
+ sort: request?.sort,
864
+ };
865
+
866
+ const response = await this.apiClient.sendRequest<
867
+ StreamResponse<QueryCommentsResponse>
868
+ >(
869
+ 'POST',
870
+ '/api/v2/feeds/comments/query',
871
+ undefined,
872
+ undefined,
873
+ body,
874
+ 'application/json',
875
+ );
876
+
877
+ decoders.QueryCommentsResponse?.(response.body);
878
+
879
+ return { ...response.body, metadata: response.metadata };
880
+ }
881
+
882
+ async deleteComment(request: {
883
+ comment_id: string;
884
+ }): Promise<StreamResponse<DeleteCommentResponse>> {
885
+ const pathParams = {
886
+ comment_id: request?.comment_id,
887
+ };
888
+
889
+ const response = await this.apiClient.sendRequest<
890
+ StreamResponse<DeleteCommentResponse>
891
+ >('DELETE', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined);
892
+
893
+ decoders.DeleteCommentResponse?.(response.body);
894
+
895
+ return { ...response.body, metadata: response.metadata };
896
+ }
897
+
898
+ async getComment(request: {
899
+ comment_id: string;
900
+ }): Promise<StreamResponse<GetCommentResponse>> {
901
+ const pathParams = {
902
+ comment_id: request?.comment_id,
903
+ };
904
+
905
+ const response = await this.apiClient.sendRequest<
906
+ StreamResponse<GetCommentResponse>
907
+ >('GET', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined);
908
+
909
+ decoders.GetCommentResponse?.(response.body);
910
+
911
+ return { ...response.body, metadata: response.metadata };
912
+ }
913
+
914
+ async updateComment(
915
+ request: UpdateCommentRequest & { comment_id: string },
916
+ ): Promise<StreamResponse<UpdateCommentResponse>> {
917
+ const pathParams = {
918
+ comment_id: request?.comment_id,
919
+ };
920
+ const body = {
921
+ comment: request?.comment,
922
+ custom: request?.custom,
923
+ };
924
+
925
+ const response = await this.apiClient.sendRequest<
926
+ StreamResponse<UpdateCommentResponse>
927
+ >(
928
+ 'PATCH',
929
+ '/api/v2/feeds/comments/{comment_id}',
930
+ pathParams,
931
+ undefined,
932
+ body,
933
+ 'application/json',
934
+ );
935
+
936
+ decoders.UpdateCommentResponse?.(response.body);
937
+
938
+ return { ...response.body, metadata: response.metadata };
939
+ }
940
+
941
+ async addCommentReaction(
942
+ request: AddCommentReactionRequest & { comment_id: string },
943
+ ): Promise<StreamResponse<AddCommentReactionResponse>> {
944
+ const pathParams = {
945
+ comment_id: request?.comment_id,
946
+ };
947
+ const body = {
948
+ type: request?.type,
949
+ custom: request?.custom,
950
+ };
951
+
952
+ const response = await this.apiClient.sendRequest<
953
+ StreamResponse<AddCommentReactionResponse>
954
+ >(
955
+ 'POST',
956
+ '/api/v2/feeds/comments/{comment_id}/reactions',
957
+ pathParams,
958
+ undefined,
959
+ body,
960
+ 'application/json',
961
+ );
962
+
963
+ decoders.AddCommentReactionResponse?.(response.body);
964
+
965
+ return { ...response.body, metadata: response.metadata };
966
+ }
967
+
968
+ async queryCommentReactions(
969
+ request: QueryCommentReactionsRequest & { comment_id: string },
970
+ ): Promise<StreamResponse<QueryCommentReactionsResponse>> {
971
+ const pathParams = {
972
+ comment_id: request?.comment_id,
973
+ };
974
+ const body = {
975
+ limit: request?.limit,
976
+ next: request?.next,
977
+ prev: request?.prev,
978
+ sort: request?.sort,
979
+ filter: request?.filter,
980
+ };
981
+
982
+ const response = await this.apiClient.sendRequest<
983
+ StreamResponse<QueryCommentReactionsResponse>
984
+ >(
985
+ 'POST',
986
+ '/api/v2/feeds/comments/{comment_id}/reactions/query',
987
+ pathParams,
988
+ undefined,
989
+ body,
990
+ 'application/json',
991
+ );
992
+
993
+ decoders.QueryCommentReactionsResponse?.(response.body);
994
+
995
+ return { ...response.body, metadata: response.metadata };
996
+ }
997
+
998
+ async deleteCommentReaction(request: {
999
+ comment_id: string;
1000
+ type: string;
1001
+ }): Promise<StreamResponse<DeleteCommentReactionResponse>> {
1002
+ const pathParams = {
1003
+ comment_id: request?.comment_id,
1004
+ type: request?.type,
1005
+ };
1006
+
1007
+ const response = await this.apiClient.sendRequest<
1008
+ StreamResponse<DeleteCommentReactionResponse>
1009
+ >(
1010
+ 'DELETE',
1011
+ '/api/v2/feeds/comments/{comment_id}/reactions/{type}',
1012
+ pathParams,
1013
+ undefined,
1014
+ );
1015
+
1016
+ decoders.DeleteCommentReactionResponse?.(response.body);
1017
+
1018
+ return { ...response.body, metadata: response.metadata };
1019
+ }
1020
+
1021
+ async getCommentReplies(request: {
1022
+ comment_id: string;
1023
+ depth?: number;
1024
+ sort?: string;
1025
+ replies_limit?: number;
1026
+ limit?: number;
1027
+ prev?: string;
1028
+ next?: string;
1029
+ }): Promise<StreamResponse<GetCommentRepliesResponse>> {
1030
+ const queryParams = {
1031
+ depth: request?.depth,
1032
+ sort: request?.sort,
1033
+ replies_limit: request?.replies_limit,
1034
+ limit: request?.limit,
1035
+ prev: request?.prev,
1036
+ next: request?.next,
1037
+ };
1038
+ const pathParams = {
1039
+ comment_id: request?.comment_id,
1040
+ };
1041
+
1042
+ const response = await this.apiClient.sendRequest<
1043
+ StreamResponse<GetCommentRepliesResponse>
1044
+ >(
1045
+ 'GET',
1046
+ '/api/v2/feeds/comments/{comment_id}/replies',
1047
+ pathParams,
1048
+ queryParams,
1049
+ );
1050
+
1051
+ decoders.GetCommentRepliesResponse?.(response.body);
1052
+
1053
+ return { ...response.body, metadata: response.metadata };
1054
+ }
1055
+
1056
+ async deleteFeed(request: {
1057
+ feed_group_id: string;
1058
+ feed_id: string;
1059
+ hard_delete?: boolean;
1060
+ }): Promise<StreamResponse<DeleteFeedResponse>> {
1061
+ const queryParams = {
1062
+ hard_delete: request?.hard_delete,
1063
+ };
1064
+ const pathParams = {
1065
+ feed_group_id: request?.feed_group_id,
1066
+ feed_id: request?.feed_id,
1067
+ };
1068
+
1069
+ const response = await this.apiClient.sendRequest<
1070
+ StreamResponse<DeleteFeedResponse>
1071
+ >(
1072
+ 'DELETE',
1073
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}',
1074
+ pathParams,
1075
+ queryParams,
1076
+ );
1077
+
1078
+ decoders.DeleteFeedResponse?.(response.body);
1079
+
1080
+ return { ...response.body, metadata: response.metadata };
1081
+ }
1082
+
1083
+ async getOrCreateFeed(
1084
+ request: GetOrCreateFeedRequest & {
1085
+ feed_group_id: string;
1086
+ feed_id: string;
1087
+ connection_id?: string;
1088
+ },
1089
+ ): Promise<StreamResponse<GetOrCreateFeedResponse>> {
1090
+ const queryParams = {
1091
+ connection_id: request?.connection_id,
1092
+ };
1093
+ const pathParams = {
1094
+ feed_group_id: request?.feed_group_id,
1095
+ feed_id: request?.feed_id,
1096
+ };
1097
+ const body = {
1098
+ limit: request?.limit,
1099
+ next: request?.next,
1100
+ prev: request?.prev,
1101
+ view: request?.view,
1102
+ watch: request?.watch,
1103
+ activity_selector_options: request?.activity_selector_options,
1104
+ data: request?.data,
1105
+ external_ranking: request?.external_ranking,
1106
+ filter: request?.filter,
1107
+ followers_pagination: request?.followers_pagination,
1108
+ following_pagination: request?.following_pagination,
1109
+ interest_weights: request?.interest_weights,
1110
+ member_pagination: request?.member_pagination,
1111
+ };
1112
+
1113
+ const response = await this.apiClient.sendRequest<
1114
+ StreamResponse<GetOrCreateFeedResponse>
1115
+ >(
1116
+ 'POST',
1117
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}',
1118
+ pathParams,
1119
+ queryParams,
1120
+ body,
1121
+ 'application/json',
1122
+ );
1123
+
1124
+ decoders.GetOrCreateFeedResponse?.(response.body);
1125
+
1126
+ return { ...response.body, metadata: response.metadata };
1127
+ }
1128
+
1129
+ async updateFeed(
1130
+ request: UpdateFeedRequest & { feed_group_id: string; feed_id: string },
1131
+ ): Promise<StreamResponse<UpdateFeedResponse>> {
1132
+ const pathParams = {
1133
+ feed_group_id: request?.feed_group_id,
1134
+ feed_id: request?.feed_id,
1135
+ };
1136
+ const body = {
1137
+ created_by_id: request?.created_by_id,
1138
+ custom: request?.custom,
1139
+ };
1140
+
1141
+ const response = await this.apiClient.sendRequest<
1142
+ StreamResponse<UpdateFeedResponse>
1143
+ >(
1144
+ 'PUT',
1145
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}',
1146
+ pathParams,
1147
+ undefined,
1148
+ body,
1149
+ 'application/json',
1150
+ );
1151
+
1152
+ decoders.UpdateFeedResponse?.(response.body);
1153
+
1154
+ return { ...response.body, metadata: response.metadata };
1155
+ }
1156
+
1157
+ async markActivity(
1158
+ request: MarkActivityRequest & { feed_group_id: string; feed_id: string },
1159
+ ): Promise<StreamResponse<Response>> {
1160
+ const pathParams = {
1161
+ feed_group_id: request?.feed_group_id,
1162
+ feed_id: request?.feed_id,
1163
+ };
1164
+ const body = {
1165
+ mark_all_read: request?.mark_all_read,
1166
+ mark_all_seen: request?.mark_all_seen,
1167
+ mark_read: request?.mark_read,
1168
+ mark_watched: request?.mark_watched,
1169
+ };
1170
+
1171
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
1172
+ 'POST',
1173
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch',
1174
+ pathParams,
1175
+ undefined,
1176
+ body,
1177
+ 'application/json',
1178
+ );
1179
+
1180
+ decoders.Response?.(response.body);
1181
+
1182
+ return { ...response.body, metadata: response.metadata };
1183
+ }
1184
+
1185
+ async unpinActivity(request: {
1186
+ feed_group_id: string;
1187
+ feed_id: string;
1188
+ activity_id: string;
1189
+ }): Promise<StreamResponse<UnpinActivityResponse>> {
1190
+ const pathParams = {
1191
+ feed_group_id: request?.feed_group_id,
1192
+ feed_id: request?.feed_id,
1193
+ activity_id: request?.activity_id,
1194
+ };
1195
+
1196
+ const response = await this.apiClient.sendRequest<
1197
+ StreamResponse<UnpinActivityResponse>
1198
+ >(
1199
+ 'DELETE',
1200
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin',
1201
+ pathParams,
1202
+ undefined,
1203
+ );
1204
+
1205
+ decoders.UnpinActivityResponse?.(response.body);
1206
+
1207
+ return { ...response.body, metadata: response.metadata };
1208
+ }
1209
+
1210
+ async pinActivity(
1211
+ request: PinActivityRequest & {
1212
+ feed_group_id: string;
1213
+ feed_id: string;
1214
+ activity_id: string;
1215
+ },
1216
+ ): Promise<StreamResponse<PinActivityResponse>> {
1217
+ const pathParams = {
1218
+ feed_group_id: request?.feed_group_id,
1219
+ feed_id: request?.feed_id,
1220
+ activity_id: request?.activity_id,
1221
+ };
1222
+ const body = {};
1223
+
1224
+ const response = await this.apiClient.sendRequest<
1225
+ StreamResponse<PinActivityResponse>
1226
+ >(
1227
+ 'POST',
1228
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin',
1229
+ pathParams,
1230
+ undefined,
1231
+ body,
1232
+ 'application/json',
1233
+ );
1234
+
1235
+ decoders.PinActivityResponse?.(response.body);
1236
+
1237
+ return { ...response.body, metadata: response.metadata };
1238
+ }
1239
+
1240
+ async updateFeedMembers(
1241
+ request: UpdateFeedMembersRequest & {
1242
+ feed_group_id: string;
1243
+ feed_id: string;
1244
+ },
1245
+ ): Promise<StreamResponse<UpdateFeedMembersResponse>> {
1246
+ const pathParams = {
1247
+ feed_group_id: request?.feed_group_id,
1248
+ feed_id: request?.feed_id,
1249
+ };
1250
+ const body = {
1251
+ operation: request?.operation,
1252
+ limit: request?.limit,
1253
+ next: request?.next,
1254
+ prev: request?.prev,
1255
+ members: request?.members,
1256
+ };
1257
+
1258
+ const response = await this.apiClient.sendRequest<
1259
+ StreamResponse<UpdateFeedMembersResponse>
1260
+ >(
1261
+ 'PATCH',
1262
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members',
1263
+ pathParams,
1264
+ undefined,
1265
+ body,
1266
+ 'application/json',
1267
+ );
1268
+
1269
+ decoders.UpdateFeedMembersResponse?.(response.body);
1270
+
1271
+ return { ...response.body, metadata: response.metadata };
1272
+ }
1273
+
1274
+ async acceptFeedMemberInvite(
1275
+ request: AcceptFeedMemberInviteRequest & {
1276
+ feed_id: string;
1277
+ feed_group_id: string;
1278
+ },
1279
+ ): Promise<StreamResponse<AcceptFeedMemberInviteResponse>> {
1280
+ const pathParams = {
1281
+ feed_id: request?.feed_id,
1282
+ feed_group_id: request?.feed_group_id,
1283
+ };
1284
+ const body = {};
1285
+
1286
+ const response = await this.apiClient.sendRequest<
1287
+ StreamResponse<AcceptFeedMemberInviteResponse>
1288
+ >(
1289
+ 'POST',
1290
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept',
1291
+ pathParams,
1292
+ undefined,
1293
+ body,
1294
+ 'application/json',
1295
+ );
1296
+
1297
+ decoders.AcceptFeedMemberInviteResponse?.(response.body);
1298
+
1299
+ return { ...response.body, metadata: response.metadata };
1300
+ }
1301
+
1302
+ async queryFeedMembers(
1303
+ request: QueryFeedMembersRequest & {
1304
+ feed_group_id: string;
1305
+ feed_id: string;
1306
+ },
1307
+ ): Promise<StreamResponse<QueryFeedMembersResponse>> {
1308
+ const pathParams = {
1309
+ feed_group_id: request?.feed_group_id,
1310
+ feed_id: request?.feed_id,
1311
+ };
1312
+ const body = {
1313
+ limit: request?.limit,
1314
+ next: request?.next,
1315
+ prev: request?.prev,
1316
+ sort: request?.sort,
1317
+ filter: request?.filter,
1318
+ };
1319
+
1320
+ const response = await this.apiClient.sendRequest<
1321
+ StreamResponse<QueryFeedMembersResponse>
1322
+ >(
1323
+ 'POST',
1324
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query',
1325
+ pathParams,
1326
+ undefined,
1327
+ body,
1328
+ 'application/json',
1329
+ );
1330
+
1331
+ decoders.QueryFeedMembersResponse?.(response.body);
1332
+
1333
+ return { ...response.body, metadata: response.metadata };
1334
+ }
1335
+
1336
+ async rejectFeedMemberInvite(
1337
+ request: RejectFeedMemberInviteRequest & {
1338
+ feed_group_id: string;
1339
+ feed_id: string;
1340
+ },
1341
+ ): Promise<StreamResponse<RejectFeedMemberInviteResponse>> {
1342
+ const pathParams = {
1343
+ feed_group_id: request?.feed_group_id,
1344
+ feed_id: request?.feed_id,
1345
+ };
1346
+ const body = {};
1347
+
1348
+ const response = await this.apiClient.sendRequest<
1349
+ StreamResponse<RejectFeedMemberInviteResponse>
1350
+ >(
1351
+ 'POST',
1352
+ '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject',
1353
+ pathParams,
1354
+ undefined,
1355
+ body,
1356
+ 'application/json',
1357
+ );
1358
+
1359
+ decoders.RejectFeedMemberInviteResponse?.(response.body);
1360
+
1361
+ return { ...response.body, metadata: response.metadata };
1362
+ }
1363
+
1364
+ async getFollowSuggestions(request: {
1365
+ feed_group_id: string;
1366
+ limit?: number;
1367
+ }): Promise<StreamResponse<GetFollowSuggestionsResponse>> {
1368
+ const queryParams = {
1369
+ limit: request?.limit,
1370
+ };
1371
+ const pathParams = {
1372
+ feed_group_id: request?.feed_group_id,
1373
+ };
1374
+
1375
+ const response = await this.apiClient.sendRequest<
1376
+ StreamResponse<GetFollowSuggestionsResponse>
1377
+ >(
1378
+ 'GET',
1379
+ '/api/v2/feeds/feed_groups/{feed_group_id}/follow_suggestions',
1380
+ pathParams,
1381
+ queryParams,
1382
+ );
1383
+
1384
+ decoders.GetFollowSuggestionsResponse?.(response.body);
1385
+
1386
+ return { ...response.body, metadata: response.metadata };
1387
+ }
1388
+
1389
+ async createFeedsBatch(
1390
+ request: CreateFeedsBatchRequest,
1391
+ ): Promise<StreamResponse<CreateFeedsBatchResponse>> {
1392
+ const body = {
1393
+ feeds: request?.feeds,
1394
+ };
1395
+
1396
+ const response = await this.apiClient.sendRequest<
1397
+ StreamResponse<CreateFeedsBatchResponse>
1398
+ >(
1399
+ 'POST',
1400
+ '/api/v2/feeds/feeds/batch',
1401
+ undefined,
1402
+ undefined,
1403
+ body,
1404
+ 'application/json',
1405
+ );
1406
+
1407
+ decoders.CreateFeedsBatchResponse?.(response.body);
1408
+
1409
+ return { ...response.body, metadata: response.metadata };
1410
+ }
1411
+
1412
+ async feedsQueryFeeds(
1413
+ request?: QueryFeedsRequest & { connection_id?: string },
1414
+ ): Promise<StreamResponse<QueryFeedsResponse>> {
1415
+ const queryParams = {
1416
+ connection_id: request?.connection_id,
1417
+ };
1418
+ const body = {
1419
+ limit: request?.limit,
1420
+ next: request?.next,
1421
+ prev: request?.prev,
1422
+ watch: request?.watch,
1423
+ sort: request?.sort,
1424
+ filter: request?.filter,
1425
+ };
1426
+
1427
+ const response = await this.apiClient.sendRequest<
1428
+ StreamResponse<QueryFeedsResponse>
1429
+ >(
1430
+ 'POST',
1431
+ '/api/v2/feeds/feeds/query',
1432
+ undefined,
1433
+ queryParams,
1434
+ body,
1435
+ 'application/json',
1436
+ );
1437
+
1438
+ decoders.QueryFeedsResponse?.(response.body);
1439
+
1440
+ return { ...response.body, metadata: response.metadata };
1441
+ }
1442
+
1443
+ async updateFollow(
1444
+ request: UpdateFollowRequest,
1445
+ ): Promise<StreamResponse<UpdateFollowResponse>> {
1446
+ const body = {
1447
+ source: request?.source,
1448
+ target: request?.target,
1449
+ follower_role: request?.follower_role,
1450
+ push_preference: request?.push_preference,
1451
+ custom: request?.custom,
1452
+ };
1453
+
1454
+ const response = await this.apiClient.sendRequest<
1455
+ StreamResponse<UpdateFollowResponse>
1456
+ >(
1457
+ 'PATCH',
1458
+ '/api/v2/feeds/follows',
1459
+ undefined,
1460
+ undefined,
1461
+ body,
1462
+ 'application/json',
1463
+ );
1464
+
1465
+ decoders.UpdateFollowResponse?.(response.body);
1466
+
1467
+ return { ...response.body, metadata: response.metadata };
1468
+ }
1469
+
1470
+ async follow(
1471
+ request: SingleFollowRequest,
1472
+ ): Promise<StreamResponse<SingleFollowResponse>> {
1473
+ const body = {
1474
+ source: request?.source,
1475
+ target: request?.target,
1476
+ push_preference: request?.push_preference,
1477
+ custom: request?.custom,
1478
+ };
1479
+
1480
+ const response = await this.apiClient.sendRequest<
1481
+ StreamResponse<SingleFollowResponse>
1482
+ >(
1483
+ 'POST',
1484
+ '/api/v2/feeds/follows',
1485
+ undefined,
1486
+ undefined,
1487
+ body,
1488
+ 'application/json',
1489
+ );
1490
+
1491
+ decoders.SingleFollowResponse?.(response.body);
1492
+
1493
+ return { ...response.body, metadata: response.metadata };
1494
+ }
1495
+
1496
+ async acceptFollow(
1497
+ request: AcceptFollowRequest,
1498
+ ): Promise<StreamResponse<AcceptFollowResponse>> {
1499
+ const body = {
1500
+ source_fid: request?.source_fid,
1501
+ target_fid: request?.target_fid,
1502
+ follower_role: request?.follower_role,
1503
+ };
1504
+
1505
+ const response = await this.apiClient.sendRequest<
1506
+ StreamResponse<AcceptFollowResponse>
1507
+ >(
1508
+ 'POST',
1509
+ '/api/v2/feeds/follows/accept',
1510
+ undefined,
1511
+ undefined,
1512
+ body,
1513
+ 'application/json',
1514
+ );
1515
+
1516
+ decoders.AcceptFollowResponse?.(response.body);
1517
+
1518
+ return { ...response.body, metadata: response.metadata };
1519
+ }
1520
+
1521
+ async followBatch(
1522
+ request: FollowBatchRequest,
1523
+ ): Promise<StreamResponse<FollowBatchResponse>> {
1524
+ const body = {
1525
+ follows: request?.follows,
1526
+ };
1527
+
1528
+ const response = await this.apiClient.sendRequest<
1529
+ StreamResponse<FollowBatchResponse>
1530
+ >(
1531
+ 'POST',
1532
+ '/api/v2/feeds/follows/batch',
1533
+ undefined,
1534
+ undefined,
1535
+ body,
1536
+ 'application/json',
1537
+ );
1538
+
1539
+ decoders.FollowBatchResponse?.(response.body);
1540
+
1541
+ return { ...response.body, metadata: response.metadata };
1542
+ }
1543
+
1544
+ async queryFollows(
1545
+ request?: QueryFollowsRequest,
1546
+ ): Promise<StreamResponse<QueryFollowsResponse>> {
1547
+ const body = {
1548
+ limit: request?.limit,
1549
+ next: request?.next,
1550
+ prev: request?.prev,
1551
+ sort: request?.sort,
1552
+ filter: request?.filter,
1553
+ };
1554
+
1555
+ const response = await this.apiClient.sendRequest<
1556
+ StreamResponse<QueryFollowsResponse>
1557
+ >(
1558
+ 'POST',
1559
+ '/api/v2/feeds/follows/query',
1560
+ undefined,
1561
+ undefined,
1562
+ body,
1563
+ 'application/json',
1564
+ );
1565
+
1566
+ decoders.QueryFollowsResponse?.(response.body);
1567
+
1568
+ return { ...response.body, metadata: response.metadata };
1569
+ }
1570
+
1571
+ async rejectFollow(
1572
+ request: RejectFollowRequest,
1573
+ ): Promise<StreamResponse<RejectFollowResponse>> {
1574
+ const body = {
1575
+ source_fid: request?.source_fid,
1576
+ target_fid: request?.target_fid,
1577
+ };
1578
+
1579
+ const response = await this.apiClient.sendRequest<
1580
+ StreamResponse<RejectFollowResponse>
1581
+ >(
1582
+ 'POST',
1583
+ '/api/v2/feeds/follows/reject',
1584
+ undefined,
1585
+ undefined,
1586
+ body,
1587
+ 'application/json',
1588
+ );
1589
+
1590
+ decoders.RejectFollowResponse?.(response.body);
1591
+
1592
+ return { ...response.body, metadata: response.metadata };
1593
+ }
1594
+
1595
+ async unfollow(request: {
1596
+ source: string;
1597
+ target: string;
1598
+ }): Promise<StreamResponse<UnfollowResponse>> {
1599
+ const pathParams = {
1600
+ source: request?.source,
1601
+ target: request?.target,
1602
+ };
1603
+
1604
+ const response = await this.apiClient.sendRequest<
1605
+ StreamResponse<UnfollowResponse>
1606
+ >(
1607
+ 'DELETE',
1608
+ '/api/v2/feeds/follows/{source}/{target}',
1609
+ pathParams,
1610
+ undefined,
1611
+ );
1612
+
1613
+ decoders.UnfollowResponse?.(response.body);
1614
+
1615
+ return { ...response.body, metadata: response.metadata };
1616
+ }
1617
+
1618
+ async createGuest(
1619
+ request: CreateGuestRequest,
1620
+ ): Promise<StreamResponse<CreateGuestResponse>> {
1621
+ const body = {
1622
+ user: request?.user,
1623
+ };
1624
+
1625
+ const response = await this.apiClient.sendRequest<
1626
+ StreamResponse<CreateGuestResponse>
1627
+ >('POST', '/api/v2/guest', undefined, undefined, body, 'application/json');
1628
+
1629
+ decoders.CreateGuestResponse?.(response.body);
1630
+
1631
+ return { ...response.body, metadata: response.metadata };
1632
+ }
1633
+
1634
+ async longPoll(request?: {
1635
+ connection_id?: string;
1636
+ json?: WSAuthMessage;
1637
+ }): Promise<StreamResponse<{}>> {
1638
+ const queryParams = {
1639
+ connection_id: request?.connection_id,
1640
+ json: request?.json,
1641
+ };
1642
+
1643
+ const response = await this.apiClient.sendRequest<StreamResponse<{}>>(
1644
+ 'GET',
1645
+ '/api/v2/longpoll',
1646
+ undefined,
1647
+ queryParams,
1648
+ );
1649
+
1650
+ decoders['{}']?.(response.body);
1651
+
1652
+ return { ...response.body, metadata: response.metadata };
1653
+ }
1654
+
1655
+ async getOG(request: {
1656
+ url: string;
1657
+ }): Promise<StreamResponse<GetOGResponse>> {
1658
+ const queryParams = {
1659
+ url: request?.url,
1660
+ };
1661
+
1662
+ const response = await this.apiClient.sendRequest<
1663
+ StreamResponse<GetOGResponse>
1664
+ >('GET', '/api/v2/og', undefined, queryParams);
1665
+
1666
+ decoders.GetOGResponse?.(response.body);
1667
+
1668
+ return { ...response.body, metadata: response.metadata };
1669
+ }
1670
+
1671
+ async createPoll(
1672
+ request: CreatePollRequest,
1673
+ ): Promise<StreamResponse<PollResponse>> {
1674
+ const body = {
1675
+ name: request?.name,
1676
+ allow_answers: request?.allow_answers,
1677
+ allow_user_suggested_options: request?.allow_user_suggested_options,
1678
+ description: request?.description,
1679
+ enforce_unique_vote: request?.enforce_unique_vote,
1680
+ id: request?.id,
1681
+ is_closed: request?.is_closed,
1682
+ max_votes_allowed: request?.max_votes_allowed,
1683
+ voting_visibility: request?.voting_visibility,
1684
+ options: request?.options,
1685
+ custom: request?.custom,
1686
+ };
1687
+
1688
+ const response = await this.apiClient.sendRequest<
1689
+ StreamResponse<PollResponse>
1690
+ >('POST', '/api/v2/polls', undefined, undefined, body, 'application/json');
1691
+
1692
+ decoders.PollResponse?.(response.body);
1693
+
1694
+ return { ...response.body, metadata: response.metadata };
1695
+ }
1696
+
1697
+ async updatePoll(
1698
+ request: UpdatePollRequest,
1699
+ ): Promise<StreamResponse<PollResponse>> {
1700
+ const body = {
1701
+ id: request?.id,
1702
+ name: request?.name,
1703
+ allow_answers: request?.allow_answers,
1704
+ allow_user_suggested_options: request?.allow_user_suggested_options,
1705
+ description: request?.description,
1706
+ enforce_unique_vote: request?.enforce_unique_vote,
1707
+ is_closed: request?.is_closed,
1708
+ max_votes_allowed: request?.max_votes_allowed,
1709
+ voting_visibility: request?.voting_visibility,
1710
+ options: request?.options,
1711
+ custom: request?.custom,
1712
+ };
1713
+
1714
+ const response = await this.apiClient.sendRequest<
1715
+ StreamResponse<PollResponse>
1716
+ >('PUT', '/api/v2/polls', undefined, undefined, body, 'application/json');
1717
+
1718
+ decoders.PollResponse?.(response.body);
1719
+
1720
+ return { ...response.body, metadata: response.metadata };
1721
+ }
1722
+
1723
+ async queryPolls(
1724
+ request?: QueryPollsRequest & { user_id?: string },
1725
+ ): Promise<StreamResponse<QueryPollsResponse>> {
1726
+ const queryParams = {
1727
+ user_id: request?.user_id,
1728
+ };
1729
+ const body = {
1730
+ limit: request?.limit,
1731
+ next: request?.next,
1732
+ prev: request?.prev,
1733
+ sort: request?.sort,
1734
+ filter: request?.filter,
1735
+ };
1736
+
1737
+ const response = await this.apiClient.sendRequest<
1738
+ StreamResponse<QueryPollsResponse>
1739
+ >(
1740
+ 'POST',
1741
+ '/api/v2/polls/query',
1742
+ undefined,
1743
+ queryParams,
1744
+ body,
1745
+ 'application/json',
1746
+ );
1747
+
1748
+ decoders.QueryPollsResponse?.(response.body);
1749
+
1750
+ return { ...response.body, metadata: response.metadata };
1751
+ }
1752
+
1753
+ async deletePoll(request: {
1754
+ poll_id: string;
1755
+ user_id?: string;
1756
+ }): Promise<StreamResponse<Response>> {
1757
+ const queryParams = {
1758
+ user_id: request?.user_id,
1759
+ };
1760
+ const pathParams = {
1761
+ poll_id: request?.poll_id,
1762
+ };
1763
+
1764
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
1765
+ 'DELETE',
1766
+ '/api/v2/polls/{poll_id}',
1767
+ pathParams,
1768
+ queryParams,
1769
+ );
1770
+
1771
+ decoders.Response?.(response.body);
1772
+
1773
+ return { ...response.body, metadata: response.metadata };
1774
+ }
1775
+
1776
+ async getPoll(request: {
1777
+ poll_id: string;
1778
+ user_id?: string;
1779
+ }): Promise<StreamResponse<PollResponse>> {
1780
+ const queryParams = {
1781
+ user_id: request?.user_id,
1782
+ };
1783
+ const pathParams = {
1784
+ poll_id: request?.poll_id,
1785
+ };
1786
+
1787
+ const response = await this.apiClient.sendRequest<
1788
+ StreamResponse<PollResponse>
1789
+ >('GET', '/api/v2/polls/{poll_id}', pathParams, queryParams);
1790
+
1791
+ decoders.PollResponse?.(response.body);
1792
+
1793
+ return { ...response.body, metadata: response.metadata };
1794
+ }
1795
+
1796
+ async updatePollPartial(
1797
+ request: UpdatePollPartialRequest & { poll_id: string },
1798
+ ): Promise<StreamResponse<PollResponse>> {
1799
+ const pathParams = {
1800
+ poll_id: request?.poll_id,
1801
+ };
1802
+ const body = {
1803
+ unset: request?.unset,
1804
+ set: request?.set,
1805
+ };
1806
+
1807
+ const response = await this.apiClient.sendRequest<
1808
+ StreamResponse<PollResponse>
1809
+ >(
1810
+ 'PATCH',
1811
+ '/api/v2/polls/{poll_id}',
1812
+ pathParams,
1813
+ undefined,
1814
+ body,
1815
+ 'application/json',
1816
+ );
1817
+
1818
+ decoders.PollResponse?.(response.body);
1819
+
1820
+ return { ...response.body, metadata: response.metadata };
1821
+ }
1822
+
1823
+ async createPollOption(
1824
+ request: CreatePollOptionRequest & { poll_id: string },
1825
+ ): Promise<StreamResponse<PollOptionResponse>> {
1826
+ const pathParams = {
1827
+ poll_id: request?.poll_id,
1828
+ };
1829
+ const body = {
1830
+ text: request?.text,
1831
+ custom: request?.custom,
1832
+ };
1833
+
1834
+ const response = await this.apiClient.sendRequest<
1835
+ StreamResponse<PollOptionResponse>
1836
+ >(
1837
+ 'POST',
1838
+ '/api/v2/polls/{poll_id}/options',
1839
+ pathParams,
1840
+ undefined,
1841
+ body,
1842
+ 'application/json',
1843
+ );
1844
+
1845
+ decoders.PollOptionResponse?.(response.body);
1846
+
1847
+ return { ...response.body, metadata: response.metadata };
1848
+ }
1849
+
1850
+ async updatePollOption(
1851
+ request: UpdatePollOptionRequest & { poll_id: string },
1852
+ ): Promise<StreamResponse<PollOptionResponse>> {
1853
+ const pathParams = {
1854
+ poll_id: request?.poll_id,
1855
+ };
1856
+ const body = {
1857
+ id: request?.id,
1858
+ text: request?.text,
1859
+ custom: request?.custom,
1860
+ };
1861
+
1862
+ const response = await this.apiClient.sendRequest<
1863
+ StreamResponse<PollOptionResponse>
1864
+ >(
1865
+ 'PUT',
1866
+ '/api/v2/polls/{poll_id}/options',
1867
+ pathParams,
1868
+ undefined,
1869
+ body,
1870
+ 'application/json',
1871
+ );
1872
+
1873
+ decoders.PollOptionResponse?.(response.body);
1874
+
1875
+ return { ...response.body, metadata: response.metadata };
1876
+ }
1877
+
1878
+ async deletePollOption(request: {
1879
+ poll_id: string;
1880
+ option_id: string;
1881
+ user_id?: string;
1882
+ }): Promise<StreamResponse<Response>> {
1883
+ const queryParams = {
1884
+ user_id: request?.user_id,
1885
+ };
1886
+ const pathParams = {
1887
+ poll_id: request?.poll_id,
1888
+ option_id: request?.option_id,
1889
+ };
1890
+
1891
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
1892
+ 'DELETE',
1893
+ '/api/v2/polls/{poll_id}/options/{option_id}',
1894
+ pathParams,
1895
+ queryParams,
1896
+ );
1897
+
1898
+ decoders.Response?.(response.body);
1899
+
1900
+ return { ...response.body, metadata: response.metadata };
1901
+ }
1902
+
1903
+ async getPollOption(request: {
1904
+ poll_id: string;
1905
+ option_id: string;
1906
+ user_id?: string;
1907
+ }): Promise<StreamResponse<PollOptionResponse>> {
1908
+ const queryParams = {
1909
+ user_id: request?.user_id,
1910
+ };
1911
+ const pathParams = {
1912
+ poll_id: request?.poll_id,
1913
+ option_id: request?.option_id,
1914
+ };
1915
+
1916
+ const response = await this.apiClient.sendRequest<
1917
+ StreamResponse<PollOptionResponse>
1918
+ >(
1919
+ 'GET',
1920
+ '/api/v2/polls/{poll_id}/options/{option_id}',
1921
+ pathParams,
1922
+ queryParams,
1923
+ );
1924
+
1925
+ decoders.PollOptionResponse?.(response.body);
1926
+
1927
+ return { ...response.body, metadata: response.metadata };
1928
+ }
1929
+
1930
+ async queryPollVotes(
1931
+ request: QueryPollVotesRequest & { poll_id: string; user_id?: string },
1932
+ ): Promise<StreamResponse<PollVotesResponse>> {
1933
+ const queryParams = {
1934
+ user_id: request?.user_id,
1935
+ };
1936
+ const pathParams = {
1937
+ poll_id: request?.poll_id,
1938
+ };
1939
+ const body = {
1940
+ limit: request?.limit,
1941
+ next: request?.next,
1942
+ prev: request?.prev,
1943
+ sort: request?.sort,
1944
+ filter: request?.filter,
1945
+ };
1946
+
1947
+ const response = await this.apiClient.sendRequest<
1948
+ StreamResponse<PollVotesResponse>
1949
+ >(
1950
+ 'POST',
1951
+ '/api/v2/polls/{poll_id}/votes',
1952
+ pathParams,
1953
+ queryParams,
1954
+ body,
1955
+ 'application/json',
1956
+ );
1957
+
1958
+ decoders.PollVotesResponse?.(response.body);
1959
+
1960
+ return { ...response.body, metadata: response.metadata };
1961
+ }
1962
+
1963
+ async deleteFile(request?: {
1964
+ url?: string;
1965
+ }): Promise<StreamResponse<Response>> {
1966
+ const queryParams = {
1967
+ url: request?.url,
1968
+ };
1969
+
1970
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
1971
+ 'DELETE',
1972
+ '/api/v2/uploads/file',
1973
+ undefined,
1974
+ queryParams,
1975
+ );
1976
+
1977
+ decoders.Response?.(response.body);
1978
+
1979
+ return { ...response.body, metadata: response.metadata };
1980
+ }
1981
+
1982
+ async uploadFile(
1983
+ request?: FileUploadRequest,
1984
+ ): Promise<StreamResponse<FileUploadResponse>> {
1985
+ const body = {
1986
+ file: request?.file,
1987
+ user: request?.user,
1988
+ };
1989
+
1990
+ const response = await this.apiClient.sendRequest<
1991
+ StreamResponse<FileUploadResponse>
1992
+ >(
1993
+ 'POST',
1994
+ '/api/v2/uploads/file',
1995
+ undefined,
1996
+ undefined,
1997
+ body,
1998
+ 'multipart/form-data',
1999
+ );
2000
+
2001
+ decoders.FileUploadResponse?.(response.body);
2002
+
2003
+ return { ...response.body, metadata: response.metadata };
2004
+ }
2005
+
2006
+ async deleteImage(request?: {
2007
+ url?: string;
2008
+ }): Promise<StreamResponse<Response>> {
2009
+ const queryParams = {
2010
+ url: request?.url,
2011
+ };
2012
+
2013
+ const response = await this.apiClient.sendRequest<StreamResponse<Response>>(
2014
+ 'DELETE',
2015
+ '/api/v2/uploads/image',
2016
+ undefined,
2017
+ queryParams,
2018
+ );
2019
+
2020
+ decoders.Response?.(response.body);
2021
+
2022
+ return { ...response.body, metadata: response.metadata };
2023
+ }
2024
+
2025
+ async uploadImage(
2026
+ request?: ImageUploadRequest,
2027
+ ): Promise<StreamResponse<ImageUploadResponse>> {
2028
+ const body = {
2029
+ file: request?.file,
2030
+ upload_sizes: request?.upload_sizes,
2031
+ user: request?.user,
2032
+ };
2033
+
2034
+ const response = await this.apiClient.sendRequest<
2035
+ StreamResponse<ImageUploadResponse>
2036
+ >(
2037
+ 'POST',
2038
+ '/api/v2/uploads/image',
2039
+ undefined,
2040
+ undefined,
2041
+ body,
2042
+ 'multipart/form-data',
2043
+ );
2044
+
2045
+ decoders.ImageUploadResponse?.(response.body);
2046
+
2047
+ return { ...response.body, metadata: response.metadata };
2048
+ }
2049
+
2050
+ async queryUsers(request?: {
2051
+ payload?: QueryUsersPayload;
2052
+ }): Promise<StreamResponse<QueryUsersResponse>> {
2053
+ const queryParams = {
2054
+ payload: request?.payload,
2055
+ };
2056
+
2057
+ const response = await this.apiClient.sendRequest<
2058
+ StreamResponse<QueryUsersResponse>
2059
+ >('GET', '/api/v2/users', undefined, queryParams);
2060
+
2061
+ decoders.QueryUsersResponse?.(response.body);
2062
+
2063
+ return { ...response.body, metadata: response.metadata };
2064
+ }
2065
+
2066
+ async updateUsersPartial(
2067
+ request: UpdateUsersPartialRequest,
2068
+ ): Promise<StreamResponse<UpdateUsersResponse>> {
2069
+ const body = {
2070
+ users: request?.users,
2071
+ };
2072
+
2073
+ const response = await this.apiClient.sendRequest<
2074
+ StreamResponse<UpdateUsersResponse>
2075
+ >('PATCH', '/api/v2/users', undefined, undefined, body, 'application/json');
2076
+
2077
+ decoders.UpdateUsersResponse?.(response.body);
2078
+
2079
+ return { ...response.body, metadata: response.metadata };
2080
+ }
2081
+
2082
+ async updateUsers(
2083
+ request: UpdateUsersRequest,
2084
+ ): Promise<StreamResponse<UpdateUsersResponse>> {
2085
+ const body = {
2086
+ users: request?.users,
2087
+ };
2088
+
2089
+ const response = await this.apiClient.sendRequest<
2090
+ StreamResponse<UpdateUsersResponse>
2091
+ >('POST', '/api/v2/users', undefined, undefined, body, 'application/json');
2092
+
2093
+ decoders.UpdateUsersResponse?.(response.body);
2094
+
2095
+ return { ...response.body, metadata: response.metadata };
2096
+ }
2097
+
2098
+ async getBlockedUsers(): Promise<StreamResponse<GetBlockedUsersResponse>> {
2099
+ const response = await this.apiClient.sendRequest<
2100
+ StreamResponse<GetBlockedUsersResponse>
2101
+ >('GET', '/api/v2/users/block', undefined, undefined);
2102
+
2103
+ decoders.GetBlockedUsersResponse?.(response.body);
2104
+
2105
+ return { ...response.body, metadata: response.metadata };
2106
+ }
2107
+
2108
+ async blockUsers(
2109
+ request: BlockUsersRequest,
2110
+ ): Promise<StreamResponse<BlockUsersResponse>> {
2111
+ const body = {
2112
+ blocked_user_id: request?.blocked_user_id,
2113
+ };
2114
+
2115
+ const response = await this.apiClient.sendRequest<
2116
+ StreamResponse<BlockUsersResponse>
2117
+ >(
2118
+ 'POST',
2119
+ '/api/v2/users/block',
2120
+ undefined,
2121
+ undefined,
2122
+ body,
2123
+ 'application/json',
2124
+ );
2125
+
2126
+ decoders.BlockUsersResponse?.(response.body);
2127
+
2128
+ return { ...response.body, metadata: response.metadata };
2129
+ }
2130
+
2131
+ async getUserLiveLocations(): Promise<
2132
+ StreamResponse<SharedLocationsResponse>
2133
+ > {
2134
+ const response = await this.apiClient.sendRequest<
2135
+ StreamResponse<SharedLocationsResponse>
2136
+ >('GET', '/api/v2/users/live_locations', undefined, undefined);
2137
+
2138
+ decoders.SharedLocationsResponse?.(response.body);
2139
+
2140
+ return { ...response.body, metadata: response.metadata };
2141
+ }
2142
+
2143
+ async updateLiveLocation(
2144
+ request: UpdateLiveLocationRequest,
2145
+ ): Promise<StreamResponse<SharedLocationResponse>> {
2146
+ const body = {
2147
+ created_by_device_id: request?.created_by_device_id,
2148
+ message_id: request?.message_id,
2149
+ end_at: request?.end_at,
2150
+ latitude: request?.latitude,
2151
+ longitude: request?.longitude,
2152
+ };
2153
+
2154
+ const response = await this.apiClient.sendRequest<
2155
+ StreamResponse<SharedLocationResponse>
2156
+ >(
2157
+ 'PUT',
2158
+ '/api/v2/users/live_locations',
2159
+ undefined,
2160
+ undefined,
2161
+ body,
2162
+ 'application/json',
2163
+ );
2164
+
2165
+ decoders.SharedLocationResponse?.(response.body);
2166
+
2167
+ return { ...response.body, metadata: response.metadata };
2168
+ }
2169
+
2170
+ async unblockUsers(
2171
+ request: UnblockUsersRequest,
2172
+ ): Promise<StreamResponse<UnblockUsersResponse>> {
2173
+ const body = {
2174
+ blocked_user_id: request?.blocked_user_id,
2175
+ };
2176
+
2177
+ const response = await this.apiClient.sendRequest<
2178
+ StreamResponse<UnblockUsersResponse>
2179
+ >(
2180
+ 'POST',
2181
+ '/api/v2/users/unblock',
2182
+ undefined,
2183
+ undefined,
2184
+ body,
2185
+ 'application/json',
2186
+ );
2187
+
2188
+ decoders.UnblockUsersResponse?.(response.body);
2189
+
2190
+ return { ...response.body, metadata: response.metadata };
2191
+ }
2192
+ }