· 6 years ago · May 05, 2019, 08:10 PM
1const CustomError = require('@errors')
2const axios = require('axios')
3const md5 = require('md5')
4const qs = require('qs')
5const urlencode = require('urlencode')
6
7const addOne = (options = {}) => {
8 if (process.env.NODE_ENV !== 'production')
9 return {
10 data: { VirtualNumber: '0508-0000-0000w' }
11 }
12
13 const { tel, memo } = options
14 if (!tel) return new CustomError('tel is required.')
15
16 const SYSTEMID = process.env.INFO_PEELER_SYSTEM_ID
17 const SecretKey = process.env.INFO_PEELER_SECRET_KEY
18 const PhoneNumber = tel.replace(/[^\d]/g, '')
19 const ETCValue = urlencode(memo, 'euc-kr')
20 const Sig = md5(SecretKey + SYSTEMID)
21 const payload = {
22 SYSTEMID,
23 ActionType: 1,
24 PhoneNumber,
25 ETCValue,
26 Sig
27 }
28
29 const axiosOptions = {
30 method: 'get',
31 url: `${process.env.INFO_PEELER_API_URL}?${qs.stringify(payload, { encode: false })}`
32 }
33 return axios(axiosOptions)
34}
35
36const removeOne = (options = {}) => {
37 if (process.env.NODE_ENV !== 'production') return { data: {} }
38
39 const { tel } = options
40 if (!tel) return new CustomError('tel is required.')
41
42 const SYSTEMID = process.env.INFO_PEELER_SYSTEM_ID
43 const SecretKey = process.env.INFO_PEELER_SECRET_KEY
44 const VirtualNumber = tel.replace(/[^\d]/g, '')
45 const Sig = md5(SecretKey + SYSTEMID + VirtualNumber)
46 const payload = {
47 SYSTEMID,
48 ActionType: 2,
49 VirtualNumber,
50 Sig
51 }
52
53 const axiosOptions = {
54 method: 'get',
55 headers: {
56 'Content-type': 'text/html; charset=utf-8'
57 },
58 url: process.env.INFO_PEELER_API_URL,
59 params: payload
60 }
61 return axios(axiosOptions)
62}
63
64module.exports = {
65 addOne,
66 removeOne
67}