@sendbird/sendbird-platform-sdk-typescript 2.1.2 → 2.1.5
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.
- package/.openapi-generator/FILES +2 -0
- package/models/ObjectSerializer.ts +7 -0
- package/models/UpdatePushPreferencesRequest.ts +8 -0
- package/models/UpdatePushPreferencesRequestDndSchedulesInner.ts +46 -0
- package/models/UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner.ts +56 -0
- package/models/UpdatePushPreferencesResponse.ts +8 -0
- package/models/ViewPushPreferencesResponse.ts +8 -0
- package/models/all.ts +2 -0
- package/package.json +1 -1
- package/tests/integration/user.test.ts +149 -0
- package/types/ObjectParamAPI.ts +2 -0
- package/types/ObservableAPI.ts +2 -0
- package/types/PromiseAPI.ts +2 -0
- /package/models/{SendbirdFile.ts → SendBirdFile.ts} +0 -0
- /package/models/{SendbirdMember.ts → SendBirdMember.ts} +0 -0
- /package/models/{SendbirdParentMessageInfo.ts → SendBirdParentMessageInfo.ts} +0 -0
package/.openapi-generator/FILES
CHANGED
|
@@ -133,6 +133,8 @@ models/UpdateExtraDataInAMessageResponse.ts
|
|
|
133
133
|
models/UpdatePushPreferencesForAChannelRequest.ts
|
|
134
134
|
models/UpdatePushPreferencesForAChannelResponse.ts
|
|
135
135
|
models/UpdatePushPreferencesRequest.ts
|
|
136
|
+
models/UpdatePushPreferencesRequestDndSchedulesInner.ts
|
|
137
|
+
models/UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner.ts
|
|
136
138
|
models/UpdatePushPreferencesResponse.ts
|
|
137
139
|
models/UpdateSpecificUserMetadataRequest.ts
|
|
138
140
|
models/UpdateUserMetadataRequest.ts
|
|
@@ -114,6 +114,8 @@ export * from './UpdateExtraDataInAMessageResponse';
|
|
|
114
114
|
export * from './UpdatePushPreferencesForAChannelRequest';
|
|
115
115
|
export * from './UpdatePushPreferencesForAChannelResponse';
|
|
116
116
|
export * from './UpdatePushPreferencesRequest';
|
|
117
|
+
export * from './UpdatePushPreferencesRequestDndSchedulesInner';
|
|
118
|
+
export * from './UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
117
119
|
export * from './UpdatePushPreferencesResponse';
|
|
118
120
|
export * from './UpdateSpecificUserMetadataRequest';
|
|
119
121
|
export * from './UpdateUserMetadataRequest';
|
|
@@ -243,6 +245,8 @@ import { UpdateExtraDataInAMessageResponse } from './UpdateExtraDataInAMessageRe
|
|
|
243
245
|
import { UpdatePushPreferencesForAChannelRequest, UpdatePushPreferencesForAChannelRequestPushTriggerOptionEnum } from './UpdatePushPreferencesForAChannelRequest';
|
|
244
246
|
import { UpdatePushPreferencesForAChannelResponse } from './UpdatePushPreferencesForAChannelResponse';
|
|
245
247
|
import { UpdatePushPreferencesRequest } from './UpdatePushPreferencesRequest';
|
|
248
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner, UpdatePushPreferencesRequestDndSchedulesInnerDayOfWeekEnum } from './UpdatePushPreferencesRequestDndSchedulesInner';
|
|
249
|
+
import { UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner } from './UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
246
250
|
import { UpdatePushPreferencesResponse } from './UpdatePushPreferencesResponse';
|
|
247
251
|
import { UpdateSpecificUserMetadataRequest } from './UpdateSpecificUserMetadataRequest';
|
|
248
252
|
import { UpdateUserMetadataRequest } from './UpdateUserMetadataRequest';
|
|
@@ -314,6 +318,7 @@ let enumsMap: Set<string> = new Set<string>([
|
|
|
314
318
|
"UpdateCountPreferenceOfAChannelRequestCountPreferenceEnum",
|
|
315
319
|
"UpdateCountPreferenceOfChannelByUrlResponseCountPreferenceEnum",
|
|
316
320
|
"UpdatePushPreferencesForAChannelRequestPushTriggerOptionEnum",
|
|
321
|
+
"UpdatePushPreferencesRequestDndSchedulesInnerDayOfWeekEnum",
|
|
317
322
|
"ViewCountPreferenceOfAChannelResponseCountPreferenceEnum",
|
|
318
323
|
]);
|
|
319
324
|
|
|
@@ -433,6 +438,8 @@ let typeMap: {[index: string]: any} = {
|
|
|
433
438
|
"UpdatePushPreferencesForAChannelRequest": UpdatePushPreferencesForAChannelRequest,
|
|
434
439
|
"UpdatePushPreferencesForAChannelResponse": UpdatePushPreferencesForAChannelResponse,
|
|
435
440
|
"UpdatePushPreferencesRequest": UpdatePushPreferencesRequest,
|
|
441
|
+
"UpdatePushPreferencesRequestDndSchedulesInner": UpdatePushPreferencesRequestDndSchedulesInner,
|
|
442
|
+
"UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner": UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner,
|
|
436
443
|
"UpdatePushPreferencesResponse": UpdatePushPreferencesResponse,
|
|
437
444
|
"UpdateSpecificUserMetadataRequest": UpdateSpecificUserMetadataRequest,
|
|
438
445
|
"UpdateUserMetadataRequest": UpdateUserMetadataRequest,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { SendbirdPushTriggerOption } from './SendbirdPushTriggerOption';
|
|
14
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from './UpdatePushPreferencesRequestDndSchedulesInner';
|
|
14
15
|
import { HttpFile } from '../http/http';
|
|
15
16
|
|
|
16
17
|
export class UpdatePushPreferencesRequest {
|
|
@@ -28,6 +29,7 @@ export class UpdatePushPreferencesRequest {
|
|
|
28
29
|
'startHour'?: number;
|
|
29
30
|
'startMin'?: number;
|
|
30
31
|
'timezone'?: string;
|
|
32
|
+
'dndSchedules'?: Array<UpdatePushPreferencesRequestDndSchedulesInner>;
|
|
31
33
|
|
|
32
34
|
static readonly discriminator: string | undefined = undefined;
|
|
33
35
|
|
|
@@ -115,6 +117,12 @@ export class UpdatePushPreferencesRequest {
|
|
|
115
117
|
"baseName": "timezone",
|
|
116
118
|
"type": "string",
|
|
117
119
|
"format": ""
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "dndSchedules",
|
|
123
|
+
"baseName": "dnd_schedules",
|
|
124
|
+
"type": "Array<UpdatePushPreferencesRequestDndSchedulesInner>",
|
|
125
|
+
"format": ""
|
|
118
126
|
} ];
|
|
119
127
|
|
|
120
128
|
static getAttributeTypeMap() {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sendbird Platform SDK
|
|
3
|
+
* Sendbird Platform API SDK [https://sendbird.com/docs/chat/v3/platform-api/getting-started/prepare-to-use-api](https://sendbird.com/docs/chat/v3/platform-api/getting-started/prepare-to-use-api) Contact Support: Name: Sendbird Email: [support@sendbird.com](https://mailto:support@sendbird.com)
|
|
4
|
+
*
|
|
5
|
+
* OpenAPI spec version: 1.0.0
|
|
6
|
+
* Contact: support@sendbird.com
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner } from './UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
14
|
+
import { HttpFile } from '../http/http';
|
|
15
|
+
|
|
16
|
+
export class UpdatePushPreferencesRequestDndSchedulesInner {
|
|
17
|
+
'dayOfWeek'?: UpdatePushPreferencesRequestDndSchedulesInnerDayOfWeekEnum;
|
|
18
|
+
'timeWindows'?: Array<UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner>;
|
|
19
|
+
|
|
20
|
+
static readonly discriminator: string | undefined = undefined;
|
|
21
|
+
|
|
22
|
+
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
|
|
23
|
+
{
|
|
24
|
+
"name": "dayOfWeek",
|
|
25
|
+
"baseName": "day_of_week",
|
|
26
|
+
"type": "UpdatePushPreferencesRequestDndSchedulesInnerDayOfWeekEnum",
|
|
27
|
+
"format": ""
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "timeWindows",
|
|
31
|
+
"baseName": "time_windows",
|
|
32
|
+
"type": "Array<UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner>",
|
|
33
|
+
"format": ""
|
|
34
|
+
} ];
|
|
35
|
+
|
|
36
|
+
static getAttributeTypeMap() {
|
|
37
|
+
return UpdatePushPreferencesRequestDndSchedulesInner.attributeTypeMap;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public constructor() {
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
export type UpdatePushPreferencesRequestDndSchedulesInnerDayOfWeekEnum = "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" ;
|
|
46
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sendbird Platform SDK
|
|
3
|
+
* Sendbird Platform API SDK [https://sendbird.com/docs/chat/v3/platform-api/getting-started/prepare-to-use-api](https://sendbird.com/docs/chat/v3/platform-api/getting-started/prepare-to-use-api) Contact Support: Name: Sendbird Email: [support@sendbird.com](https://mailto:support@sendbird.com)
|
|
4
|
+
*
|
|
5
|
+
* OpenAPI spec version: 1.0.0
|
|
6
|
+
* Contact: support@sendbird.com
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { HttpFile } from '../http/http';
|
|
14
|
+
|
|
15
|
+
export class UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner {
|
|
16
|
+
'startHour'?: number;
|
|
17
|
+
'startMin'?: number;
|
|
18
|
+
'endHour'?: number;
|
|
19
|
+
'endMin'?: number;
|
|
20
|
+
|
|
21
|
+
static readonly discriminator: string | undefined = undefined;
|
|
22
|
+
|
|
23
|
+
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
|
|
24
|
+
{
|
|
25
|
+
"name": "startHour",
|
|
26
|
+
"baseName": "start_hour",
|
|
27
|
+
"type": "number",
|
|
28
|
+
"format": ""
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "startMin",
|
|
32
|
+
"baseName": "start_min",
|
|
33
|
+
"type": "number",
|
|
34
|
+
"format": ""
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "endHour",
|
|
38
|
+
"baseName": "end_hour",
|
|
39
|
+
"type": "number",
|
|
40
|
+
"format": ""
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "endMin",
|
|
44
|
+
"baseName": "end_min",
|
|
45
|
+
"type": "number",
|
|
46
|
+
"format": ""
|
|
47
|
+
} ];
|
|
48
|
+
|
|
49
|
+
static getAttributeTypeMap() {
|
|
50
|
+
return UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner.attributeTypeMap;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public constructor() {
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { SendbirdPushTriggerOption } from './SendbirdPushTriggerOption';
|
|
14
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from './UpdatePushPreferencesRequestDndSchedulesInner';
|
|
14
15
|
import { HttpFile } from '../http/http';
|
|
15
16
|
|
|
16
17
|
export class UpdatePushPreferencesResponse {
|
|
@@ -28,6 +29,7 @@ export class UpdatePushPreferencesResponse {
|
|
|
28
29
|
'startHour'?: number;
|
|
29
30
|
'startMin'?: number;
|
|
30
31
|
'timezone'?: string;
|
|
32
|
+
'dndSchedules'?: Array<UpdatePushPreferencesRequestDndSchedulesInner>;
|
|
31
33
|
|
|
32
34
|
static readonly discriminator: string | undefined = undefined;
|
|
33
35
|
|
|
@@ -115,6 +117,12 @@ export class UpdatePushPreferencesResponse {
|
|
|
115
117
|
"baseName": "timezone",
|
|
116
118
|
"type": "string",
|
|
117
119
|
"format": ""
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "dndSchedules",
|
|
123
|
+
"baseName": "dnd_schedules",
|
|
124
|
+
"type": "Array<UpdatePushPreferencesRequestDndSchedulesInner>",
|
|
125
|
+
"format": ""
|
|
118
126
|
} ];
|
|
119
127
|
|
|
120
128
|
static getAttributeTypeMap() {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { SendbirdPushTriggerOption } from './SendbirdPushTriggerOption';
|
|
14
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from './UpdatePushPreferencesRequestDndSchedulesInner';
|
|
14
15
|
import { HttpFile } from '../http/http';
|
|
15
16
|
|
|
16
17
|
export class ViewPushPreferencesResponse {
|
|
@@ -28,6 +29,7 @@ export class ViewPushPreferencesResponse {
|
|
|
28
29
|
'startHour'?: number;
|
|
29
30
|
'startMin'?: number;
|
|
30
31
|
'timezone'?: string;
|
|
32
|
+
'dndSchedules'?: Array<UpdatePushPreferencesRequestDndSchedulesInner>;
|
|
31
33
|
|
|
32
34
|
static readonly discriminator: string | undefined = undefined;
|
|
33
35
|
|
|
@@ -115,6 +117,12 @@ export class ViewPushPreferencesResponse {
|
|
|
115
117
|
"baseName": "timezone",
|
|
116
118
|
"type": "string",
|
|
117
119
|
"format": ""
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "dndSchedules",
|
|
123
|
+
"baseName": "dnd_schedules",
|
|
124
|
+
"type": "Array<UpdatePushPreferencesRequestDndSchedulesInner>",
|
|
125
|
+
"format": ""
|
|
118
126
|
} ];
|
|
119
127
|
|
|
120
128
|
static getAttributeTypeMap() {
|
package/models/all.ts
CHANGED
|
@@ -114,6 +114,8 @@ export * from './UpdateExtraDataInAMessageResponse'
|
|
|
114
114
|
export * from './UpdatePushPreferencesForAChannelRequest'
|
|
115
115
|
export * from './UpdatePushPreferencesForAChannelResponse'
|
|
116
116
|
export * from './UpdatePushPreferencesRequest'
|
|
117
|
+
export * from './UpdatePushPreferencesRequestDndSchedulesInner'
|
|
118
|
+
export * from './UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner'
|
|
117
119
|
export * from './UpdatePushPreferencesResponse'
|
|
118
120
|
export * from './UpdateSpecificUserMetadataRequest'
|
|
119
121
|
export * from './UpdateUserMetadataRequest'
|
package/package.json
CHANGED
|
@@ -110,6 +110,155 @@ describe("User API", () => {
|
|
|
110
110
|
expect(typeof response.timezone).toBe("string");
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
+
it("call updatePushPreferences with dndSchedules and verify response", async () => {
|
|
114
|
+
// 1) 사전 초기화
|
|
115
|
+
await userApi.updatePushPreferences({
|
|
116
|
+
apiToken: API_TOKEN,
|
|
117
|
+
userId: MASTER_USER_ID,
|
|
118
|
+
updatePushPreferencesRequest: { dndSchedules: [] },
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// 2) dndSchedules 설정 (자정을 넘기는 윈도우 포함)
|
|
122
|
+
// 서버는 자정 넘는 윈도우를 자동 분할:
|
|
123
|
+
// monday 22:00~07:00 → monday 22:00~23:59 + tuesday 00:00~07:00
|
|
124
|
+
// friday 23:30~06:00 → friday 23:30~23:59 + saturday 00:00~06:00
|
|
125
|
+
const response = await userApi.updatePushPreferences({
|
|
126
|
+
apiToken: API_TOKEN,
|
|
127
|
+
userId: MASTER_USER_ID,
|
|
128
|
+
updatePushPreferencesRequest: {
|
|
129
|
+
dndSchedules: [
|
|
130
|
+
{
|
|
131
|
+
dayOfWeek: "monday",
|
|
132
|
+
timeWindows: [
|
|
133
|
+
{ startHour: 22, startMin: 0, endHour: 7, endMin: 0 },
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
dayOfWeek: "friday",
|
|
138
|
+
timeWindows: [
|
|
139
|
+
{ startHour: 23, startMin: 30, endHour: 6, endMin: 0 },
|
|
140
|
+
{ startHour: 12, startMin: 0, endHour: 13, endMin: 0 },
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// 3) 응답 검증 - 서버가 자정 넘는 윈도우를 분할하므로 4개 스케줄 반환
|
|
148
|
+
expect(response).toHaveProperty("dndSchedules");
|
|
149
|
+
expect(Array.isArray(response.dndSchedules)).toBe(true);
|
|
150
|
+
expect(response.dndSchedules!.length).toBe(4);
|
|
151
|
+
|
|
152
|
+
// monday: 22:00~23:59 (분할된 앞부분)
|
|
153
|
+
const monday = response.dndSchedules!.find((s) => s.dayOfWeek === "monday");
|
|
154
|
+
expect(monday).toBeDefined();
|
|
155
|
+
expect(monday!.timeWindows![0].startHour).toBe(22);
|
|
156
|
+
expect(monday!.timeWindows![0].endHour).toBe(23);
|
|
157
|
+
expect(monday!.timeWindows![0].endMin).toBe(59);
|
|
158
|
+
|
|
159
|
+
// tuesday: 00:00~07:00 (분할된 뒷부분)
|
|
160
|
+
const tuesday = response.dndSchedules!.find((s) => s.dayOfWeek === "tuesday");
|
|
161
|
+
expect(tuesday).toBeDefined();
|
|
162
|
+
expect(tuesday!.timeWindows![0].startHour).toBe(0);
|
|
163
|
+
expect(tuesday!.timeWindows![0].endHour).toBe(7);
|
|
164
|
+
|
|
165
|
+
// friday: 23:30~23:59 (분할), 12:00~13:00 (그대로)
|
|
166
|
+
const friday = response.dndSchedules!.find((s) => s.dayOfWeek === "friday");
|
|
167
|
+
expect(friday).toBeDefined();
|
|
168
|
+
expect(friday!.timeWindows!.length).toBe(2);
|
|
169
|
+
|
|
170
|
+
// saturday: 00:00~06:00 (friday 23:30~06:00의 분할된 뒷부분)
|
|
171
|
+
const saturday = response.dndSchedules!.find((s) => s.dayOfWeek === "saturday");
|
|
172
|
+
expect(saturday).toBeDefined();
|
|
173
|
+
expect(saturday!.timeWindows![0].startHour).toBe(0);
|
|
174
|
+
expect(saturday!.timeWindows![0].endHour).toBe(6);
|
|
175
|
+
|
|
176
|
+
// 4) GET으로 재확인
|
|
177
|
+
const view = await userApi.viewPushPreferences({
|
|
178
|
+
apiToken: API_TOKEN,
|
|
179
|
+
userId: MASTER_USER_ID,
|
|
180
|
+
});
|
|
181
|
+
expect(view).toHaveProperty("dndSchedules");
|
|
182
|
+
expect(Array.isArray(view.dndSchedules)).toBe(true);
|
|
183
|
+
expect(view.dndSchedules!.length).toBe(4);
|
|
184
|
+
|
|
185
|
+
// 5) 원상 복원
|
|
186
|
+
await userApi.updatePushPreferences({
|
|
187
|
+
apiToken: API_TOKEN,
|
|
188
|
+
userId: MASTER_USER_ID,
|
|
189
|
+
updatePushPreferencesRequest: {
|
|
190
|
+
dndSchedules: [],
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it("call updatePushPreferences with single day dndSchedule", async () => {
|
|
196
|
+
// 단일 요일 설정
|
|
197
|
+
const response = await userApi.updatePushPreferences({
|
|
198
|
+
apiToken: API_TOKEN,
|
|
199
|
+
userId: MASTER_USER_ID,
|
|
200
|
+
updatePushPreferencesRequest: {
|
|
201
|
+
dndSchedules: [
|
|
202
|
+
{
|
|
203
|
+
dayOfWeek: "wednesday",
|
|
204
|
+
timeWindows: [
|
|
205
|
+
{ startHour: 0, startMin: 0, endHour: 6, endMin: 30 },
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
expect(response).toHaveProperty("dndSchedules");
|
|
213
|
+
expect(response.dndSchedules!.length).toBe(1);
|
|
214
|
+
expect(response.dndSchedules![0].dayOfWeek).toBe("wednesday");
|
|
215
|
+
expect(response.dndSchedules![0].timeWindows!.length).toBe(1);
|
|
216
|
+
expect(response.dndSchedules![0].timeWindows![0].startHour).toBe(0);
|
|
217
|
+
expect(response.dndSchedules![0].timeWindows![0].startMin).toBe(0);
|
|
218
|
+
expect(response.dndSchedules![0].timeWindows![0].endHour).toBe(6);
|
|
219
|
+
expect(response.dndSchedules![0].timeWindows![0].endMin).toBe(30);
|
|
220
|
+
|
|
221
|
+
// 정리
|
|
222
|
+
await userApi.updatePushPreferences({
|
|
223
|
+
apiToken: API_TOKEN,
|
|
224
|
+
userId: MASTER_USER_ID,
|
|
225
|
+
updatePushPreferencesRequest: {
|
|
226
|
+
dndSchedules: [],
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
it("call updatePushPreferences with empty dndSchedules to clear", async () => {
|
|
232
|
+
// 먼저 스케줄 설정
|
|
233
|
+
await userApi.updatePushPreferences({
|
|
234
|
+
apiToken: API_TOKEN,
|
|
235
|
+
userId: MASTER_USER_ID,
|
|
236
|
+
updatePushPreferencesRequest: {
|
|
237
|
+
dndSchedules: [
|
|
238
|
+
{
|
|
239
|
+
dayOfWeek: "sunday",
|
|
240
|
+
timeWindows: [
|
|
241
|
+
{ startHour: 22, startMin: 0, endHour: 8, endMin: 0 },
|
|
242
|
+
],
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
// 빈 배열로 초기화
|
|
249
|
+
const response = await userApi.updatePushPreferences({
|
|
250
|
+
apiToken: API_TOKEN,
|
|
251
|
+
userId: MASTER_USER_ID,
|
|
252
|
+
updatePushPreferencesRequest: {
|
|
253
|
+
dndSchedules: [],
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
expect(response).toHaveProperty("dndSchedules");
|
|
258
|
+
expect(Array.isArray(response.dndSchedules)).toBe(true);
|
|
259
|
+
expect(response.dndSchedules!.length).toBe(0);
|
|
260
|
+
});
|
|
261
|
+
|
|
113
262
|
it("call removeARegistrationOrDeviceTokenWhenUnregisteringASpecificToken after addARegistrationOrDeviceToken", async () => {
|
|
114
263
|
const TOKEN_TYPE = "GCM";
|
|
115
264
|
const TEST_GCM_TOKEN = "dummy-token-123";
|
package/types/ObjectParamAPI.ts
CHANGED
|
@@ -118,6 +118,8 @@ import { UpdateExtraDataInAMessageResponse } from '../models/UpdateExtraDataInAM
|
|
|
118
118
|
import { UpdatePushPreferencesForAChannelRequest } from '../models/UpdatePushPreferencesForAChannelRequest';
|
|
119
119
|
import { UpdatePushPreferencesForAChannelResponse } from '../models/UpdatePushPreferencesForAChannelResponse';
|
|
120
120
|
import { UpdatePushPreferencesRequest } from '../models/UpdatePushPreferencesRequest';
|
|
121
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInner';
|
|
122
|
+
import { UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
121
123
|
import { UpdatePushPreferencesResponse } from '../models/UpdatePushPreferencesResponse';
|
|
122
124
|
import { UpdateSpecificUserMetadataRequest } from '../models/UpdateSpecificUserMetadataRequest';
|
|
123
125
|
import { UpdateUserMetadataRequest } from '../models/UpdateUserMetadataRequest';
|
package/types/ObservableAPI.ts
CHANGED
|
@@ -119,6 +119,8 @@ import { UpdateExtraDataInAMessageResponse } from '../models/UpdateExtraDataInAM
|
|
|
119
119
|
import { UpdatePushPreferencesForAChannelRequest } from '../models/UpdatePushPreferencesForAChannelRequest';
|
|
120
120
|
import { UpdatePushPreferencesForAChannelResponse } from '../models/UpdatePushPreferencesForAChannelResponse';
|
|
121
121
|
import { UpdatePushPreferencesRequest } from '../models/UpdatePushPreferencesRequest';
|
|
122
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInner';
|
|
123
|
+
import { UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
122
124
|
import { UpdatePushPreferencesResponse } from '../models/UpdatePushPreferencesResponse';
|
|
123
125
|
import { UpdateSpecificUserMetadataRequest } from '../models/UpdateSpecificUserMetadataRequest';
|
|
124
126
|
import { UpdateUserMetadataRequest } from '../models/UpdateUserMetadataRequest';
|
package/types/PromiseAPI.ts
CHANGED
|
@@ -118,6 +118,8 @@ import { UpdateExtraDataInAMessageResponse } from '../models/UpdateExtraDataInAM
|
|
|
118
118
|
import { UpdatePushPreferencesForAChannelRequest } from '../models/UpdatePushPreferencesForAChannelRequest';
|
|
119
119
|
import { UpdatePushPreferencesForAChannelResponse } from '../models/UpdatePushPreferencesForAChannelResponse';
|
|
120
120
|
import { UpdatePushPreferencesRequest } from '../models/UpdatePushPreferencesRequest';
|
|
121
|
+
import { UpdatePushPreferencesRequestDndSchedulesInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInner';
|
|
122
|
+
import { UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner } from '../models/UpdatePushPreferencesRequestDndSchedulesInnerTimeWindowsInner';
|
|
121
123
|
import { UpdatePushPreferencesResponse } from '../models/UpdatePushPreferencesResponse';
|
|
122
124
|
import { UpdateSpecificUserMetadataRequest } from '../models/UpdateSpecificUserMetadataRequest';
|
|
123
125
|
import { UpdateUserMetadataRequest } from '../models/UpdateUserMetadataRequest';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|