@doist/twist-sdk 0.1.0-alpha.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/dist/authentication.d.ts +79 -0
  4. package/dist/authentication.d.ts.map +1 -0
  5. package/dist/authentication.js +115 -0
  6. package/dist/authentication.test.d.ts.map +1 -0
  7. package/dist/batch-builder.d.ts +27 -0
  8. package/dist/batch-builder.d.ts.map +1 -0
  9. package/dist/batch-builder.js +191 -0
  10. package/dist/batch-builder.test.d.ts.map +1 -0
  11. package/dist/clients/channels-client.d.ts +215 -0
  12. package/dist/clients/channels-client.d.ts.map +1 -0
  13. package/dist/clients/channels-client.js +140 -0
  14. package/dist/clients/channels-client.test.d.ts.map +1 -0
  15. package/dist/clients/comments-client.d.ts +125 -0
  16. package/dist/clients/comments-client.d.ts.map +1 -0
  17. package/dist/clients/comments-client.js +86 -0
  18. package/dist/clients/comments-client.test.d.ts.map +1 -0
  19. package/dist/clients/conversation-messages-client.d.ts +141 -0
  20. package/dist/clients/conversation-messages-client.d.ts.map +1 -0
  21. package/dist/clients/conversation-messages-client.js +92 -0
  22. package/dist/clients/conversation-messages-client.test.d.ts.map +1 -0
  23. package/dist/clients/conversations-client.d.ts +263 -0
  24. package/dist/clients/conversations-client.d.ts.map +1 -0
  25. package/dist/clients/conversations-client.js +174 -0
  26. package/dist/clients/conversations-client.test.d.ts.map +1 -0
  27. package/dist/clients/groups-client.d.ts +175 -0
  28. package/dist/clients/groups-client.d.ts.map +1 -0
  29. package/dist/clients/groups-client.js +104 -0
  30. package/dist/clients/groups-client.test.d.ts.map +1 -0
  31. package/dist/clients/inbox-client.d.ts +146 -0
  32. package/dist/clients/inbox-client.d.ts.map +1 -0
  33. package/dist/clients/inbox-client.js +92 -0
  34. package/dist/clients/reactions-client.d.ts +98 -0
  35. package/dist/clients/reactions-client.d.ts.map +1 -0
  36. package/dist/clients/reactions-client.js +86 -0
  37. package/dist/clients/reactions-client.test.d.ts.map +1 -0
  38. package/dist/clients/search-client.d.ts +128 -0
  39. package/dist/clients/search-client.d.ts.map +1 -0
  40. package/dist/clients/search-client.js +89 -0
  41. package/dist/clients/threads-client.d.ts +321 -0
  42. package/dist/clients/threads-client.d.ts.map +1 -0
  43. package/dist/clients/threads-client.js +212 -0
  44. package/dist/clients/threads-client.test.d.ts.map +1 -0
  45. package/dist/clients/users-client.d.ts +254 -0
  46. package/dist/clients/users-client.d.ts.map +1 -0
  47. package/dist/clients/users-client.js +155 -0
  48. package/dist/clients/users-client.test.d.ts.map +1 -0
  49. package/dist/clients/workspace-users-client.d.ts +220 -0
  50. package/dist/clients/workspace-users-client.d.ts.map +1 -0
  51. package/dist/clients/workspace-users-client.js +132 -0
  52. package/dist/clients/workspace-users-client.test.d.ts.map +1 -0
  53. package/dist/clients/workspaces-client.d.ts +143 -0
  54. package/dist/clients/workspaces-client.d.ts.map +1 -0
  55. package/dist/clients/workspaces-client.js +89 -0
  56. package/dist/clients/workspaces-client.test.d.ts.map +1 -0
  57. package/dist/consts/endpoints.d.ts +16 -0
  58. package/dist/consts/endpoints.d.ts.map +1 -0
  59. package/dist/consts/endpoints.js +23 -0
  60. package/dist/index.d.ts +10 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +32 -0
  63. package/dist/rest-client.d.ts +5 -0
  64. package/dist/rest-client.d.ts.map +1 -0
  65. package/dist/rest-client.js +201 -0
  66. package/dist/rest-client.test.d.ts.map +1 -0
  67. package/dist/testUtils/msw-handlers.d.ts +29 -0
  68. package/dist/testUtils/msw-handlers.d.ts.map +1 -0
  69. package/dist/testUtils/msw-handlers.js +52 -0
  70. package/dist/testUtils/msw-setup.d.ts +2 -0
  71. package/dist/testUtils/msw-setup.d.ts.map +1 -0
  72. package/dist/testUtils/msw-setup.js +21 -0
  73. package/dist/testUtils/test-defaults.d.ts +11 -0
  74. package/dist/testUtils/test-defaults.d.ts.map +1 -0
  75. package/dist/testUtils/test-defaults.js +96 -0
  76. package/dist/twist-api.d.ts +64 -0
  77. package/dist/twist-api.d.ts.map +1 -0
  78. package/dist/twist-api.js +76 -0
  79. package/dist/twist-api.test.d.ts.map +1 -0
  80. package/dist/types/batch.d.ts +36 -0
  81. package/dist/types/batch.d.ts.map +1 -0
  82. package/dist/types/batch.js +2 -0
  83. package/dist/types/entities.d.ts +367 -0
  84. package/dist/types/entities.d.ts.map +1 -0
  85. package/dist/types/entities.js +358 -0
  86. package/dist/types/enums.d.ts +22 -0
  87. package/dist/types/enums.d.ts.map +1 -0
  88. package/dist/types/enums.js +7 -0
  89. package/dist/types/errors.d.ts +7 -0
  90. package/dist/types/errors.d.ts.map +1 -0
  91. package/dist/types/errors.js +30 -0
  92. package/dist/types/http.d.ts +12 -0
  93. package/dist/types/http.d.ts.map +1 -0
  94. package/dist/types/http.js +2 -0
  95. package/dist/types/index.d.ts +7 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/index.js +22 -0
  98. package/dist/types/requests.d.ts +97 -0
  99. package/dist/types/requests.d.ts.map +1 -0
  100. package/dist/types/requests.js +92 -0
  101. package/dist/utils/case-conversion.d.ts +9 -0
  102. package/dist/utils/case-conversion.d.ts.map +1 -0
  103. package/dist/utils/case-conversion.js +56 -0
  104. package/dist/utils/case-conversion.test.d.ts.map +1 -0
  105. package/dist/utils/index.d.ts +3 -0
  106. package/dist/utils/index.d.ts.map +1 -0
  107. package/dist/utils/index.js +18 -0
  108. package/dist/utils/timestamp-conversion.d.ts +14 -0
  109. package/dist/utils/timestamp-conversion.d.ts.map +1 -0
  110. package/dist/utils/timestamp-conversion.js +47 -0
  111. package/dist/utils/url-helpers.d.ts +154 -0
  112. package/dist/utils/url-helpers.d.ts.map +1 -0
  113. package/dist/utils/url-helpers.js +223 -0
  114. package/dist/utils/url-helpers.test.d.ts.map +1 -0
  115. package/package.json +70 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationsClient = void 0;
