UNPKG

@ingestkorea/client-sens

Version:

INGESTKOREA SDK Naver Cloud Platform SENS Client for Node.js.

88 lines (87 loc) 4.2 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SendSMSCommand = void 0; const models_1 = require("../models"); const SendSMS_1 = require("../protocols/SendSMS"); const util_error_handler_1 = require("@ingestkorea/util-error-handler"); const constants_1 = require("./constants"); class SendSMSCommand extends models_1.SensCommand { constructor(input) { super(input); const { content, messageType: defaultMessageType } = resolveInputContent(input.content); const { messages, messageType: childMessageType } = resolveInputMessages(input.messages); this.input = Object.assign(Object.assign({}, input), { from: (0, constants_1.prettyPhoneNum)(input.from), content: content, type: defaultMessageType === childMessageType ? defaultMessageType : "LMS", messages: messages }); } serialize(input, config) { return __awaiter(this, void 0, void 0, function* () { if (!config.serviceId.sms) throw new util_error_handler_1.IngestkoreaError({ code: 400, type: "Bad Request", message: "Invalid Params", description: "Please Check SMS ServiceId", }); let request = yield (0, SendSMS_1.serializeIngestkorea_restJson_SendSMSCommand)(input, config); return request; }); } deserialize(response) { return __awaiter(this, void 0, void 0, function* () { let output = yield (0, SendSMS_1.deserializeIngestkorea_restJson_SendSMSCommand)(response); return output; }); } } exports.SendSMSCommand = SendSMSCommand; const getMessageType = (input) => { const contentLength = (0, constants_1.getContentLength)(input); if (!contentLength) throw new util_error_handler_1.IngestkoreaError({ code: 400, type: "Bad Request", message: "Invalid Request", description: `Please check input message`, }); if (contentLength > constants_1.LMS_MAX) throw new util_error_handler_1.IngestkoreaError({ code: 400, type: "Bad Request", message: "Invalid Request", description: `Maximum message length is ${constants_1.LMS_MAX}bytes`, }); return contentLength > constants_1.SMS_MAX ? "LMS" : "SMS"; }; const resolveInputContent = (content) => { const resolvedContent = (0, constants_1.trimText)(content); const messageType = getMessageType(resolvedContent); return { content: resolvedContent, messageType: messageType, }; }; const resolveInputMessages = (messages) => { let init = { messages: [], messageType: "SMS", }; const output = messages.reduce((acc, message) => { const to = (0, constants_1.prettyPhoneNum)(message.to); const content = message.content != undefined ? (0, constants_1.trimText)(message.content) : undefined; const subject = message.subject != undefined ? (0, constants_1.trimText)(message.subject) : undefined; const messageType = content != undefined ? getMessageType(content) : "SMS"; if (messageType == "LMS") acc.messageType = messageType; acc.messages.push(Object.assign(Object.assign({ to: to }, (content != undefined && { content: content })), (subject != undefined && acc.messageType === "LMS" && { subject: subject }))); return acc; }, init); return output; };