UNPKG

mares-apistore-message-error

Version:

apistore api호출시 필요한 error handling module 입니다.

93 lines (83 loc) 2.66 kB
const _ = require('lodash'); const codes = { invalidUser: 'invalidUser', invalidParameter: 'invalidParameter', etc: 'etc', insufficient: 'insufficient', invalidRegistration: 'invalidRegistration', unknown: 'unknown', }; /** * apistore error를 mares error object로 변환해준다. * @param {Object} input - 외부 error * @param {'register' | 'sendSMS' | 'sendLMS' | 'sendMMS' | 'report'} type - 요청타입 register | sendSMS | sendLMS | sendMMS | report * @returns {{status: number}|{status: number, body: {rows: {domain: string, code: string, param: string, msg: string}[], count: number}}} - 변환된 mares 객체. */ const convert = (type, input) => { let rows = []; let code = _.get(input, 'result_code'); code = Number(code); let ret = { status: 400, body: {} }; if (type === 'sendSMS' || type === 'sendLMS') { switch (code) { case 100: rows.push({ domain: null, code: codes.invalidUser, msg: '사용자 에러입니다.', param: null }); break; case 300: rows.push({ domain: null, code: codes.invalidParameter, msg: '잘못된 파라미터입니다.', param: null }); break; case 400: rows.push({ domain: null, code: codes.etc, msg: '기타 에러입니다.', param: null }); break; case 500: rows.push({ domain: null, code: codes.invalidRegistration, msg: '등록되지 않은 발송번호입니다.', param: null }); break; case 600: rows.push({ domain: null, code: codes.insufficient, msg: '잔액이 부족합니다.', param: null }); break; default: rows.push({ domain: null, code: codes.unknown, msg: '알수없는 에러입니다. apistore에 문의가 필요합니다.', param: null }); break; } } else { } ret.body.rows = rows; return ret; }; module.exports = { convert, codes: codes };