Skip to content

Commit ddd1d6e

Browse files
[impr] improve KakaoAlimtalkTemplateQuickReply type
1 parent 5648e67 commit ddd1d6e

5 files changed

Lines changed: 43 additions & 23 deletions

File tree

changelog/ko/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
# 5.2.0 (2022년 12월 12일)
1+
# 5.2.0 (2022년 12월 13일)
22

33
- 5.1.1에서 추가된 카카오 알림톡 채널/템플릿 관리 기능을 안정화 했습니다.
44
- 템플릿 내 아이템리스트 유형 및 바로연결 버튼 유형이 추가되었습니다.
55
- `getKakaoChannels`, `getKakaoAlimtalkTemplates`, `getKakaoChannel`, `getKakaoAlimtalkTemplate`
66
, `createKakaoAlimtalkTemplate`, `updateKakaoAlimtalkTemplate`, `cancelInspectionKakaoAlimtalkTemplate`, `deleteKakaoAlimtalkTemplate`, `requestInspectionKakaoAlimtalkTemplate` 호출 시 실제 각 모델 별 클래스 인스턴스를
77
반환하도록 수정되었습니다.
8+
- KakaoButton 타입이 조금 더 정확하게 타입을 추론하도록 수정되었습니다.
89
- send 메소드에 messages 파라미터 이후의 파라미터들을 하나의 오브젝트(requestConfigParameter)로 변경되었습니다.
910
- breaking change가 발생하여 예약 발송, 중복 수신번호 허용, appId를 사용하시던 사용자는 업데이트 후 코드를 변경하셔야 합니다.
1011
- send 메소드에서 messages 파라미터의 타입을 `Message | Array<Message>` 타입이 아닌 `MessageParameter | Array<MessageParameter>`

src/models/kakao/kakaoAlimtalkTemplate.ts

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import {KakaoButton, KakaoButtonType} from './kakaoButton';
1+
import {KakaoButton} from './kakaoButton';
22
import stringDateTransfer from '../../lib/stringDateTrasnfer';
33
import {GetKakaoTemplateResponse} from '../../responses/kakao/getKakaoTemplateResponse';
44
import {KakaoChannelCategory} from './kakaoChannel';
5+
import {KakaoAlimtalkTemplateQuickReply} from './kakaoAlimtalkTemplateQuickReply';
56

