Skip to content

Commit 734e4bd

Browse files
SOLAPI 5.0.0-beta.20:
* 불필요한 await 구문 제거 * MessageType enum 에서 일반 type으로 변경 * authenticator 에서 ApiKey Error 못잡는 문제 수정
1 parent 5fa9b48 commit 734e4bd

4 files changed

Lines changed: 63 additions & 100 deletions

File tree

src/index.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export default class SolapiMessageService {
6666
method: 'POST',
6767
url: `${this.baseUrl}/messages/v4/send`
6868
};
69-
return await defaultFetcher<SingleMessageSendingRequest, SingleMessageSentResponse>(this.authInfo, requestConfig, parameter);
69+
return defaultFetcher<SingleMessageSendingRequest, SingleMessageSentResponse>(this.authInfo, requestConfig, parameter);
7070
}
7171

7272
/**
@@ -78,7 +78,7 @@ export default class SolapiMessageService {
7878
const groupId = await this.createGroup();
7979
await this.addMessagesToGroup(groupId, [message]);
8080
scheduledDate = stringDateTransfer(scheduledDate);
81-
return await this.reserveGroup(groupId, scheduledDate);
81+
return this.reserveGroup(groupId, scheduledDate);
8282
}
8383

8484
/**
@@ -94,7 +94,7 @@ export default class SolapiMessageService {
9494
method: 'POST',
9595
url: `${this.baseUrl}/messages/v4/send-many`
9696
};
97-
return await defaultFetcher<MultipleMessageSendingRequest, GroupMessageResponse>(this.authInfo, requestConfig, parameter);
97+
return defaultFetcher<MultipleMessageSendingRequest, GroupMessageResponse>(this.authInfo, requestConfig, parameter);
9898
}
9999

100100
/**
@@ -109,7 +109,7 @@ export default class SolapiMessageService {
109109
const groupId = await this.createGroup(allowDuplicates, appId);
110110
await this.addMessagesToGroup(groupId, messages);
111111
scheduledDate = stringDateTransfer(scheduledDate);
112-
return await this.reserveGroup(groupId, scheduledDate);
112+
return this.reserveGroup(groupId, scheduledDate);
113113
}
114114

115115
/**
@@ -122,7 +122,7 @@ export default class SolapiMessageService {
122122
method: 'POST',
123123
url: `${this.baseUrl}/messages/v4/groups`
124124
};
125-
return await defaultFetcher<CreateGroupRequest, GroupMessageResponse>(this.authInfo, requestConfig, {
125+
return defaultFetcher<CreateGroupRequest, GroupMessageResponse>(this.authInfo, requestConfig, {
126126
sdkVersion,
127127
osPlatform,
128128
allowDuplicates,
@@ -141,7 +141,7 @@ export default class SolapiMessageService {
141141
method: 'PUT',
142142
url: `${this.baseUrl}/messages/v4/groups/${groupId}/messages`
143143
};
144-
return await defaultFetcher<GroupMessageAddRequest, AddMessageResponse>(this.authInfo, requestConfig, new GroupMessageAddRequest(messages));
144+
return defaultFetcher<GroupMessageAddRequest, AddMessageResponse>(this.authInfo, requestConfig, new GroupMessageAddRequest(messages));
145145
}
146146

147147
/**
@@ -153,7 +153,7 @@ export default class SolapiMessageService {
153153
method: 'POST',
154154
url: `${this.baseUrl}/messages/v4/groups/${groupId}/send`
155155
};
156-
return await defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
156+
return defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
157157
}
158158

159159
/**
@@ -167,7 +167,7 @@ export default class SolapiMessageService {
167167
url: `${this.baseUrl}/messages/v4/groups/${groupId}/schedule`
168168
};
169169
const formattedScheduledDate = formatISO(scheduledDate);
170-
return await defaultFetcher<ScheduledDateSendingRequest, GroupMessageResponse>(this.authInfo, requestConfig, {
170+
return defaultFetcher<ScheduledDateSendingRequest, GroupMessageResponse>(this.authInfo, requestConfig, {
171171
scheduledDate: formattedScheduledDate
172172
});
173173
}
@@ -182,7 +182,7 @@ export default class SolapiMessageService {
182182
method: 'GET',
183183
url: endpoint
184184
};
185-
return await defaultFetcher<undefined, GetGroupsResponse>(this.authInfo, requestConfig);
185+
return defaultFetcher<undefined, GetGroupsResponse>(this.authInfo, requestConfig);
186186
}
187187

188188
/**
@@ -196,7 +196,7 @@ export default class SolapiMessageService {
196196
method: 'GET',
197197
url: endpoint
198198
};
199-
return await defaultFetcher<undefined, GetMessagesResponse>(this.authInfo, requestConfig);
199+
return defaultFetcher<undefined, GetMessagesResponse>(this.authInfo, requestConfig);
200200
}
201201

202202
/**
@@ -209,7 +209,7 @@ export default class SolapiMessageService {
209209
method: 'DELETE',
210210
url: `${this.baseUrl}/messages/v4/groups/${groupId}/messages`
211211
};
212-
return await defaultFetcher<RemoveMessageIdsToGroupRequest, RemoveGroupMessagesResponse>(this.authInfo, requestConfig, {messageIds});
212+
return defaultFetcher<RemoveMessageIdsToGroupRequest, RemoveGroupMessagesResponse>(this.authInfo, requestConfig, {messageIds});
213213
}
214214

215215
/**
@@ -221,7 +221,7 @@ export default class SolapiMessageService {
221221
method: 'DELETE',
222222
url: `${this.baseUrl}/messages/v4/groups/${groupId}/schedule`
223223
};
224-
return await defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
224+
return defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
225225
}
226226

227227
/**
@@ -233,21 +233,21 @@ export default class SolapiMessageService {
233233
method: 'DELETE',
234234
url: `${this.baseUrl}/messages/v4/groups/${groupId}`
235235
};
236-
return await defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
236+
return defaultFetcher<undefined, GroupMessageResponse>(this.authInfo, requestConfig);
237237
}
238238

239239
/**
240240
* 메시지 목록 조회
241241
* @param data 목록 조회 상세조건 파라미터
242242
*/
243-
async getMessages(data?: GetMessagesRequestType): Promise<GetMessagesResponse> {
243+
async getMessages(data?: Readonly<GetMessagesRequestType>): Promise<GetMessagesResponse> {
244244
const parameter: GetMessagesRequest | object = data ? new GetMessagesRequest(data) : {};
245245
const endpoint = queryParameterGenerator(`${this.baseUrl}/messages/v4/list`, parameter);
246246
const requestConfig: RequestConfig = {
247247
method: 'GET',
248248
url: endpoint
249249
};
250-
return await defaultFetcher<undefined, GetMessagesResponse>(this.authInfo, requestConfig);
250+
return defaultFetcher<undefined, GetMessagesResponse>(this.authInfo, requestConfig);
251251
}
252252

253253
/**
@@ -262,7 +262,7 @@ export default class SolapiMessageService {
262262
method: 'GET',
263263
url: endpoint
264264
};
265-
return await defaultFetcher<undefined, GetStatisticsResponse>(this.authInfo, requestConfig);
265+
return defaultFetcher<undefined, GetStatisticsResponse>(this.authInfo, requestConfig);
266266
}
267267

268268
/**
@@ -274,7 +274,7 @@ export default class SolapiMessageService {
274274
method: 'GET',
275275
url: `${this.baseUrl}/cash/v1/balance`
276276
};
277-
return await defaultFetcher<undefined, GetBalanceResponse>(this.authInfo, requestConfig);
277+
return defaultFetcher<undefined, GetBalanceResponse>(this.authInfo, requestConfig);
278278
}
279279

280280
/**
@@ -297,6 +297,6 @@ export default class SolapiMessageService {
297297
name,
298298
link
299299
};
300-
return await defaultFetcher<FileUploadRequest, FileUploadResponse>(this.authInfo, requestConfig, parameter);
300+
return defaultFetcher<FileUploadRequest, FileUploadResponse>(this.authInfo, requestConfig, parameter);
301301
}
302302
}

src/lib/authenticator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default function getAuthInfo(authenticationParameter: AuthenticationParam
2727
const salt = customAlphabet('1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 32)();
2828
const date = formatISO(new Date());
2929
const hmacData = date + salt;
30-
if (!apiKey || !apiSecret) {
30+
if ((!apiKey || !apiSecret) || (apiKey === '' || apiSecret === '')) {
3131
throw new ApiKeyError('Invalid API Key Error');
3232
}
3333
const signature = HmacSHA256(hmacData, apiSecret).toString();

src/models/message.ts

Lines changed: 28 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,31 @@
11
import KakaoOption from './kakaoOption';
22

33
/**
4-
* 메시지 유형(단문 문자, 장문 문자, 알림톡 등)
4+
* @name MessageType 메시지 유형(단문 문자, 장문 문자, 알림톡 등)
5+
* SMS: 단문 문자
6+
* LMS: 장문 문자
7+
* MMS: 사진 문자
8+
* ATA: 알림톡
9+
* CTA: 친구톡
10+
* CTI: 사진 한장이 포함된 친구톡
11+
* RCS_SMS: RCS 단문 문자
12+
* RCS_LMS: RCS 장문 문자
13+
* RCS_MMS: RCS 사진 문자
14+
* RCS_TPL: RCS 템플릿
15+
* NSA: 네이버 스마트알림(톡톡)
516
*/
6-
export enum MessageType {
7-
/**
8-
* 단문문자 (80 byte 미만)
9-
* */
10-
SMS = 'SMS',
11-
12-
/**
13-
* 장문문자 (80 byte 이상, 2,000 byte 미만)
14-
*/
15-
LMS = 'LMS',
16-
17-
/**
18-
* 이미지가 포함된 문자 (80 byte 이상, 2,000 byte 미만), 200kb 이내 이미지 파일 1장 업로드 가능
19-
*/
20-
MMS = 'MMS',
21-
22-
/**
23-
* 카카오 알림톡
24-
* */
25-
ATA = 'ATA',
26-
27-
/**
28-
* 카카오 친구톡
29-
*/
30-
CTA = 'CTA',
31-
32-
/**
33-
* 이미지가 포함된 카카오 친구톡(이미지 1장 업로드 가능)
34-
*/
35-
CTI = 'CTI',
36-
37-
/**
38-
* RCS 단문문자
39-
*/
40-
RCS_SMS = 'RCS_SMS',
41-
42-
/**
43-
* RCS 장문문자
44-
*/
45-
RCS_LMS = 'RCS_LMS',
46-
47-
/**
48-
* 이미지가 포함된 RCS 문자
49-
*/
50-
RCS_MMS = 'RCS_MMS',
51-
52-
/**
53-
* RCS 템플릿
54-
*/
55-
RCS_TPL = 'RCS_TPL',
56-
57-
/**
58-
* 네이버 스마트 알림(네이버 톡톡)
59-
*/
60-
NSA = 'NSA'
61-
}
17+
export type MessageType =
18+
'SMS'
19+
| 'LMS'
20+
| 'MMS'
21+
| 'ATA'
22+
| 'CTA'
23+
| 'CTI'
24+
| 'RCS_SMS'
25+
| 'RCS_LMS'
26+
| 'RCS_MMS'
27+
| 'RCS_TPL'
28+
| 'NSA';
6229

6330
/**
6431
* 메시지 모델
@@ -105,9 +72,9 @@ export default class Message {
10572
imageId?: string;
10673

10774
/**
108-
* 메시지 유형
75+
* @name MessageType 메시지 유형
10976
*/
110-
type: MessageType;
77+
type?: MessageType;
11178

11279
/**
11380
* 문자 제목(LMS, MMS 전용)
@@ -127,12 +94,12 @@ export default class Message {
12794
/**
12895
* 해외 문자 발송을 위한 국가번호(예) "82", "1" 등)
12996
*/
130-
country = '82';
97+
country? = '82';
13198

13299
/**
133100
* 메시지 로그
134101
*/
135-
log: Array<object>;
102+
log?: Array<object>;
136103

137104

138105
constructor(to: string, from: string, text: string, dateCreated: string, dateUpdated: string, groupId: string, messageId: string, imageId: string, type: MessageType, subject: string, autoTypeDetect: boolean, kakaoOptions: KakaoOption, country: string) {

src/requests/messageRequest.ts

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,20 @@ export type RequestConfig = {
8989
}
9090

9191
export type GetMessagesRequestType = {
92-
readonly startKey?: string
93-
readonly limit?: number
94-
readonly dateType?: string
95-
readonly startDate?: string
96-
readonly endDate?: string
97-
readonly messageId?: string
98-
readonly messageIds?: Array<string>
99-
readonly groupId?: GroupId
100-
readonly to?: string
101-
readonly from?: string
102-
readonly type?: MessageType
103-
readonly statusCode?: string
104-
readonly dateCreated?: string
105-
readonly dateUpdated?: string
92+
startKey?: string
93+
limit?: number
94+
dateType?: string
95+
messageId?: string
96+
messageIds?: Array<string>
97+
groupId?: GroupId
98+
to?: string
99+
from?: string
100+
type?: MessageType
101+
statusCode?: string
102+
duration?: {
103+
startDate: string
104+
endDate: string
105+
}
106106
}
107107

108108
export class GetMessagesRequest {
@@ -118,24 +118,20 @@ export class GetMessagesRequest {
118118
readonly from?: string;
119119
readonly type?: MessageType;
120120
readonly statusCode?: string;
121-
readonly dateCreated?: string;
122-
readonly dateUpdated?: string;
123121

124122
constructor(getMessageRequestType: GetMessagesRequestType) {
125123
this.startKey = getMessageRequestType.startKey;
126124
this.limit = getMessageRequestType.limit;
127125
this.dateType = getMessageRequestType.dateType;
128-
if (getMessageRequestType.startDate) this.startDate = formatISO(stringDateTransfer(getMessageRequestType.startDate));
129-
if (getMessageRequestType.endDate) this.endDate = formatISO(stringDateTransfer(getMessageRequestType.endDate));
126+
if (getMessageRequestType.duration) this.startDate = formatISO(stringDateTransfer(getMessageRequestType.duration.startDate));
127+
if (getMessageRequestType.duration) this.endDate = formatISO(stringDateTransfer(getMessageRequestType.duration.endDate));
130128
this.messageId = getMessageRequestType.messageId;
131129
this.messageIds = getMessageRequestType.messageIds;
132130
this.groupId = getMessageRequestType.groupId;
133131
this.to = getMessageRequestType.to;
134132
this.from = getMessageRequestType.from;
135133
this.type = getMessageRequestType.type;
136134
this.statusCode = getMessageRequestType.statusCode;
137-
if (getMessageRequestType.dateCreated) this.dateCreated = formatISO(stringDateTransfer(getMessageRequestType.dateCreated));
138-
if (getMessageRequestType.dateUpdated) this.dateUpdated = formatISO(stringDateTransfer(getMessageRequestType.dateUpdated));
139135
}
140136
}
141137

0 commit comments

Comments
 (0)