4
+ var endpoints_1 = require("../consts/endpoints");
5
+ var rest_client_1 = require("../rest-client");
6
+ var entities_1 = require("../types/entities");
7
+ /**
8
+ * Client for interacting with Twist conversation endpoints.
9
+ */
10
+ var ConversationsClient = /** @class */ (function () {
11
+ function ConversationsClient(apiToken, baseUrl) {
12
+ this.apiToken = apiToken;
13
+ this.baseUrl = baseUrl;
14
+ }
15
+ ConversationsClient.prototype.getBaseUri = function () {
16
+ return this.baseUrl ? "".concat(this.baseUrl, "/api/v3") : (0, endpoints_1.getTwistBaseUri)();
17
+ };
18
+ ConversationsClient.prototype.getConversations = function (args, options) {
19
+ var method = 'GET';
20
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/get");
21
+ var params = args;
22
+ if (options === null || options === void 0 ? void 0 : options.batch) {
23
+ return { method: method, url: url, params: params };
24
+ }
25
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) {
26
+ return response.data.map(function (conversation) { return entities_1.ConversationSchema.parse(conversation); });
27
+ });
28
+ };
29
+ ConversationsClient.prototype.getConversation = function (id, options) {
30
+ var method = 'GET';
31
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/getone");
32
+ var params = { id: id };
33
+ var schema = entities_1.ConversationSchema;
34
+ if (options === null || options === void 0 ? void 0 : options.batch) {
35
+ return { method: method, url: url, params: params, schema: schema };
36
+ }
37
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
38
+ };
39
+ ConversationsClient.prototype.getOrCreateConversation = function (args, options) {
40
+ var method = 'POST';
41
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/get_or_create");
42
+ var params = args;
43
+ var schema = entities_1.ConversationSchema;
44
+ if (options === null || options === void 0 ? void 0 : options.batch) {
45
+ return { method: method, url: url, params: params, schema: schema };
46
+ }
47
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
48
+ };
49
+ ConversationsClient.prototype.updateConversation = function (id, title, archived, options) {
50
+ var params = { id: id, title: title };
51
+ if (archived !== undefined)
52
+ params.archived = archived;
53
+ var method = 'POST';
54
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/update");
55
+ var schema = entities_1.ConversationSchema;
56
+ if (options === null || options === void 0 ? void 0 : options.batch) {
57
+ return { method: method, url: url, params: params, schema: schema };
58
+ }
59
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
60
+ };
61
+ ConversationsClient.prototype.archiveConversation = function (id, options) {
62
+ var method = 'POST';
63
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/archive");
64
+ var params = { id: id };
65
+ if (options === null || options === void 0 ? void 0 : options.batch) {
66
+ return { method: method, url: url, params: params };
67
+ }
68
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
69
+ };
70
+ ConversationsClient.prototype.unarchiveConversation = function (id, options) {
71
+ var method = 'POST';
72
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/unarchive");
73
+ var params = { id: id };
74
+ if (options === null || options === void 0 ? void 0 : options.batch) {
75
+ return { method: method, url: url, params: params };
76
+ }
77
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
78
+ };
79
+ ConversationsClient.prototype.addUser = function (id, userId, options) {
80
+ var method = 'POST';
81
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/add_user");
82
+ var params = { id: id, userId: userId };
83
+ if (options === null || options === void 0 ? void 0 : options.batch) {
84
+ return { method: method, url: url, params: params };
85
+ }
86
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
87
+ };
88
+ ConversationsClient.prototype.addUsers = function (id, userIds, options) {
89
+ var method = 'POST';
90
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/add_users");
91
+ var params = { id: id, userIds: userIds };
92
+ if (options === null || options === void 0 ? void 0 : options.batch) {
93
+ return { method: method, url: url, params: params };
94
+ }
95
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
96
+ };
97
+ ConversationsClient.prototype.removeUser = function (id, userId, options) {
98
+ var method = 'POST';
99
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/remove_user");
100
+ var params = { id: id, userId: userId };
101
+ if (options === null || options === void 0 ? void 0 : options.batch) {
102
+ return { method: method, url: url, params: params };
103
+ }
104
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
105
+ };
106
+ ConversationsClient.prototype.removeUsers = function (id, userIds, options) {
107
+ var method = 'POST';
108
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/remove_users");
109
+ var params = { id: id, userIds: userIds };
110
+ if (options === null || options === void 0 ? void 0 : options.batch) {
111
+ return { method: method, url: url, params: params };
112
+ }
113
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
114
+ };
115
+ ConversationsClient.prototype.markRead = function (args, options) {
116
+ var params = { id: args.id };
117
+ if (args.objIndex !== undefined)
118
+ params.obj_index = args.objIndex;
119
+ if (args.messageId !== undefined)
120
+ params.message_id = args.messageId;
121
+ var method = 'POST';
122
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/mark_read");
123
+ if (options === null || options === void 0 ? void 0 : options.batch) {
124
+ return { method: method, url: url, params: params };
125
+ }
126
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
127
+ };
128
+ ConversationsClient.prototype.markUnread = function (args, options) {
129
+ var params = { id: args.id };
130
+ if (args.objIndex !== undefined)
131
+ params.obj_index = args.objIndex;
132
+ if (args.messageId !== undefined)
133
+ params.message_id = args.messageId;
134
+ var method = 'POST';
135
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/mark_unread");
136
+ if (options === null || options === void 0 ? void 0 : options.batch) {
137
+ return { method: method, url: url, params: params };
138
+ }
139
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
140
+ };
141
+ ConversationsClient.prototype.getUnread = function (workspaceId, options) {
142
+ var method = 'GET';
143
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/get_unread");
144
+ var params = { workspace_id: workspaceId };
145
+ if (options === null || options === void 0 ? void 0 : options.batch) {
146
+ return { method: method, url: url, params: params };
147
+ }
148
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) {
149
+ return response.data.map(function (conversation) { return entities_1.UnreadConversationSchema.parse(conversation); });
150
+ });
151
+ };
152
+ ConversationsClient.prototype.muteConversation = function (id, minutes, options) {
153
+ var method = 'POST';
154
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/mute");
155
+ var params = { id: id, minutes: minutes };
156
+ var schema = entities_1.ConversationSchema;
157
+ if (options === null || options === void 0 ? void 0 : options.batch) {
158
+ return { method: method, url: url, params: params, schema: schema };
159
+ }
160
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
161
+ };
162
+ ConversationsClient.prototype.unmuteConversation = function (id, options) {
163
+ var method = 'POST';
164
+ var url = "".concat(endpoints_1.ENDPOINT_CONVERSATIONS, "/unmute");
165
+ var params = { id: id };
166
+ var schema = entities_1.ConversationSchema;
167
+ if (options === null || options === void 0 ? void 0 : options.batch) {
168
+ return { method: method, url: url, params: params, schema: schema };
169
+ }
170
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
171
+ };
172
+ return ConversationsClient;
173
+ }());
174
+ exports.ConversationsClient = ConversationsClient;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations-client.test.d.ts","sourceRoot":"","sources":["../../src/clients/conversations-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,175 @@
1
+ import type { BatchRequestDescriptor } from '../types/batch';
2
+ import { Group } from '../types/entities';
3
+ /**
4
+ * Client for interacting with Twist group endpoints.
5
+ */
6
+ export declare class GroupsClient {
7
+ private apiToken;
8
+ private baseUrl?;
9
+ constructor(apiToken: string, baseUrl?: string | undefined);
10
+ private getBaseUri;
11
+ /**
12
+ * Gets all groups for a given workspace.
13
+ *
14
+ * @param workspaceId - The workspace ID.
15
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
16
+ * @returns An array of group objects.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const groups = await api.groups.getGroups(123)
21
+ * groups.forEach(g => console.log(g.name))
22
+ * ```
23
+ */
24
+ getGroups(workspaceId: number, options: {
25
+ batch: true;
26
+ }): BatchRequestDescriptor<Group[]>;
27
+ getGroups(workspaceId: number, options?: {
28
+ batch?: false;
29
+ }): Promise<Group[]>;
30
+ /**
31
+ * Gets a single group object by id.
32
+ *
33
+ * @param id - The group ID.
34
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
35
+ * @returns The group object.
36
+ */
37
+ getGroup(id: number, options: {
38
+ batch: true;
39
+ }): BatchRequestDescriptor<Group>;
40
+ getGroup(id: number, options?: {
41
+ batch?: false;
42
+ }): Promise<Group>;
43
+ /**
44
+ * Creates a new group.
45
+ *
46
+ * @param args - The arguments for creating a group.
47
+ * @param args.workspaceId - The workspace ID.
48
+ * @param args.name - The group name.
49
+ * @param args.description - Optional group description.
50
+ * @param args.color - Optional group color.
51
+ * @param args.userIds - Optional array of user IDs to add to the group.
52
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
53
+ * @returns The created group object.
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const group = await api.groups.createGroup({
58
+ * workspaceId: 123,
59
+ * name: 'Engineering Team',
60
+ * userIds: [1, 2, 3]
61
+ * })
62
+ * ```
63
+ */
64
+ createGroup(args: {
65
+ workspaceId: number;
66
+ name: string;
67
+ description?: string;
68
+ color?: string;
69
+ userIds?: number[];
70
+ }, options: {
71
+ batch: true;
72
+ }): BatchRequestDescriptor<Group>;
73
+ createGroup(args: {
74
+ workspaceId: number;
75
+ name: string;
76
+ description?: string;
77
+ color?: string;
78
+ userIds?: number[];
79
+ }): Promise<Group>;
80
+ /**
81
+ * Updates a group's properties.
82
+ *
83
+ * @param args - The arguments for updating a group.
84
+ * @param args.id - The group ID.
85
+ * @param args.name - Optional new group name.
86
+ * @param args.description - Optional new group description.
87
+ * @param args.color - Optional new group color.
88
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
89
+ * @returns The updated group object.
90
+ */
91
+ updateGroup(args: {
92
+ id: number;
93
+ name?: string;
94
+ description?: string;
95
+ color?: string;
96
+ }, options: {
97
+ batch: true;
98
+ }): BatchRequestDescriptor<Group>;
99
+ updateGroup(args: {
100
+ id: number;
101
+ name?: string;
102
+ description?: string;
103
+ color?: string;
104
+ }): Promise<Group>;
105
+ /**
106
+ * Permanently deletes a group.
107
+ *
108
+ * @param id - The group ID.
109
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
110
+ */
111
+ deleteGroup(id: number, options: {
112
+ batch: true;
113
+ }): BatchRequestDescriptor<void>;
114
+ deleteGroup(id: number, options?: {
115
+ batch?: false;
116
+ }): Promise<void>;
117
+ /**
118
+ * Adds a user to a group.
119
+ *
120
+ * @param id - The group ID.
121
+ * @param userId - The user ID to add.
122
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
123
+ */
124
+ addUserToGroup(id: number, userId: number, options: {
125
+ batch: true;
126
+ }): BatchRequestDescriptor<void>;
127
+ addUserToGroup(id: number, userId: number, options?: {
128
+ batch?: false;
129
+ }): Promise<void>;
130
+ /**
131
+ * Adds multiple users to a group.
132
+ *
133
+ * @param id - The group ID.
134
+ * @param userIds - Array of user IDs to add.
135
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * await api.groups.addUsers(123, [456, 789, 101])
140
+ * ```
141
+ */
142
+ addUsers(id: number, userIds: number[], options: {
143
+ batch: true;
144
+ }): BatchRequestDescriptor<void>;
145
+ addUsers(id: number, userIds: number[], options?: {
146
+ batch?: false;
147
+ }): Promise<void>;
148
+ /**
149
+ * Removes a user from a group.
150
+ *
151
+ * @param id - The group ID.
152
+ * @param userId - The user ID to remove.
153
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
154
+ */
155
+ removeUser(id: number, userId: number, options: {
156
+ batch: true;
157
+ }): BatchRequestDescriptor<void>;
158
+ removeUser(id: number, userId: number, options?: {
159
+ batch?: false;
160
+ }): Promise<void>;
161
+ /**
162
+ * Removes multiple users from a group.
163
+ *
164
+ * @param id - The group ID.
165
+ * @param userIds - Array of user IDs to remove.
166
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
167
+ */
168
+ removeUsers(id: number, userIds: number[], options: {
169
+ batch: true;
170
+ }): BatchRequestDescriptor<void>;
171
+ removeUsers(id: number, userIds: number[], options?: {
172
+ batch?: false;
173
+ }): Promise<void>;
174
+ }
175
+ //# sourceMappingURL=groups-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups-client.d.ts","sourceRoot":"","sources":["../../src/clients/groups-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupsClient = void 0;
4
+ var endpoints_1 = require("../consts/endpoints");
5
+ var rest_client_1 = require("../rest-client");
6
+ var entities_1 = require("../types/entities");
7
+ /**
8
+ * Client for interacting with Twist group endpoints.
9
+ */
10
+ var GroupsClient = /** @class */ (function () {
11
+ function GroupsClient(apiToken, baseUrl) {
12
+ this.apiToken = apiToken;
13
+ this.baseUrl = baseUrl;
14
+ }
15
+ GroupsClient.prototype.getBaseUri = function () {
16
+ return this.baseUrl ? "".concat(this.baseUrl, "/api/v3") : (0, endpoints_1.getTwistBaseUri)();
17
+ };
18
+ GroupsClient.prototype.getGroups = function (workspaceId, options) {
19
+ var method = 'GET';
20
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/get");
21
+ var params = { workspaceId: workspaceId };
22
+ if (options === null || options === void 0 ? void 0 : options.batch) {
23
+ return { method: method, url: url, params: params };
24
+ }
25
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return response.data.map(function (group) { return entities_1.GroupSchema.parse(group); }); });
26
+ };
27
+ GroupsClient.prototype.getGroup = function (id, options) {
28
+ var method = 'GET';
29
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/getone");
30
+ var params = { id: id };
31
+ var schema = entities_1.GroupSchema;
32
+ if (options === null || options === void 0 ? void 0 : options.batch) {
33
+ return { method: method, url: url, params: params, schema: schema };
34
+ }
35
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
36
+ };
37
+ GroupsClient.prototype.createGroup = function (args, options) {
38
+ var method = 'POST';
39
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/add");
40
+ var params = args;
41
+ var schema = entities_1.GroupSchema;
42
+ if (options === null || options === void 0 ? void 0 : options.batch) {
43
+ return { method: method, url: url, params: params, schema: schema };
44
+ }
45
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
46
+ };
47
+ GroupsClient.prototype.updateGroup = function (args, options) {
48
+ var method = 'POST';
49
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/update");
50
+ var params = args;
51
+ var schema = entities_1.GroupSchema;
52
+ if (options === null || options === void 0 ? void 0 : options.batch) {
53
+ return { method: method, url: url, params: params, schema: schema };
54
+ }
55
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function (response) { return schema.parse(response.data); });
56
+ };
57
+ GroupsClient.prototype.deleteGroup = function (id, options) {
58
+ var method = 'POST';
59
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/remove");
60
+ var params = { id: id };
61
+ if (options === null || options === void 0 ? void 0 : options.batch) {
62
+ return { method: method, url: url, params: params };
63
+ }
64
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
65
+ };
66
+ GroupsClient.prototype.addUserToGroup = function (id, userId, options) {
67
+ var method = 'POST';
68
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/add_user");
69
+ var params = { id: id, userId: userId };
70
+ if (options === null || options === void 0 ? void 0 : options.batch) {
71
+ return { method: method, url: url, params: params };
72
+ }
73
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
74
+ };
75
+ GroupsClient.prototype.addUsers = function (id, userIds, options) {
76
+ var method = 'POST';
77
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/add_users");
78
+ var params = { id: id, userIds: userIds };
79
+ if (options === null || options === void 0 ? void 0 : options.batch) {
80
+ return { method: method, url: url, params: params };
81
+ }
82
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
83
+ };
84
+ GroupsClient.prototype.removeUser = function (id, userId, options) {
85
+ var method = 'POST';
86
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/remove_user");
87
+ var params = { id: id, userId: userId };
88
+ if (options === null || options === void 0 ? void 0 : options.batch) {
89
+ return { method: method, url: url, params: params };
90
+ }
91
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
92
+ };
93
+ GroupsClient.prototype.removeUsers = function (id, userIds, options) {
94
+ var method = 'POST';
95
+ var url = "".concat(endpoints_1.ENDPOINT_GROUPS, "/remove_users");
96
+ var params = { id: id, userIds: userIds };
97
+ if (options === null || options === void 0 ? void 0 : options.batch) {
98
+ return { method: method, url: url, params: params };
99
+ }
100
+ return (0, rest_client_1.request)(method, this.getBaseUri(), url, this.apiToken, params).then(function () { return undefined; });
101
+ };
102
+ return GroupsClient;
103
+ }());
104
+ exports.GroupsClient = GroupsClient;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups-client.test.d.ts","sourceRoot":"","sources":["../../src/clients/groups-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,146 @@
1
+ import type { BatchRequestDescriptor } from '../types/batch';
2
+ import { InboxThread } from '../types/entities';
3
+ type GetInboxArgs = {
4
+ workspaceId: number;
5
+ since?: Date;
6
+ until?: Date;
7
+ limit?: number;
8
+ cursor?: string;
9
+ };
10
+ type ArchiveAllArgs = {
11
+ workspaceId: number;
12
+ channelIds?: number[];
13
+ since?: Date;
14
+ until?: Date;
15
+ };
16
+ /**
17
+ * Client for interacting with Twist inbox endpoints.
18
+ */
19
+ export declare class InboxClient {
20
+ private apiToken;
21
+ private baseUrl?;
22
+ constructor(apiToken: string, baseUrl?: string | undefined);
23
+ private getBaseUri;
24
+ /**
25
+ * Gets inbox items (threads).
26
+ *
27
+ * @param args - The arguments for getting inbox.
28
+ * @param args.workspaceId - The workspace ID.
29
+ * @param args.since - Optional date to get items since.
30
+ * @param args.until - Optional date to get items until.
31
+ * @param args.limit - Optional limit on number of items returned.
32
+ * @param args.cursor - Optional cursor for pagination.
33
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
34
+ * @returns Inbox threads.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const inbox = await api.inbox.getInbox({
39
+ * workspaceId: 123,
40
+ * since: new Date('2024-01-01')
41
+ * })
42
+ * ```
43
+ */
44
+ getInbox(args: GetInboxArgs, options: {
45
+ batch: true;
46
+ }): BatchRequestDescriptor<InboxThread[]>;
47
+ getInbox(args: GetInboxArgs, options?: {
48
+ batch?: false;
49
+ }): Promise<InboxThread[]>;
50
+ /**
51
+ * Gets unread count for inbox.
52
+ *
53
+ * @param workspaceId - The workspace ID.
54
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
55
+ * @returns The unread count.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const count = await api.inbox.getCount(123)
60
+ * console.log(`Unread items: ${count}`)
61
+ * ```
62
+ */
63
+ getCount(workspaceId: number, options: {
64
+ batch: true;
65
+ }): BatchRequestDescriptor<number>;
66
+ getCount(workspaceId: number, options?: {
67
+ batch?: false;
68
+ }): Promise<number>;
69
+ /**
70
+ * Archives a thread in the inbox.
71
+ *
72
+ * @param id - The thread ID.
73
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * await api.inbox.archiveThread(456)
78
+ * ```
79
+ */
80
+ archiveThread(id: number, options: {
81
+ batch: true;
82
+ }): BatchRequestDescriptor<void>;
83
+ archiveThread(id: number, options?: {
84
+ batch?: false;
85
+ }): Promise<void>;
86
+ /**
87
+ * Unarchives a thread in the inbox.
88
+ *
89
+ * @param id - The thread ID.
90
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * await api.inbox.unarchiveThread(456)
95
+ * ```
96
+ */
97
+ unarchiveThread(id: number, options: {
98
+ batch: true;
99
+ }): BatchRequestDescriptor<void>;
100
+ unarchiveThread(id: number, options?: {
101
+ batch?: false;
102
+ }): Promise<void>;
103
+ /**
104
+ * Marks all inbox items as read in a workspace.
105
+ *
106
+ * @param workspaceId - The workspace ID.
107
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * await api.inbox.markAllRead(123)
112
+ * ```
113
+ */
114
+ markAllRead(workspaceId: number, options: {
115
+ batch: true;
116
+ }): BatchRequestDescriptor<void>;
117
+ markAllRead(workspaceId: number, options?: {
118
+ batch?: false;
119
+ }): Promise<void>;
120
+ /**
121
+ * Archives all inbox items in a workspace.
122
+ *
123
+ * @param args - The arguments for archiving all.
124
+ * @param args.workspaceId - The workspace ID.
125
+ * @param args.channelIds - Optional array of channel IDs to filter by.
126
+ * @param args.since - Optional date to filter items since.
127
+ * @param args.until - Optional date to filter items until.
128
+ * @param options - Optional configuration. Set `batch: true` to return a descriptor for batch requests.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * await api.inbox.archiveAll({
133
+ * workspaceId: 123,
134
+ * since: new Date('2024-01-01')
135
+ * })
136
+ * ```
137
+ */
138
+ archiveAll(args: ArchiveAllArgs, options: {
139
+ batch: true;
140
+ }): BatchRequestDescriptor<void>;
141
+ archiveAll(args: ArchiveAllArgs, options?: {
142
+ batch?: false;
143
+ }): Promise<void>;
144
+ }
145
+ export {};
146
+ //# sourceMappingURL=inbox-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox-client.d.ts","sourceRoot":"","sources":["../../src/clients/inbox-client.ts"],"names":[],"mappings":"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"}