@ingestkorea/client-sens
Version:
INGESTKOREA SDK Naver Cloud Platform SENS Client for Node.js.
42 lines (41 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SendAlimtalkCommand = void 0;
const index_js_1 = require("../models/index.js");
const SendAlimtalk_js_1 = require("../protocols/SendAlimtalk.js");
class SendAlimtalkCommand extends index_js_1.SensCommand {
constructor(input) {
super(input);
this.input = {
plusFriendId: input.plusFriendId,
templateCode: input.templateCode,
messages: resolveAlimtalkMessages(input.messages, {
maxRecipients: index_js_1.ALIMTALK_MAX_RECIPIENTS,
maxContentLength: index_js_1.ALIMTALK_MAX_CONTENT_LENGTH,
}),
};
this.serializer = SendAlimtalk_js_1.se_SendAlimtalkCommand;
this.deserializer = SendAlimtalk_js_1.de_SendAlimtalkCommand;
}
}
exports.SendAlimtalkCommand = SendAlimtalkCommand;
const resolveAlimtalkMessages = (messages, config) => {
if (!messages.length || messages.length > config.maxRecipients) {
throw new index_js_1.SensError({
code: -1,
type: "SDK.GENERAL_ERROR",
message: `알림톡 동시 발송은 최소 1명, 최대 ${config.maxRecipients}명까지 가능합니다.`,
});
}
const result = messages.map((message) => {
if (message.content.length > config.maxContentLength) {
throw new index_js_1.SensError({
code: -1,
type: "SDK.GENERAL_ERROR",
message: `알림톡 최대 길이는 ${config.maxContentLength}글자입니다`,
});
}
return Object.assign({ to: message.to.replace(/\-/gi, ""), content: message.content, useSmsFailover: message.useSmsFailover != undefined ? message.useSmsFailover : false }, (message.buttons && message.buttons.length && { buttons: message.buttons }));
});
return result;
};