67
/**
78
* @description 카카오 채널 카테고리 타입
@@ -54,15 +55,6 @@ export type KakaoAlimtalkTemplateCommentType = {
5455
dateCreated: string;
5556
};
5657

57-
export type KakaoAlimtalkTemplateQuickReplyType = {
58-
name: string;
59-
linkType: Omit<KakaoButtonType, 'AC' | 'DS' | 'MD'>;
60-
linkMo?: string | null;
61-
linkPc?: string | null;
62-
linkAnd?: string | null;
63-
linkIos?: string | null;
64-
};
65-
6658
export type KakaoAlimtalkTemplateHighlightType = {
6759
title?: string | null;
6860
description?: string | null;
@@ -80,12 +72,6 @@ export type KakaoAlimtalkTemplateItemType = {
8072
};
8173
};
8274

83-
/*
84-
memberId: { type: String, required: true },
85-
isAdmin: { type: Boolean, default: false },
86-
content: { type: String, default: null },
87-
dateCreated: { type: Date, default: Date.now
88-
* */
8975
export interface KakaoAlimtalkTemplateInterface {
9076
/**
9177
* @description 템플릿 제목
@@ -175,7 +161,7 @@ export interface KakaoAlimtalkTemplateInterface {
175161
/**
176162
* 바로가기 연결(링크) 목록
177163
*/
178-
quickReplies?: Array<KakaoAlimtalkTemplateQuickReplyType>;
164+
quickReplies?: Array<KakaoAlimtalkTemplateQuickReply>;
179165

180166
/**
181167
* @description 아이템 리스트 용 헤더
@@ -233,7 +219,7 @@ export class KakaoAlimtalkTemplate implements KakaoAlimtalkTemplateInterface {
233219
imageId?: string | null;
234220
assignType?: KakaoAlimtalkTemplateAssignType;
235221
buttons?: KakaoButton[];
236-
quickReplies?: KakaoAlimtalkTemplateQuickReplyType[];
222+
quickReplies?: KakaoAlimtalkTemplateQuickReply[];
237223
header?: string | null;
238224
highlight?: KakaoAlimtalkTemplateHighlightType;
239225
item?: KakaoAlimtalkTemplateItemType;
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import {KakaoButtonType} from './kakaoButton';
2+
3+
export type KakaoAlimtalkTemplateQuickReplyWebLink = {
4+
name: string;
5+
linkType: Extract<KakaoButtonType, 'WL'>;
6+
linkMo: string;
7+
linkPc?: string;
8+
linkAnd?: never;
9+
linkIos?: never;
10+
};
11+
12+
export type KakaoAlimtalkTemplateQuickReplyAppLink = {
13+
name: string;
14+
linkType: Extract<KakaoButtonType, 'AL'>;
15+
linkMo?: never;
16+
linkPc?: never;
17+
linkAnd: string;
18+
linkIos: string;
19+
};
20+
21+
export type KakaoAlimtalkTemplateQuickReplyDefault = {
22+
name: string;
23+
linkType: Exclude<KakaoButtonType, 'AC' | 'DS' | 'MD' | 'AL' | 'WL'>;
24+
linkMo?: never;
25+
linkPc?: never;
26+
linkAnd?: never;
27+
linkIos?: never;
28+
};
29+
30+
export type KakaoAlimtalkTemplateQuickReply =
31+
| KakaoAlimtalkTemplateQuickReplyWebLink
32+
| KakaoAlimtalkTemplateQuickReplyAppLink
33+
| KakaoAlimtalkTemplateQuickReplyDefault;

src/requests/kakao/createKakaoAlimtalkTemplateRequest.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {
33
KakaoAlimtalkTemplateHighlightType,
44
KakaoAlimtalkTemplateItemType,
55
KakaoAlimtalkTemplateMessageType,
6-
KakaoAlimtalkTemplateQuickReplyType,
76
} from '../../models/kakao/kakaoAlimtalkTemplate';
87
import {KakaoButton} from '../../models/kakao/kakaoButton';
8+
import {KakaoAlimtalkTemplateQuickReply} from '../../models/kakao/kakaoAlimtalkTemplateQuickReply';
99

1010
/**
1111
* @description 카카오 알림톡 템플릿 요청 타입
@@ -34,7 +34,7 @@ export type BaseKakaoAlimtalkTemplateRequest = {
3434
/**
3535
* @description 바로연결(버튼과 유사한 링크) 배열
3636
*/
37-
quickReplies?: Array<KakaoAlimtalkTemplateQuickReplyType>;
37+
quickReplies?: Array<KakaoAlimtalkTemplateQuickReply>;
3838

3939
/**
4040
* @description 알림톡 템플릿 메시지 유형

src/requests/kakao/updateKakaoAlimtalkTemplateRequest.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {
33
KakaoAlimtalkTemplateHighlightType,
44
KakaoAlimtalkTemplateItemType,
55
KakaoAlimtalkTemplateMessageType,
6-
KakaoAlimtalkTemplateQuickReplyType,
76
} from '../../models/kakao/kakaoAlimtalkTemplate';
87
import {KakaoButton} from '../../models/kakao/kakaoButton';
8+
import {KakaoAlimtalkTemplateQuickReply} from '../../models/kakao/kakaoAlimtalkTemplateQuickReply';
99

1010
/**
1111
* @description 카카오 알림톡 템플릿 요청 타입
@@ -34,7 +34,7 @@ export type UpdateKakaoAlimtalkTemplateRequest = {
3434
/**
3535
* @description 바로연결(버튼과 유사한 링크) 배열
3636
*/
37-
quickReplies?: Array<KakaoAlimtalkTemplateQuickReplyType>;
37+
quickReplies?: Array<KakaoAlimtalkTemplateQuickReply>;
3838

3939
/**
4040
* @description 알림톡 템플릿 메시지 유형

0 commit comments

Comments
 (0)