Built motion from commit 10af8726.|2.6.34
[motion2.git] / server / api / smsMessage / smsMessage.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x760d=['Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','interface','format','SIP/%s','channel','motionChannel','EventManager','rejectmessage','SmsAccount','SmsAccountId','inspect','twilio','MessageSid','messageId','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','infobip','results','groupName','DELIVERED','util','lodash','ioredis','../../components/interaction/service','api','../../mysqldb','localhost','socket.io-emitter','redis','register','jayson/promise','client','http','../../config/logger','sms-interactions','request','then','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','status','json','offset','undefined','limit','count','set','update','destroy','end','sendStatus','name','send','index','map','SmsMessage','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','VIRTUAL','filter','where','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','describe','accept','sms','acceptMessage','reject','UserId','agent','SmsInteraction','interaction','get','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','RejectMessage','rejectMessage','ContactId'];(function(_0x35d46c,_0x43d5fd){var _0x18ebab=function(_0x53e160){while(--_0x53e160){_0x35d46c['push'](_0x35d46c['shift']());}};_0x18ebab(++_0x43d5fd);}(_0x760d,0x113));var _0xd760=function(_0x135129,_0x2a7b69){_0x135129=_0x135129-0x0;var _0x1fae7c=_0x760d[_0x135129];return _0x1fae7c;};'use strict';var util=require(_0xd760('0x0'));var _=require(_0xd760('0x1'));var Redis=require(_0xd760('0x2'));var interactionService=require(_0xd760('0x3'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xd760('0x4'));var config=require('../../config/environment');var db=require(_0xd760('0x5'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xd760('0x6'),'port':0x18eb});var socket=require(_0xd760('0x7'))(new Redis(config[_0xd760('0x8')]));require('./smsMessage.socket')[_0xd760('0x9')](socket);var jayson=require(_0xd760('0xa'));var client=jayson[_0xd760('0xb')][_0xd760('0xc')]({'port':0x232c});var client9002=jayson[_0xd760('0xb')]['http']({'port':0x232a});var interaction_log=require(_0xd760('0xd'))(_0xd760('0xe'));function respondWithRpcPromise(_0x5484dc,_0xf504f6,_0x35bb17,_0x1c3bf2){return new Promise(function(_0x330c29,_0x17890c){var _0x3f6b22=_0x1c3bf2||client;return _0x3f6b22[_0xd760('0xf')](_0x5484dc,_0x35bb17)[_0xd760('0x10')](function(_0x4d7d78){logger['info'](_0xd760('0x11'),_0xf504f6,_0xd760('0x12'));logger[_0xd760('0x13')](_0xd760('0x14'),_0xf504f6,'request\x20sent',JSON[_0xd760('0x15')](_0x4d7d78));if(_0x4d7d78[_0xd760('0x16')]){if(_0x4d7d78[_0xd760('0x16')][_0xd760('0x17')]===0x1f4){logger[_0xd760('0x16')](_0xd760('0x11'),_0xf504f6,_0x4d7d78['error']['message']);return _0x17890c(_0x4d7d78[_0xd760('0x16')][_0xd760('0x18')]);}logger['error']('SmsMessage,\x20%s,\x20%s',_0xf504f6,_0x4d7d78['error'][_0xd760('0x18')]);return _0x330c29(_0x4d7d78[_0xd760('0x16')][_0xd760('0x18')]);}else{logger[_0xd760('0x19')](_0xd760('0x11'),_0xf504f6,_0xd760('0x12'));_0x330c29(_0x4d7d78[_0xd760('0x1a')][_0xd760('0x18')]);}})['catch'](function(_0x248911){logger[_0xd760('0x16')](_0xd760('0x11'),_0xf504f6,_0x248911);_0x17890c(_0x248911);});});}function respondWithResult(_0x921022,_0x597580){_0x597580=_0x597580||0xc8;return function(_0x1974ac){if(_0x1974ac){return _0x921022[_0xd760('0x1b')](_0x597580)[_0xd760('0x1c')](_0x1974ac);}};}function respondWithFilteredResult(_0x5c2817,_0x388543){return function(_0x5d34b8){if(_0x5d34b8){var _0x1efadc=typeof _0x388543[_0xd760('0x1d')]===_0xd760('0x1e')&&typeof _0x388543[_0xd760('0x1f')]===_0xd760('0x1e');var _0x257fca=_0x5d34b8[_0xd760('0x20')];var _0x2b5c96=_0x1efadc?0x0:_0x388543[_0xd760('0x1d')];var _0x517818=_0x1efadc?_0x5d34b8[_0xd760('0x20')]:_0x388543[_0xd760('0x1d')]+_0x388543[_0xd760('0x1f')];var _0x45b7d4;if(_0x517818>=_0x257fca){_0x517818=_0x257fca;_0x45b7d4=0xc8;}else{_0x45b7d4=0xce;}_0x5c2817['status'](_0x45b7d4);return _0x5c2817[_0xd760('0x21')]('Content-Range',_0x2b5c96+'-'+_0x517818+'/'+_0x257fca)[_0xd760('0x1c')](_0x5d34b8);}return null;};}function saveUpdates(_0x1a49dc){return function(_0x579e14){if(_0x579e14){return _0x579e14[_0xd760('0x22')](_0x1a49dc)[_0xd760('0x10')](function(_0x3aff16){return _0x3aff16;});}return null;};}function removeEntity(_0x3ab549){return function(_0x1227ea){if(_0x1227ea){return _0x1227ea[_0xd760('0x23')]()[_0xd760('0x10')](function(){_0x3ab549['status'](0xcc)[_0xd760('0x24')]();});}};}function handleEntityNotFound(_0x1abd43){return function(_0x13d888){if(!_0x13d888){_0x1abd43[_0xd760('0x25')](0x194);}return _0x13d888;};}function handleError(_0x106e58,_0x33d606){_0x33d606=_0x33d606||0x1f4;return function(_0x45e000){logger[_0xd760('0x16')](_0x45e000['stack']);if(_0x45e000['name']){delete _0x45e000[_0xd760('0x26')];}_0x106e58[_0xd760('0x1b')](_0x33d606)[_0xd760('0x27')](_0x45e000);};}exports[_0xd760('0x28')]=function(_0x3e30cc,_0xb63472){var _0x85bffe={},_0x44ca40={},_0x387143={'count':0x0,'rows':[]};var _0x4dbe2c=_[_0xd760('0x29')](db[_0xd760('0x2a')][_0xd760('0x2b')],function(_0x24d8a5){return{'name':_0x24d8a5['fieldName'],'type':_0x24d8a5[_0xd760('0x2c')][_0xd760('0x2d')]};});_0x44ca40[_0xd760('0x2e')]=_['map'](_0x4dbe2c,'name');_0x44ca40[_0xd760('0x2f')]=_[_0xd760('0x30')](_0x3e30cc[_0xd760('0x2f')]);_0x44ca40[_0xd760('0x31')]=_['intersection'](_0x44ca40[_0xd760('0x2e')],_0x44ca40[_0xd760('0x2f')]);_0x85bffe[_0xd760('0x32')]=_[_0xd760('0x33')](_0x44ca40['model'],qs[_0xd760('0x34')](_0x3e30cc[_0xd760('0x2f')]['fields']));_0x85bffe[_0xd760('0x32')]=_0x85bffe['attributes'][_0xd760('0x35')]?_0x85bffe[_0xd760('0x32')]:_0x44ca40[_0xd760('0x2e')];if(!_0x3e30cc['query'][_0xd760('0x36')](_0xd760('0x37'))){_0x85bffe[_0xd760('0x1f')]=qs[_0xd760('0x1f')](_0x3e30cc[_0xd760('0x2f')][_0xd760('0x1f')]);_0x85bffe[_0xd760('0x1d')]=qs[_0xd760('0x1d')](_0x3e30cc[_0xd760('0x2f')][_0xd760('0x1d')]);}_0x85bffe[_0xd760('0x38')]=qs[_0xd760('0x39')](_0x3e30cc['query'][_0xd760('0x39')]);_0x85bffe['where']=qs['filters'](_[_0xd760('0x3a')](_0x3e30cc[_0xd760('0x2f')],_0x44ca40[_0xd760('0x31')]),_0x4dbe2c);if(_0x3e30cc[_0xd760('0x2f')]['filter']){_0x85bffe['where']=_[_0xd760('0x3b')](_0x85bffe['where'],{'$or':_[_0xd760('0x29')](_0x4dbe2c,function(_0x20a95f){if(_0x20a95f[_0xd760('0x2c')]!==_0xd760('0x3c')){var _0x58b39f={};_0x58b39f[_0x20a95f[_0xd760('0x26')]]={'$like':'%'+_0x3e30cc['query'][_0xd760('0x3d')]+'%'};return _0x58b39f;}})});}_0x85bffe=_[_0xd760('0x3b')]({},_0x85bffe,_0x3e30cc['options']);var _0x44d5c6={'where':_0x85bffe[_0xd760('0x3e')]};return db[_0xd760('0x2a')][_0xd760('0x20')](_0x44d5c6)['then'](function(_0x141154){_0x387143[_0xd760('0x20')]=_0x141154;if(_0x3e30cc[_0xd760('0x2f')][_0xd760('0x3f')]){_0x85bffe[_0xd760('0x40')]=[{'all':!![]}];}return db[_0xd760('0x2a')][_0xd760('0x41')](_0x85bffe);})[_0xd760('0x10')](function(_0x317d44){_0x387143[_0xd760('0x42')]=_0x317d44;return _0x387143;})[_0xd760('0x10')](respondWithFilteredResult(_0xb63472,_0x85bffe))[_0xd760('0x43')](handleError(_0xb63472,null));};exports[_0xd760('0x44')]=function(_0x1bfb27,_0x1d8521){var _0x12f16b={'raw':!![],'where':{'id':_0x1bfb27[_0xd760('0x45')]['id']}},_0x5a8a0d={};_0x5a8a0d[_0xd760('0x2e')]=_[_0xd760('0x30')](db[_0xd760('0x2a')]['rawAttributes']);_0x5a8a0d[_0xd760('0x2f')]=_[_0xd760('0x30')](_0x1bfb27['query']);_0x5a8a0d['filters']=_[_0xd760('0x33')](_0x5a8a0d[_0xd760('0x2e')],_0x5a8a0d[_0xd760('0x2f')]);_0x12f16b[_0xd760('0x32')]=_[_0xd760('0x33')](_0x5a8a0d[_0xd760('0x2e')],qs[_0xd760('0x34')](_0x1bfb27[_0xd760('0x2f')][_0xd760('0x34')]));_0x12f16b[_0xd760('0x32')]=_0x12f16b['attributes'][_0xd760('0x35')]?_0x12f16b[_0xd760('0x32')]:_0x5a8a0d[_0xd760('0x2e')];if(_0x1bfb27[_0xd760('0x2f')][_0xd760('0x3f')]){_0x12f16b['include']=[{'all':!![]}];}_0x12f16b=_[_0xd760('0x3b')]({},_0x12f16b,_0x1bfb27[_0xd760('0x46')]);return db[_0xd760('0x2a')][_0xd760('0x47')](_0x12f16b)['then'](handleEntityNotFound(_0x1d8521,null))[_0xd760('0x10')](respondWithResult(_0x1d8521,null))[_0xd760('0x43')](handleError(_0x1d8521,null));};exports['create']=function(_0x4dd9a7,_0x2ca70a){return db['SmsMessage'][_0xd760('0x48')](_0x4dd9a7[_0xd760('0x49')],{})[_0xd760('0x10')](respondWithResult(_0x2ca70a,0xc9))[_0xd760('0x43')](handleError(_0x2ca70a,null));};exports['update']=function(_0x536f24,_0x187621){if(_0x536f24['body']['id']){delete _0x536f24[_0xd760('0x49')]['id'];}return db[_0xd760('0x2a')][_0xd760('0x47')]({'where':{'id':_0x536f24[_0xd760('0x45')]['id']}})[_0xd760('0x10')](handleEntityNotFound(_0x187621,null))[_0xd760('0x10')](saveUpdates(_0x536f24[_0xd760('0x49')],null))[_0xd760('0x10')](respondWithResult(_0x187621,null))[_0xd760('0x43')](handleError(_0x187621,null));};exports[_0xd760('0x23')]=function(_0x4fbb25,_0xc33594){return db[_0xd760('0x2a')]['find']({'where':{'id':_0x4fbb25[_0xd760('0x45')]['id']}})[_0xd760('0x10')](handleEntityNotFound(_0xc33594,null))[_0xd760('0x10')](removeEntity(_0xc33594,null))['catch'](handleError(_0xc33594,null));};exports[_0xd760('0x4a')]=function(_0x4cd0a4,_0x2b9f89){return db['SmsMessage'][_0xd760('0x4a')]()['then'](respondWithResult(_0x2b9f89,null))[_0xd760('0x43')](handleError(_0x2b9f89,null));};exports[_0xd760('0x4b')]=function(_0x21d425,_0x3c84fb){var _0x450f66=_0xd760('0x4c');return interactionService[_0xd760('0x4d')](_0x21d425,_0x450f66)['then'](respondWithResult(_0x3c84fb,null))[_0xd760('0x43')](handleError(_0x3c84fb,null));};exports[_0xd760('0x4e')]=function(_0x5783c5,_0x1e9f65){var _0x1216c1={'agent':{},'channel':_0xd760('0x4c')};if(_0x5783c5[_0xd760('0x49')]['id']){delete _0x5783c5[_0xd760('0x49')]['id'];}_0x5783c5[_0xd760('0x49')][_0xd760('0x4f')]=_0x5783c5[_0xd760('0x49')][_0xd760('0x4f')]||_0x5783c5['user']['id'];_0x1216c1[_0xd760('0x50')]['id']=_0x5783c5['body'][_0xd760('0x4f')];return db[_0xd760('0x2a')][_0xd760('0x47')]({'where':{'id':_0x5783c5['params']['id'],'UserId':null}})[_0xd760('0x10')](handleEntityNotFound(_0x1e9f65,null))['then'](function(_0x1855e1){if(_0x1855e1){_0x1216c1[_0xd760('0x18')]=_0x1855e1['get']({'plain':!![]});return db[_0xd760('0x51')][_0xd760('0x47')]({'where':{'id':_0x1855e1['SmsInteractionId']}});}return null;})[_0xd760('0x10')](handleEntityNotFound(_0x1e9f65,null))[_0xd760('0x10')](function(_0x325c27){if(_0x325c27){_0x1216c1[_0xd760('0x52')]=_0x325c27[_0xd760('0x53')]({'plain':!![]});interaction_log['info'](_0xd760('0x54'),_0x5783c5['user']['id'],_0x5783c5[_0xd760('0x55')]['name'],_0x5783c5['user'][_0xd760('0x56')],_0x1216c1[_0xd760('0x52')]['id'],_0x5783c5[_0xd760('0x49')]?JSON['stringify'](_0x5783c5[_0xd760('0x49')]):_0xd760('0x57'));return respondWithRpcPromise(_0xd760('0x58'),_0xd760('0x59'),_0x1216c1);}return null;})[_0xd760('0x10')](function(_0x27ec18){var _0x510115='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x27ec18[_0xd760('0x18')][_0xd760('0x5a')];return db['sequelize'][_0xd760('0x2f')](_0x510115,{'type':db[_0xd760('0x5b')][_0xd760('0x5c')][_0xd760('0x5d')],'raw':!![]})[_0xd760('0x10')](function(_0x1b965d){return _0x1b965d;});})[_0xd760('0x10')](function(_0x3ccafa){if(_0x3ccafa){_0x1216c1[_0xd760('0x18')][_0xd760('0x5e')]=_0x3ccafa[0x0];if(!_0x5783c5[_0xd760('0x49')][_0xd760('0x4f')])return;return db[_0xd760('0x5f')][_0xd760('0x47')]({'where':{'id':_0x5783c5['body'][_0xd760('0x4f')],'role':_0xd760('0x50')},'attributes':['id',_0xd760('0x26'),_0xd760('0x60'),_0xd760('0x61'),_0xd760('0x62')],'raw':!![]});}return null;})[_0xd760('0x10')](function(_0x16efec){if(!_0x16efec)return null;_0x1216c1[_0xd760('0x18')][_0xd760('0x50')]=_0x16efec;return _0x1216c1;})[_0xd760('0x10')](function(_0x1e6734){if(_0x1e6734){_0x1e6734[_0xd760('0x18')][_0xd760('0x63')]=util[_0xd760('0x64')](_0xd760('0x65'),_0x5783c5['user'][_0xd760('0x26')]);_0x1e6734['message']['channel']=_0x1216c1[_0xd760('0x66')];_0x1e6734[_0xd760('0x18')][_0xd760('0x67')]=_0x1216c1['channel'];_0x1e6734[_0xd760('0x18')]['event']=_0xd760('0x4e');respondWithRpcPromise(_0xd760('0x68'),_0xd760('0x68'),{'event':_0xd760('0x69'),'message':_0x1e6734[_0xd760('0x18')]},client9002);return _0x1216c1;}return null;})[_0xd760('0x10')](respondWithResult(_0x1e9f65,null))['catch'](handleError(_0x1e9f65,null));};exports[_0xd760('0x1b')]=function(_0x34d5bf,_0x160e7c){if(_0x34d5bf[_0xd760('0x49')]['id']){delete _0x34d5bf['body']['id'];}var _0xa61c15;return db[_0xd760('0x2a')][_0xd760('0x47')]({'where':{'id':_0x34d5bf[_0xd760('0x45')]['id']}})[_0xd760('0x10')](handleEntityNotFound(_0x160e7c,null))['then'](function(_0x1db7fd){if(_0x1db7fd){_0xa61c15=_0x1db7fd;return db[_0xd760('0x6a')][_0xd760('0x47')]({'where':{'id':_0x1db7fd[_0xd760('0x6b')]}});}})[_0xd760('0x10')](handleEntityNotFound(_0x160e7c,null))[_0xd760('0x10')](function(_0x52dc96){if(_0x52dc96){logger[_0xd760('0x13')](_0xd760('0x14'),_0xd760('0x1b'),'received\x20delivery\x20report\x20from',_0x52dc96[_0xd760('0x2c')],util[_0xd760('0x6c')](_0x34d5bf['body'],{'showHidden':![],'depth':null}));switch(_0x52dc96[_0xd760('0x2c')]){case _0xd760('0x6d'):if(_0x34d5bf[_0xd760('0x49')][_0xd760('0x6e')]&&_0x34d5bf[_0xd760('0x49')]['MessageSid']===_0xa61c15[_0xd760('0x6f')]){return _0xa61c15[_0xd760('0x22')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0xd760('0x1b'),_0xd760('0x6d'),util[_0xd760('0x6c')](_0x34d5bf[_0xd760('0x49')],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0x34d5bf[_0xd760('0x49')][_0xd760('0x70')]&&_0x34d5bf[_0xd760('0x49')]['MessageUUID']===_0xa61c15[_0xd760('0x6f')]&&_[_0xd760('0x71')]([_0xd760('0x72'),_0xd760('0x73')],_0x34d5bf[_0xd760('0x49')][_0xd760('0x74')])>=0x0){return _0xa61c15['update']({'read':!![]});}else{logger[_0xd760('0x16')](_0xd760('0x75'),_0xd760('0x1b'),'plivio',util[_0xd760('0x6c')](_0x34d5bf[_0xd760('0x49')],{'showHidden':![],'depth':null}));}break;case _0xd760('0x76'):var _0x58a476=_0x34d5bf['body'][_0xd760('0x77')][0x0];if(_0x58a476[_0xd760('0x1b')][_0xd760('0x78')]===_0xd760('0x79')){return _0xa61c15['update']({'read':!![]});}else{logger[_0xd760('0x16')](_0xd760('0x75'),'status',_0xd760('0x76'),util[_0xd760('0x6c')](_0x34d5bf[_0xd760('0x49')],{'showHidden':![],'depth':null}));}break;}return _0xa61c15;}})[_0xd760('0x10')](respondWithResult(_0x160e7c,null))[_0xd760('0x43')](handleError(_0x160e7c,null));};