11import { Message , MessageType } from '../models/message' ;
2- import { GroupId , OperatorType } from '../types/commonTypes' ;
2+ import { DateOperatorType , GroupId , KakaoAlimtalkTemplateStatus } from '../types/commonTypes' ;
33import { formatISO } from 'date-fns' ;
44import stringDateTransfer from '../lib/stringDateTrasnfer' ;
55import { KakaoButton } from '../models/kakao/kakaoButton' ;
@@ -13,7 +13,7 @@ export type DefaultAgentType = {
1313 osPlatform : string
1414} ;
1515
16- const sdkVersion = 'nodejs/5.1.2 ' ;
16+ const sdkVersion = 'nodejs/5.1.3 ' ;
1717
1818export const defaultAgent : DefaultAgentType = {
1919 sdkVersion,
@@ -197,15 +197,23 @@ export type CreateGroupRequest = DefaultAgentType & {
197197 appId ?: string
198198}
199199
200+ /**
201+ * @description GET API 중 일부 파라미터 조회 시 필요한 객체
202+ * @see https://docs.solapi.com/api-reference/overview#operator
203+ */
204+ export type DatePayloadType = {
205+ [ key in DateOperatorType ] ?: string | Date ;
206+ } ;
207+
200208export type GetKakaoChannelsRequest = {
201- channelId : string ;
202- searchId : string ;
203- phoneNumber : string ;
204- categoryCode : string ;
205- dateCreated : Record < keyof Omit < OperatorType , 'ne' | 'like' | 'in' > , string > ;
206- dateUpdated : Record < keyof Omit < OperatorType , 'ne' | 'like' | 'in' > , string > ;
207- startKey : string ;
208- limit : number ;
209+ channelId : string
210+ searchId : string
211+ phoneNumber : string
212+ categoryCode : string
213+ dateCreated : DatePayloadType
214+ dateUpdated : DatePayloadType
215+ startKey : string
216+ limit : number
209217}
210218
211219export type CreateKakaoChannelTokenRequest = {
@@ -220,48 +228,43 @@ export type CreateKakaoChannelRequest = {
220228 token : string
221229}
222230
223- export type GetKakaoAlimtalkTemplatesRequestType = {
224- name ?: string
225- pfId ?: string
226- templateId ?: string
227- isHidden ?: boolean
228- status ?: string
229- startKey ?: string
230- limit ?: number
231- dateCreated ?: string
232- dateUpdated ?: string
233- }
234-
235- export class GetKakaoAlimtalkTemplatesRequest {
236- 'name[like]' ?: string ;
237- pfId ?: string ;
238- templateId ?: string ;
239- isHidden ?: boolean ;
240- status ?: string ;
241- startKey ?: string ;
242- limit ?: number ;
243- 'dateCreated[gte]' ?: string ;
244- 'dateUpdated[gte]' ?: string ;
245-
246- constructor ( getKakaoAlimtalkTemplatesRequestType : GetKakaoAlimtalkTemplatesRequestType ) {
247- this [ 'name[like]' ] = getKakaoAlimtalkTemplatesRequestType . name ;
248- this . pfId = getKakaoAlimtalkTemplatesRequestType . pfId ;
249- this . templateId = getKakaoAlimtalkTemplatesRequestType . templateId ;
250- this . isHidden = getKakaoAlimtalkTemplatesRequestType . isHidden ;
251- this . status = getKakaoAlimtalkTemplatesRequestType . status ;
252- this . startKey = getKakaoAlimtalkTemplatesRequestType . startKey ;
253- this . limit = getKakaoAlimtalkTemplatesRequestType . limit ;
254- this [ 'dateCreated[gte]' ] = getKakaoAlimtalkTemplatesRequestType . dateCreated ;
255- this [ 'dateUpdated[gte]' ] = getKakaoAlimtalkTemplatesRequestType . dateUpdated ;
256- }
231+ /**
232+ * @description 카카오 알림톡 조회를 위한 요청 타입
233+ * @param {string } name - 알림톡 템플릿 제목
234+ * @param {string } channelId - 카카오 비즈니스 채널 ID
235+ * @param {string } templateId - 카카오 알림톡 템플릿 ID
236+ * @param {boolean } isHidden - 숨긴 템플릿 여부 확인
237+ * @param {KakaoAlimtalkTemplateStatus } status - 알림톡 템플릿 상태
238+ * @param {string } startKey - 페이지네이션 조회 키
239+ * @param {number } limit - 조회 시 제한할 건 수 (기본: 20, 최대: 500)
240+ * @param {DatePayloadType } dateCreated - 생성일자 (조회 조건 -> eq, lte, gte 등이 포함되어야 함)
241+ * @param {DatePayloadType } dateUpdated - 수정일자 (조회 조건 -> eq, lte, gte 등이 포함되어야 함)
242+ */
243+ export type GetKakaoAlimtalkTemplatesRequest = {
244+ name : string
245+ channelId : string
246+ templateId : string
247+ isHidden : boolean
248+ status : KakaoAlimtalkTemplateStatus
249+ startKey : string
250+ limit : number
251+ dateCreated : DatePayloadType
252+ dateUpdated : DatePayloadType
257253}
258254
259255/**
260- * @description 카카오 알림톡 템플릿 요청 파라미터 타입
261- * @param name 알림톡 템플릿 제목 (동일한 채널에 중복적인 이름 등록 불가)
262- * @property content 알림톡 템플릿 내용
263- * @property categoryCode 알림톡 템플릿 카테고리 코드, KakaoAlimtalkTemplateCategory 타입 참고
264- * @property buttons 알림톡 템플릿
256+ * @description 카카오 알림톡 템플릿 요청 타입
257+ * @param {string|undefined } name - 알림톡 템플릿 제목 (동일한 채널에 중복적인 이름 등록 불가)
258+ * @param {string|undefined } content - 알림톡 템플릿 내용
259+ * @param {string|undefined } categoryCode - 알림톡 템플릿 카테고리 코드, KakaoAlimtalkTemplateCategory 타입 참고
260+ * @param {KakaoButton[]|undefined } buttons - 알림톡 템플릿 버튼 목록
261+ * @param {KakaoAlimtalkTemplateMessageType|undefined } messageType - 알림톡 템플릿 메시지 유형
262+ * @param {KakaoAlimtalkTemplateEmphasizeType|undefined } emphasizeType - 카카오 알림톡 템플릿 강조 유형
263+ * @param {string|undefined } extra - 부가정보, 치환문구를 넣을 수 없음
264+ * @param {string|undefined } emphasizeTitle - 강조 표기 제목 (강조 표기형 유형만 등록 가능)
265+ * @param {string|undefined } emphasizeSubTitle - 강조 표기 부제목 (강조 표기형 유형만 등록 가능)
266+ * @param {boolean|undefined } securityFlag - 보안 템플릿 여부
267+ * @param {string|undefined } imageId - 알림톡 템플릿 내에 업로드 할 이미지 ID (Storage API 사용 필요)
265268 */
266269export type KakaoAlimtalkTemplateRequest = {
267270 name ?: string ;
@@ -271,13 +274,18 @@ export type KakaoAlimtalkTemplateRequest = {
271274 messageType ?: KakaoAlimtalkTemplateMessageType ;
272275 emphasizeType ?: KakaoAlimtalkTemplateEmphasizeType ;
273276 extra ?: string ;
274- ad ?: string ;
275277 emphasizeTitle ?: string ;
276278 emphasizeSubtitle ?: string ;
277279 securityFlag ?: boolean ;
278280 imageId ?: string ;
279281} ;
280282
283+ /**
284+ * @description 카카오 알림톡 템플릿 생성 요청 타입
285+ * @see {KakaoAlimtalkTemplateRequest}
286+ * @param {string|undefined } channelId - 카카오 비즈니스 채널 ID
287+ * @param {string|undefined } channelGroupId - 카카오 비즈니스 채널 그룹 ID
288+ */
281289export type CreateKakaoAlimtalkTemplateRequest = KakaoAlimtalkTemplateRequest & {
282290 channelId ?: string ;
283291 channelGroupId ?: string ;
0 commit comments