@ingestkorea/client-sens 1.9.0 β 1.11.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.
- package/README.md +99 -57
- package/dist-cjs/SensClient.js +42 -43
- package/dist-cjs/commands/GetAlimtalkResultCommand.js +3 -0
- package/dist-cjs/commands/GetAlimtalkStatusCommand.js +8 -1
- package/dist-cjs/commands/GetAlimtalkTemplateCommand.js +3 -0
- package/dist-cjs/commands/GetSMSResultCommand.js +3 -0
- package/dist-cjs/commands/GetSMSStatusCommand.js +8 -1
- package/dist-cjs/commands/ListAlimtalkChannelsCommand.js +3 -0
- package/dist-cjs/commands/ListAlimtalkStatusCommand.js +22 -10
- package/dist-cjs/commands/ListAlimtalkTemplatesCommand.js +3 -0
- package/dist-cjs/commands/ListSMSStatusCommand.js +21 -10
- package/dist-cjs/commands/SendAlimtalkCommand.js +15 -14
- package/dist-cjs/commands/SendMMSCommand.js +16 -23
- package/dist-cjs/commands/SendSMSCommand.js +28 -16
- package/dist-cjs/commands/constants.js +8 -19
- package/dist-cjs/index.js +1 -0
- package/dist-cjs/middleware/constants.js +2 -1
- package/dist-cjs/middleware/middleware-metadata.js +7 -12
- package/dist-cjs/middleware/middleware-retry.js +48 -38
- package/dist-cjs/middleware/middleware-sign.js +8 -12
- package/dist-cjs/models/SensApiError.js +21 -0
- package/dist-cjs/models/{SensErrorInfo.js β SensClientError.js} +6 -1
- package/dist-cjs/models/SensCommand.js +1 -0
- package/dist-cjs/models/index.js +2 -1
- package/dist-cjs/protocols/GetAlimtalkResult.js +14 -17
- package/dist-cjs/protocols/GetAlimtalkStatus.js +21 -17
- package/dist-cjs/protocols/GetAlimtalkTemplate.js +29 -17
- package/dist-cjs/protocols/GetSMSResult.js +16 -17
- package/dist-cjs/protocols/GetSMSStatus.js +10 -16
- package/dist-cjs/protocols/ListAlimtalkChannels.js +10 -16
- package/dist-cjs/protocols/ListAlimtalkStatus.js +10 -16
- package/dist-cjs/protocols/ListAlimtalkTemplates.js +12 -19
- package/dist-cjs/protocols/ListSMSStatus.js +10 -16
- package/dist-cjs/protocols/SendAlimtalk.js +10 -16
- package/dist-cjs/protocols/SendMMS.js +4 -13
- package/dist-cjs/protocols/SendSMS.js +11 -17
- package/dist-cjs/protocols/constants.js +124 -82
- package/dist-es/SensClient.js +37 -31
- package/dist-es/commands/GetAlimtalkResultCommand.js +8 -9
- package/dist-es/commands/GetAlimtalkStatusCommand.js +8 -9
- package/dist-es/commands/GetAlimtalkTemplateCommand.js +8 -9
- package/dist-es/commands/GetSMSResultCommand.js +8 -9
- package/dist-es/commands/GetSMSStatusCommand.js +8 -9
- package/dist-es/commands/ListAlimtalkChannelsCommand.js +8 -9
- package/dist-es/commands/ListAlimtalkStatusCommand.js +24 -28
- package/dist-es/commands/ListAlimtalkTemplatesCommand.js +8 -9
- package/dist-es/commands/ListSMSStatusCommand.js +25 -29
- package/dist-es/commands/SendAlimtalkCommand.js +18 -26
- package/dist-es/commands/SendMMSCommand.js +37 -48
- package/dist-es/commands/SendSMSCommand.js +25 -29
- package/dist-es/commands/constants.js +18 -39
- package/dist-es/commands/index.js +12 -28
- package/dist-es/index.js +3 -18
- package/dist-es/middleware/constants.js +8 -10
- package/dist-es/middleware/index.js +3 -19
- package/dist-es/middleware/middleware-metadata.js +4 -7
- package/dist-es/middleware/middleware-retry.js +47 -38
- package/dist-es/middleware/middleware-sign.js +9 -13
- package/dist-es/models/GetAlimtalkResult.js +1 -2
- package/dist-es/models/GetAlimtalkStatus.js +1 -2
- package/dist-es/models/GetAlimtalkTemplate.js +1 -2
- package/dist-es/models/GetSMSResult.js +1 -2
- package/dist-es/models/GetSMSStatus.js +1 -2
- package/dist-es/models/ListAlimtalkChannels.js +1 -2
- package/dist-es/models/ListAlimtalkStatus.js +1 -2
- package/dist-es/models/ListAlimtalkTemplates.js +1 -2
- package/dist-es/models/ListSMSStatus.js +1 -2
- package/dist-es/models/MetadataBearer.js +1 -2
- package/dist-es/models/SendAlimtalk.js +2 -5
- package/dist-es/models/SendMMS.js +2 -5
- package/dist-es/models/SendSMS.js +1 -2
- package/dist-es/models/SensApiError.js +18 -0
- package/dist-es/models/SensClient.js +1 -2
- package/dist-es/models/SensClientError.js +14 -0
- package/dist-es/models/SensCommand.js +2 -5
- package/dist-es/models/SensMiddleware.js +1 -2
- package/dist-es/models/index.js +18 -33
- package/dist-es/protocols/GetAlimtalkResult.js +11 -16
- package/dist-es/protocols/GetAlimtalkStatus.js +17 -24
- package/dist-es/protocols/GetAlimtalkTemplate.js +12 -17
- package/dist-es/protocols/GetSMSResult.js +11 -16
- package/dist-es/protocols/GetSMSStatus.js +15 -22
- package/dist-es/protocols/ListAlimtalkChannels.js +11 -16
- package/dist-es/protocols/ListAlimtalkStatus.js +11 -16
- package/dist-es/protocols/ListAlimtalkTemplates.js +15 -22
- package/dist-es/protocols/ListSMSStatus.js +11 -16
- package/dist-es/protocols/SendAlimtalk.js +12 -18
- package/dist-es/protocols/SendMMS.js +5 -10
- package/dist-es/protocols/SendSMS.js +12 -18
- package/dist-es/protocols/constants.js +126 -88
- package/dist-types/SensClient.d.ts +0 -1
- package/dist-types/index.d.ts +1 -0
- package/dist-types/middleware/constants.d.ts +1 -0
- package/dist-types/models/MetadataBearer.d.ts +1 -0
- package/dist-types/models/SensApiError.d.ts +55 -0
- package/dist-types/models/SensClient.d.ts +8 -1
- package/dist-types/models/SensClientError.d.ts +18 -0
- package/dist-types/models/index.d.ts +2 -1
- package/dist-types/protocols/constants.d.ts +1 -1
- package/package.json +4 -5
- package/dist-es/models/SensErrorInfo.js +0 -13
- package/dist-types/models/SensErrorInfo.d.ts +0 -21
package/README.md
CHANGED
|
@@ -2,39 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@ingestkorea/client-sens)
|
|
4
4
|
[](https://www.npmjs.com/package/@ingestkorea/client-sens)
|
|
5
|
-

|
|
6
5
|
[](https://www.npmjs.com/package/@ingestkorea/client-sens)
|
|
7
6
|
|
|
8
7
|
## Description
|
|
9
8
|
|
|
10
9
|
INGESTKOREA SDK - Naver Cloud Platform SENS Client for Node.js.
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
SENS(Simple & Easy Notification Service) SDKλ [λ€μ΄λ² ν΄λΌμ°λ SENS](https://www.ncloud.com/product/applicationService/sens)μμ νμμ μΌλ‘ μ¬μ©λλ λ©μλ μμ£Όλ‘ κ΅¬νλ κ°λ²Όμ΄ λΌμ΄λΈλ¬λ¦¬μ
λλ€.
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
SDKλ μλ μμ
λ€μ λ΄λΆμ μΌλ‘ μνν©λλ€.
|
|
15
14
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
15
|
+
- κ³΅ν΅ ν€λλ₯Ό μ΄μ©ν μΈμ¦(Signature, Timestamp, AccessKey)
|
|
16
|
+
- API μμ² μ€ν¨μ μ§λ₯ν μ¬μλ
|
|
17
|
+
- SENS API, Ncloud API νμ€ μλ¬ νΈλ€λ§
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
SDKλ [SENS API Docs](https://api.ncloud-docs.com/docs/sens-overview), [Ncloud API Docs](https://api.ncloud-docs.com/docs/common-ncpapi#μλ΅)μμ μ 곡νλ νμμ μ€μν©λλ€.
|
|
20
|
+
|
|
21
|
+
**μ£Όμμ¬ν**: SENS μλΉμ€ μ΄μ©μ μν΄μλ μλ μ 보λ€μ΄ νμν©λλ€
|
|
22
|
+
|
|
23
|
+
- [Naver Cloud Platform API μΈμ¦ν€](https://www.ncloud.com/mypage/manage/authkey): **AccessKey**, **SecretKey**
|
|
24
|
+
- [SENS μ΄μ© μλΉμ€ μ 보](https://console.ncloud.com/sens/project): **ServiceId**
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
### Installing
|
|
21
29
|
|
|
22
30
|
```sh
|
|
23
31
|
npm install @ingestkorea/client-sens
|
|
24
32
|
```
|
|
25
33
|
|
|
26
|
-
## Getting Started
|
|
27
|
-
|
|
28
34
|
### Pre-requisites
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
npm install -D @types/node # save dev mode
|
|
35
|
-
```
|
|
36
|
+
SDKλ μλ μ¬νλ€μ μꡬν©λλ€.
|
|
37
|
+
|
|
38
|
+
- TypeScript v5 μ΄μ
|
|
39
|
+
- Node v22 μ΄μ
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
```sh
|
|
42
|
+
# save dev mode
|
|
43
|
+
npm install -D typescript
|
|
44
|
+
npm install -D @types/node
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Support Methods
|
|
38
48
|
|
|
39
49
|
#### Kakao Alimtalk
|
|
40
50
|
|
|
@@ -52,12 +62,13 @@ npm install @ingestkorea/client-sens
|
|
|
52
62
|
- SendMMS (MMS)
|
|
53
63
|
- GetSMSStatus (SMS, LMS, MMS)
|
|
54
64
|
- GetSMSResult (SMS, LMS, MMS)
|
|
65
|
+
- ListSMSStatus (SMS, LMS, MMS)
|
|
55
66
|
|
|
56
|
-
|
|
67
|
+
## Import
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
Simple & Easy Notification Service SDKλ `client`, `commands` λ κ°μ λͺ¨λλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
|
|
59
70
|
|
|
60
|
-
|
|
71
|
+
SDK μ¬μ©μ μν΄μλ `SensClient`, νμν `Command` λ¨ λ κ°λ§ import νλ©΄ λ©λλ€. (μμλ₯Ό μν΄ `SendMessageCommand`λ₯Ό μ¬μ©νκ² μ΅λλ€.)
|
|
61
72
|
|
|
62
73
|
```ts
|
|
63
74
|
import { SensClient, SendAlimtalkCommand } from "@ingestkorea/client-sens";
|
|
@@ -65,30 +76,36 @@ import { SensClient, SendAlimtalkCommand } from "@ingestkorea/client-sens";
|
|
|
65
76
|
|
|
66
77
|
### Usage
|
|
67
78
|
|
|
68
|
-
|
|
79
|
+
μμ²μ 보λ΄κΈ° μν΄μλ
|
|
80
|
+
|
|
81
|
+
- Client μ΄κΈ°ν / μ€μ μ 보 νμ(ex. credentials)
|
|
82
|
+
- Command μ΄κΈ°ν / νλΌλ―Έν° κ°λ€ νμ
|
|
83
|
+
- `send` λ©μλ νΈμΆ / Command κ°μ²΄ νμ
|
|
69
84
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
85
|
+
`SensClient`κ° λ΄λΆμ μΌλ‘ μ¬μ©νλ **httpHandler**λ κΈ°λ³Έμ μΌλ‘ λ€μ μ΅μ
μ΄ μ μ©λ©λλ€.
|
|
86
|
+
|
|
87
|
+
- **connectionTimeout**: 2000ms
|
|
88
|
+
- **socketTimeout**: 3000ms
|
|
89
|
+
- **keepAlive**: false
|
|
90
|
+
- **family**: ipv4
|
|
73
91
|
|
|
74
92
|
```ts
|
|
93
|
+
// μ΄κΈ°νλ clientλ λ€λ₯Έ μμ²μλ μ¬μ¬μ© κ°λ₯ν©λλ€.
|
|
75
94
|
const client = new SensClient({
|
|
76
|
-
/**
|
|
77
|
-
* AccessKey, SecretKey: https://www.ncloud.com/mypage/manage/authkey
|
|
78
|
-
* serviceId: https://console.ncloud.com/sens/project
|
|
79
|
-
*/
|
|
80
95
|
credentials: {
|
|
81
96
|
accessKey: "YOUR_ACCESS_KEY",
|
|
82
97
|
secretKey: "YOUR_SECRET_KEY",
|
|
83
98
|
},
|
|
84
|
-
|
|
85
|
-
* at least one serviceId required
|
|
86
|
-
* if you call send operation without serviceId, sdk throw error
|
|
87
|
-
*/
|
|
99
|
+
// μ΅μ 1κ° μ΄μμ serviceId μ λ³΄κ° νμν©λλ€.
|
|
88
100
|
serviceId: {
|
|
89
101
|
kakao: "ncp:kkobizmsg:kr:xxxxxx:your-service-name",
|
|
90
102
|
sms: "ncp:sms:kr:xxxxxx:your-service-name",
|
|
91
103
|
},
|
|
104
|
+
// μ ν (νμμ λ³κ²½ κ°λ₯)
|
|
105
|
+
httpHandler: {
|
|
106
|
+
connectionTimeout: 2000,
|
|
107
|
+
...
|
|
108
|
+
},
|
|
92
109
|
});
|
|
93
110
|
```
|
|
94
111
|
|
|
@@ -96,20 +113,43 @@ const client = new SensClient({
|
|
|
96
113
|
|
|
97
114
|
```ts
|
|
98
115
|
const command = new SendAlimtalkCommand({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/** Required: Kakao Alimtalk TemplateCode ID (e.g., welcomeTemplate) */
|
|
103
|
-
templateCode: "TEMPLATE_CODE",
|
|
104
|
-
|
|
105
|
-
/** Required: List of messages to send (Max 100) */
|
|
116
|
+
plusFriendId: "PLUS_FRIEND_ID", // @plusfriendId
|
|
117
|
+
templateCode: "TEMPLATE_CODE", // TemplateCode ID (e.g., welcomeTemplate)
|
|
106
118
|
messages: [
|
|
107
|
-
|
|
119
|
+
// μ΅λ 100κ°κΉμ§ μμ² κ°λ₯
|
|
108
120
|
{ to: "01012345678", content: "YOUR_CONTENT" },
|
|
109
121
|
],
|
|
110
122
|
});
|
|
111
123
|
```
|
|
112
124
|
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"$metadata": {
|
|
128
|
+
"httpStatusCode": 202,
|
|
129
|
+
"attempts": 1,
|
|
130
|
+
"totalRetryDelay": 0,
|
|
131
|
+
"traceId": "xxxxxx"
|
|
132
|
+
},
|
|
133
|
+
"requestId": "xxxx-xxxx-xxxx-xxxx-xxxx",
|
|
134
|
+
"requestTime": "2026-01-23T12:34:56.789Z",
|
|
135
|
+
"statusCode": "202",
|
|
136
|
+
"statusName": "processing",
|
|
137
|
+
"messages": [
|
|
138
|
+
{
|
|
139
|
+
"messageId": "xxxx-xxx-xxxx-xxxx-xxxx",
|
|
140
|
+
"to": "010xxxxzzzz",
|
|
141
|
+
"countryCode": "82",
|
|
142
|
+
"content": "xxxx",
|
|
143
|
+
...
|
|
144
|
+
"requestStatusCode": "A000",
|
|
145
|
+
"requestStatusName": "success",
|
|
146
|
+
"requestStatusDesc": "μ±κ³΅",
|
|
147
|
+
"useSmsFailover": false
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
113
153
|
#### ListAlimtalkStatus
|
|
114
154
|
|
|
115
155
|
```ts
|
|
@@ -134,7 +174,9 @@ const command = new ListAlimtalkStatusCommand({
|
|
|
134
174
|
#### GetAlimtalkStatus
|
|
135
175
|
|
|
136
176
|
```ts
|
|
137
|
-
const command = new GetAlimtalkStatusCommand({
|
|
177
|
+
const command = new GetAlimtalkStatusCommand({
|
|
178
|
+
requestId: "ALIMTALK_REQUEST_ID",
|
|
179
|
+
});
|
|
138
180
|
```
|
|
139
181
|
|
|
140
182
|
#### SendSMS (SMS, LMS)
|
|
@@ -191,33 +233,33 @@ const command = new SendMMSCommand({
|
|
|
191
233
|
});
|
|
192
234
|
```
|
|
193
235
|
|
|
194
|
-
|
|
236
|
+
### Async/await
|
|
195
237
|
|
|
196
238
|
```ts
|
|
239
|
+
import {
|
|
240
|
+
SensClient, SendAlimtalkCommand, SensError
|
|
241
|
+
} from "@ingestkorea/client-sens";
|
|
242
|
+
|
|
197
243
|
(async () => {
|
|
198
244
|
try {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
245
|
+
// a client can be shared by different commands.
|
|
246
|
+
const client = new SensClient({...});
|
|
247
|
+
const command = new SendAlimtalkCommand({...});
|
|
248
|
+
|
|
249
|
+
const output = await client.send(command);
|
|
250
|
+
console.log(output);
|
|
251
|
+
} catch (error) {
|
|
252
|
+
if (error instanceof SensError) {
|
|
253
|
+
...
|
|
254
|
+
}
|
|
255
|
+
console.error(error)
|
|
203
256
|
}
|
|
204
257
|
})();
|
|
205
258
|
```
|
|
206
259
|
|
|
207
|
-
#### Promises
|
|
208
|
-
|
|
209
|
-
```ts
|
|
210
|
-
client
|
|
211
|
-
.send(command)
|
|
212
|
-
.then((data) => console.dir(data, { depth: 4 }))
|
|
213
|
-
.catch((err) => console.dir(err, { depth: 4 }));
|
|
214
|
-
```
|
|
215
|
-
|
|
216
260
|
## Getting Help
|
|
217
261
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
If it turns out that you may have found a bug, please open an issue.
|
|
262
|
+
κΈ°λ₯ μΆκ° μμ², λ²κ·Έ μ κ³ λ κΉνλΈ μ΄μλ₯Ό μ¬μ©ν΄μ£ΌμΈμ.
|
|
221
263
|
|
|
222
264
|
## License
|
|
223
265
|
|
package/dist-cjs/SensClient.js
CHANGED
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.SensClient = void 0;
|
|
13
4
|
const util_http_handler_1 = require("@ingestkorea/util-http-handler");
|
|
14
5
|
const index_js_1 = require("./models/index.js");
|
|
15
6
|
const index_js_2 = require("./middleware/index.js");
|
|
16
7
|
class SensClient {
|
|
8
|
+
config;
|
|
9
|
+
httpHandler;
|
|
17
10
|
constructor(config) {
|
|
18
|
-
this.httpHandler = new util_http_handler_1.NodeHttpHandler({ connectionTimeout: 3000, socketTimeout: 3000 });
|
|
19
|
-
this.requestHandler = (input, context) => __awaiter(this, void 0, void 0, function* () { return this.httpHandler.handle(input.request); });
|
|
20
11
|
this.config = {
|
|
21
12
|
credentials: resolveCredentials(config),
|
|
22
13
|
serviceId: resolveServiceId(config),
|
|
14
|
+
httpHandler: {
|
|
15
|
+
connectionTimeout: config.httpHandler?.connectionTimeout ?? 2000,
|
|
16
|
+
socketTimeout: config.httpHandler?.socketTimeout ?? 3000,
|
|
17
|
+
keepAlive: config.httpHandler?.keepAlive ?? false,
|
|
18
|
+
family: 4,
|
|
19
|
+
},
|
|
23
20
|
};
|
|
21
|
+
this.httpHandler = new util_http_handler_1.NodeHttpHandler(this.config.httpHandler);
|
|
24
22
|
}
|
|
25
|
-
send(command) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
async send(command) {
|
|
24
|
+
const { input, serializer, deserializer } = command;
|
|
25
|
+
const middlewares = [index_js_2.middlewareIngestkoreaMetadata, index_js_2.middlewareNcpSign, index_js_2.middlewareRetry];
|
|
26
|
+
const finalHandler = async (input, context) => this.httpHandler.handle(input.request);
|
|
27
|
+
const handler = composeMiddleware(middlewares, finalHandler);
|
|
28
|
+
try {
|
|
29
|
+
const request = await serializer(input, this.config);
|
|
30
|
+
const { response } = await handler({ request }, this.config);
|
|
31
|
+
const output = await deserializer(response, this.config);
|
|
32
|
+
return output;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (error instanceof index_js_1.SensError)
|
|
36
|
+
throw error;
|
|
37
|
+
throw new index_js_1.SensError({
|
|
38
|
+
code: -1,
|
|
39
|
+
type: "SDK.UNKNOWN_ERROR",
|
|
40
|
+
message: error instanceof Error ? error.message : "unknown error",
|
|
41
|
+
});
|
|
42
|
+
}
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
exports.SensClient = SensClient;
|
|
@@ -48,20 +51,19 @@ const composeMiddleware = (middlewares, finalHandler) => {
|
|
|
48
51
|
};
|
|
49
52
|
const resolveCredentials = (config) => {
|
|
50
53
|
const { credentials } = config;
|
|
51
|
-
|
|
52
|
-
code:
|
|
53
|
-
type: "
|
|
54
|
-
message: "
|
|
55
|
-
invalidInputs: [{ type: "not-valid.args", message: "SensClient μ΄κΈ°νμ μΈμ¦ μ 보λ₯Ό νμΈν΄μ£ΌμΈμ" }],
|
|
54
|
+
const error = new index_js_1.SensError({
|
|
55
|
+
code: -1,
|
|
56
|
+
type: "SDK.AUTH_ERROR",
|
|
57
|
+
message: "SensClient μ΄κΈ°νμ μΈμ¦ μ 보λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.",
|
|
56
58
|
});
|
|
57
59
|
if (!credentials)
|
|
58
60
|
throw error;
|
|
59
61
|
if (!credentials.accessKey) {
|
|
60
|
-
error.
|
|
62
|
+
error.message = "AccessKey μ 보λ₯Ό νμΈν΄μ£ΌμΈμ.";
|
|
61
63
|
throw error;
|
|
62
64
|
}
|
|
63
65
|
if (!credentials.secretKey) {
|
|
64
|
-
error.
|
|
66
|
+
error.message = "SecretKey μ 보λ₯Ό νμΈν΄μ£ΌμΈμ.";
|
|
65
67
|
throw error;
|
|
66
68
|
}
|
|
67
69
|
return {
|
|
@@ -70,24 +72,21 @@ const resolveCredentials = (config) => {
|
|
|
70
72
|
};
|
|
71
73
|
};
|
|
72
74
|
const resolveServiceId = (config) => {
|
|
73
|
-
var _a, _b, _c;
|
|
74
75
|
const { serviceId } = config;
|
|
75
|
-
|
|
76
|
-
code:
|
|
77
|
-
type: "
|
|
78
|
-
message: "
|
|
79
|
-
invalidInputs: [{ type: "not-valid.args", message: "SensClient μ΄κΈ°νμ μλΉμ€ μ 보λ₯Ό νμΈν΄μ£ΌμΈμ" }],
|
|
76
|
+
const error = new index_js_1.SensError({
|
|
77
|
+
code: -1,
|
|
78
|
+
type: "SDK.GENERAL_ERROR",
|
|
79
|
+
message: "SensClient μ΄κΈ°νμ μ¬μ©ν μλΉμ€ μ 보λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.",
|
|
80
80
|
});
|
|
81
81
|
if (!serviceId)
|
|
82
82
|
throw error;
|
|
83
83
|
const isReady = !!Object.values(serviceId).filter((d) => !!d).length;
|
|
84
84
|
if (!isReady) {
|
|
85
|
-
error.
|
|
85
|
+
error.message = "μ΅μ 1κ° μ΄μμ μλΉμ€ μ λ³΄κ° νμν©λλ€";
|
|
86
86
|
throw error;
|
|
87
87
|
}
|
|
88
88
|
return {
|
|
89
|
-
kakao:
|
|
90
|
-
|
|
91
|
-
sms: (_c = serviceId.sms) !== null && _c !== void 0 ? _c : "",
|
|
89
|
+
kakao: serviceId.kakao ?? "",
|
|
90
|
+
sms: serviceId.sms ?? "",
|
|
92
91
|
};
|
|
93
92
|
};
|
|
@@ -4,6 +4,9 @@ exports.GetAlimtalkResultCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const GetAlimtalkResult_js_1 = require("../protocols/GetAlimtalkResult.js");
|
|
6
6
|
class GetAlimtalkResultCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {
|
|
@@ -5,9 +5,16 @@ const index_js_1 = require("../models/index.js");
|
|
|
5
5
|
const GetAlimtalkStatus_js_1 = require("../protocols/GetAlimtalkStatus.js");
|
|
6
6
|
const MAX_LIMIT = 100;
|
|
7
7
|
class GetAlimtalkStatusCommand extends index_js_1.SensCommand {
|
|
8
|
+
input;
|
|
9
|
+
serializer;
|
|
10
|
+
deserializer;
|
|
8
11
|
constructor(input) {
|
|
9
12
|
super(input);
|
|
10
|
-
this.input =
|
|
13
|
+
this.input = {
|
|
14
|
+
requestId: input.requestId,
|
|
15
|
+
pageSize: input.pageSize ? Math.min(MAX_LIMIT, Math.max(1, input.pageSize)) : MAX_LIMIT,
|
|
16
|
+
...(input.nextToken && { nextToken: input.nextToken }),
|
|
17
|
+
};
|
|
11
18
|
this.serializer = GetAlimtalkStatus_js_1.se_GetAlimtalkStatusCommand;
|
|
12
19
|
this.deserializer = GetAlimtalkStatus_js_1.de_GetAlimtalkStatusCommand;
|
|
13
20
|
}
|
|
@@ -4,6 +4,9 @@ exports.GetAlimtalkTemplateCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const GetAlimtalkTemplate_js_1 = require("../protocols/GetAlimtalkTemplate.js");
|
|
6
6
|
class GetAlimtalkTemplateCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {
|
|
@@ -4,6 +4,9 @@ exports.GetSMSResultCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const GetSMSResult_js_1 = require("../protocols/GetSMSResult.js");
|
|
6
6
|
class GetSMSResultCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {
|
|
@@ -5,9 +5,16 @@ const index_js_1 = require("../models/index.js");
|
|
|
5
5
|
const GetSMSStatus_js_1 = require("../protocols/GetSMSStatus.js");
|
|
6
6
|
const MAX_LIMIT = 100;
|
|
7
7
|
class GetSMSStatusCommand extends index_js_1.SensCommand {
|
|
8
|
+
input;
|
|
9
|
+
serializer;
|
|
10
|
+
deserializer;
|
|
8
11
|
constructor(input) {
|
|
9
12
|
super(input);
|
|
10
|
-
this.input =
|
|
13
|
+
this.input = {
|
|
14
|
+
requestId: input.requestId,
|
|
15
|
+
pageSize: input.pageSize ? Math.min(MAX_LIMIT, Math.max(1, input.pageSize)) : MAX_LIMIT,
|
|
16
|
+
...(input.nextToken && { nextToken: input.nextToken }),
|
|
17
|
+
};
|
|
11
18
|
this.serializer = GetSMSStatus_js_1.se_GetSMSStatusCommand;
|
|
12
19
|
this.deserializer = GetSMSStatus_js_1.de_GetSMSStatusCommand;
|
|
13
20
|
}
|
|
@@ -4,6 +4,9 @@ exports.ListAlimtalkChannelsCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const ListAlimtalkChannels_js_1 = require("../protocols/ListAlimtalkChannels.js");
|
|
6
6
|
class ListAlimtalkChannelsCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {};
|
|
@@ -4,23 +4,23 @@ exports.ListAlimtalkStatusCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const ListAlimtalkStatus_js_1 = require("../protocols/ListAlimtalkStatus.js");
|
|
6
6
|
const constants_js_1 = require("./constants.js");
|
|
7
|
-
const DURATION_LIMIT_MS = 30 * 24 *
|
|
7
|
+
const DURATION_LIMIT_MS = 30 * 24 * 3_600_000; // 30μΌ μ΄λ΄λ§ μ‘°ν κ°λ₯
|
|
8
8
|
const MAX_LIMIT = 100;
|
|
9
9
|
const DEFAULT_LIMIT = 20;
|
|
10
10
|
class ListAlimtalkStatusCommand extends index_js_1.SensCommand {
|
|
11
|
+
input;
|
|
12
|
+
serializer;
|
|
13
|
+
deserializer;
|
|
11
14
|
constructor(input) {
|
|
12
|
-
var _a;
|
|
13
15
|
super(input);
|
|
14
16
|
if (input.nextToken && (!input.requestStartTime || !input.requestEndTime)) {
|
|
15
17
|
throw new index_js_1.SensError({
|
|
16
|
-
code:
|
|
17
|
-
type: "
|
|
18
|
+
code: -1,
|
|
19
|
+
type: "SDK.GENERAL_ERROR",
|
|
18
20
|
message: "νμ΄μ§λ€μ΄μ
κ²μ 쑰건 λΆμΌμΉ",
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
message: "nextToken μ¬μ© μ λ°μ΄ν° μΌκ΄μ±μ μν΄ μ΅μ΄ μμ² μμ μ΅μ
(requestStartTime, requestEndTime, pageSize λ±)μ΄ λͺ¨λ λμΌνκ² μ μ§λμ΄μΌ ν©λλ€.",
|
|
23
|
-
},
|
|
21
|
+
errors: [
|
|
22
|
+
"nextToken μ¬μ© μ λ°μ΄ν° μΌκ΄μ±μ μν΄ μ΅μ΄ μμ² μμ μ΅μ
μ΄ λͺ¨λ λμΌνκ² μ μ§λμ΄μΌ ν©λλ€.",
|
|
23
|
+
"requestStartTime, requestEndTime, pageSize μ΅μ
μ νμΈν΄μ£ΌμΈμ.",
|
|
24
24
|
],
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -29,7 +29,19 @@ class ListAlimtalkStatusCommand extends index_js_1.SensCommand {
|
|
|
29
29
|
startTime: input.requestStartTime ? (0, constants_js_1.convertToUtc)(input.requestStartTime) : defaultDuration.startTime,
|
|
30
30
|
endTime: input.requestEndTime ? (0, constants_js_1.convertToUtc)(input.requestEndTime) : defaultDuration.endTime,
|
|
31
31
|
}, { durationLimitMs: DURATION_LIMIT_MS });
|
|
32
|
-
this.input =
|
|
32
|
+
this.input = {
|
|
33
|
+
plusFriendId: input.plusFriendId,
|
|
34
|
+
requestStartTime: (0, constants_js_1.convertToKst)(startTimeMs),
|
|
35
|
+
requestEndTime: (0, constants_js_1.convertToKst)(endTimeMs),
|
|
36
|
+
pageSize: Math.min(MAX_LIMIT, Math.max(1, input.pageSize ?? DEFAULT_LIMIT)),
|
|
37
|
+
...(input.requestStatusName && { requestStatusName: input.requestStatusName }),
|
|
38
|
+
...(input.messageStatusName && { messageStatusName: input.messageStatusName }),
|
|
39
|
+
...(input.requestId && { requestId: input.requestId, pageSize: MAX_LIMIT }),
|
|
40
|
+
...(input.messageId && { messageId: input.messageId }),
|
|
41
|
+
...(input.templateCode && { templateCode: input.templateCode }),
|
|
42
|
+
...(input.to && { to: (0, constants_js_1.prettyPhoneNum)(input.to) }),
|
|
43
|
+
...(input.nextToken && { nextToken: input.nextToken }),
|
|
44
|
+
};
|
|
33
45
|
this.serializer = ListAlimtalkStatus_js_1.se_ListAlimtalkStatusCommand;
|
|
34
46
|
this.deserializer = ListAlimtalkStatus_js_1.de_ListAlimtalkStatusCommand;
|
|
35
47
|
}
|
|
@@ -4,6 +4,9 @@ exports.ListAlimtalkTemplatesCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const ListAlimtalkTemplates_js_1 = require("../protocols/ListAlimtalkTemplates.js");
|
|
6
6
|
class ListAlimtalkTemplatesCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {
|
|
@@ -4,23 +4,23 @@ exports.ListSMSStatusCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const ListSMSStatus_js_1 = require("../protocols/ListSMSStatus.js");
|
|
6
6
|
const constants_js_1 = require("./constants.js");
|
|
7
|
-
const DURATION_LIMIT_MS = 30 * 24 *
|
|
7
|
+
const DURATION_LIMIT_MS = 30 * 24 * 3_600_000; // 30μΌ μ΄λ΄λ§ μ‘°ν κ°λ₯
|
|
8
8
|
const MAX_LIMIT = 100;
|
|
9
9
|
const DEFAULT_LIMIT = 20;
|
|
10
10
|
class ListSMSStatusCommand extends index_js_1.SensCommand {
|
|
11
|
+
input;
|
|
12
|
+
serializer;
|
|
13
|
+
deserializer;
|
|
11
14
|
constructor(input) {
|
|
12
|
-
var _a;
|
|
13
15
|
super(input);
|
|
14
16
|
if (input.nextToken && (!input.requestStartTime || !input.requestEndTime)) {
|
|
15
17
|
throw new index_js_1.SensError({
|
|
16
|
-
code:
|
|
17
|
-
type: "
|
|
18
|
+
code: -1,
|
|
19
|
+
type: "SDK.GENERAL_ERROR",
|
|
18
20
|
message: "νμ΄μ§λ€μ΄μ
κ²μ 쑰건 λΆμΌμΉ",
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
message: "nextToken μ¬μ© μ λ°μ΄ν° μΌκ΄μ±μ μν΄ μ΅μ΄ μμ² μμ μ΅μ
(requestStartTime, requestEndTime, pageSize λ±)μ΄ λͺ¨λ λμΌνκ² μ μ§λμ΄μΌ ν©λλ€.",
|
|
23
|
-
},
|
|
21
|
+
errors: [
|
|
22
|
+
"nextToken μ¬μ© μ λ°μ΄ν° μΌκ΄μ±μ μν΄ μ΅μ΄ μμ² μμ μ΅μ
μ΄ λͺ¨λ λμΌνκ² μ μ§λμ΄μΌ ν©λλ€.",
|
|
23
|
+
"requestStartTime, requestEndTime, pageSize μ΅μ
μ νμΈν΄μ£ΌμΈμ.",
|
|
24
24
|
],
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -29,7 +29,18 @@ class ListSMSStatusCommand extends index_js_1.SensCommand {
|
|
|
29
29
|
startTime: input.requestStartTime ? (0, constants_js_1.convertToUtc)(input.requestStartTime) : defaultDuration.startTime,
|
|
30
30
|
endTime: input.requestEndTime ? (0, constants_js_1.convertToUtc)(input.requestEndTime) : defaultDuration.endTime,
|
|
31
31
|
}, { durationLimitMs: DURATION_LIMIT_MS });
|
|
32
|
-
this.input =
|
|
32
|
+
this.input = {
|
|
33
|
+
requestStartTime: (0, constants_js_1.convertToKst)(startTimeMs),
|
|
34
|
+
requestEndTime: (0, constants_js_1.convertToKst)(endTimeMs),
|
|
35
|
+
pageSize: Math.min(MAX_LIMIT, Math.max(1, input.pageSize ?? DEFAULT_LIMIT)),
|
|
36
|
+
...(input.type && { type: input.type }),
|
|
37
|
+
...(input.contentType && { contentType: input.contentType }),
|
|
38
|
+
...(input.status && { status: input.status }),
|
|
39
|
+
...(input.from && { from: (0, constants_js_1.prettyPhoneNum)(input.from) }),
|
|
40
|
+
...(input.to && { to: (0, constants_js_1.prettyPhoneNum)(input.to) }),
|
|
41
|
+
...(input.statusName && { statusName: input.statusName }),
|
|
42
|
+
...(input.nextToken && { nextToken: input.nextToken }),
|
|
43
|
+
};
|
|
33
44
|
this.serializer = ListSMSStatus_js_1.se_ListSMSStatusCommand;
|
|
34
45
|
this.deserializer = ListSMSStatus_js_1.de_ListSMSStatusCommand;
|
|
35
46
|
}
|
|
@@ -4,6 +4,9 @@ exports.SendAlimtalkCommand = void 0;
|
|
|
4
4
|
const index_js_1 = require("../models/index.js");
|
|
5
5
|
const SendAlimtalk_js_1 = require("../protocols/SendAlimtalk.js");
|
|
6
6
|
class SendAlimtalkCommand extends index_js_1.SensCommand {
|
|
7
|
+
input;
|
|
8
|
+
serializer;
|
|
9
|
+
deserializer;
|
|
7
10
|
constructor(input) {
|
|
8
11
|
super(input);
|
|
9
12
|
this.input = {
|
|
@@ -22,27 +25,25 @@ exports.SendAlimtalkCommand = SendAlimtalkCommand;
|
|
|
22
25
|
const resolveAlimtalkMessages = (messages, config) => {
|
|
23
26
|
if (!messages.length || messages.length > config.maxRecipients) {
|
|
24
27
|
throw new index_js_1.SensError({
|
|
25
|
-
code:
|
|
26
|
-
type: "
|
|
27
|
-
message:
|
|
28
|
-
invalidInputs: [
|
|
29
|
-
{
|
|
30
|
-
type: "not-valid.args",
|
|
31
|
-
message: `λ©μΈμ§ λμ λ°μ‘μ μ΅μ 1λͺ
, μ΅λ ${config.maxRecipients}λͺ
κΉμ§ κ°λ₯ν©λλ€.`,
|
|
32
|
-
},
|
|
33
|
-
],
|
|
28
|
+
code: -1,
|
|
29
|
+
type: "SDK.GENERAL_ERROR",
|
|
30
|
+
message: `μλ¦Όν‘ λμ λ°μ‘μ μ΅μ 1λͺ
, μ΅λ ${config.maxRecipients}λͺ
κΉμ§ κ°λ₯ν©λλ€.`,
|
|
34
31
|
});
|
|
35
32
|
}
|
|
36
33
|
const result = messages.map((message) => {
|
|
37
34
|
if (message.content.length > config.maxContentLength) {
|
|
38
35
|
throw new index_js_1.SensError({
|
|
39
|
-
code:
|
|
40
|
-
type: "
|
|
41
|
-
message:
|
|
42
|
-
invalidInputs: [{ type: "not-valid.args", message: `λ©μΈμ§ μ΅λ κΈΈμ΄λ ${config.maxContentLength}κΈμμ
λλ€` }],
|
|
36
|
+
code: -1,
|
|
37
|
+
type: "SDK.GENERAL_ERROR",
|
|
38
|
+
message: `μλ¦Όν‘ μ΅λ κΈΈμ΄λ ${config.maxContentLength}κΈμμ
λλ€`,
|
|
43
39
|
});
|
|
44
40
|
}
|
|
45
|
-
return
|
|
41
|
+
return {
|
|
42
|
+
to: message.to.replace(/\-/gi, ""),
|
|
43
|
+
content: message.content,
|
|
44
|
+
useSmsFailover: message.useSmsFailover != undefined ? message.useSmsFailover : false,
|
|
45
|
+
...(message.buttons && message.buttons.length && { buttons: message.buttons }),
|
|
46
|
+
};
|
|
46
47
|
});
|
|
47
48
|
return result;
|
|
48
49
|
};
|