Built motion from commit 3c2ce842.|2.6.31
[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 _0x2564=['sequelize','Sequelize','QueryTypes','SELECT','User','fullname','email','interface','format','channel','motionChannel','event','EventManager','SmsAccount','SmsAccountId','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','plivo','MessageUUID','sent','SmsAccount,\x20%s,\x20%s,\x20%s','infobip','results','groupName','DELIVERED','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','socket.io-emitter','./smsMessage.socket','register','jayson/promise','http','client','sms-interactions','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','json','offset','undefined','limit','count','set','Content-Range','update','sendStatus','stack','name','send','index','map','SmsMessage','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','filters','pick','filter','where','merge','VIRTUAL','options','include','findAll','show','params','includeAll','find','catch','create','body','destroy','describe','acceptMessage','reject','sms','UserId','user','agent','get','SmsInteraction','SmsInteractionId','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','null','rejectMessage','ContactId'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x2564,0x17b));var _0x4256=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x2564[_0x20a584];return _0x4b41a8;};'use strict';var util=require('util');var _=require(_0x4256('0x0'));var Redis=require(_0x4256('0x1'));var interactionService=require('../../components/interaction/service');var qs=require(_0x4256('0x2'));var logger=require(_0x4256('0x3'))(_0x4256('0x4'));var config=require(_0x4256('0x5'));var db=require('../../mysqldb')['db'];config[_0x4256('0x6')]=_[_0x4256('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4256('0x8'))(new Redis(config[_0x4256('0x6')]));require(_0x4256('0x9'))[_0x4256('0xa')](socket);var jayson=require(_0x4256('0xb'));var client=jayson['client'][_0x4256('0xc')]({'port':0x232c});var client9002=jayson[_0x4256('0xd')]['http']({'port':0x232a});var interaction_log=require(_0x4256('0x3'))(_0x4256('0xe'));function respondWithRpcPromise(_0x374d82,_0x1bf286,_0x1a1301,_0xf182be){return new Promise(function(_0x36ed79,_0x2b435c){var _0x4a926c=_0xf182be||client;return _0x4a926c[_0x4256('0xf')](_0x374d82,_0x1a1301)[_0x4256('0x10')](function(_0x1e09b1){logger[_0x4256('0x11')](_0x4256('0x12'),_0x1bf286,_0x4256('0x13'));logger['debug'](_0x4256('0x14'),_0x1bf286,'request\x20sent',JSON[_0x4256('0x15')](_0x1e09b1));if(_0x1e09b1[_0x4256('0x16')]){if(_0x1e09b1[_0x4256('0x16')][_0x4256('0x17')]===0x1f4){logger[_0x4256('0x16')](_0x4256('0x12'),_0x1bf286,_0x1e09b1[_0x4256('0x16')]['message']);return _0x2b435c(_0x1e09b1[_0x4256('0x16')][_0x4256('0x18')]);}logger[_0x4256('0x16')](_0x4256('0x12'),_0x1bf286,_0x1e09b1[_0x4256('0x16')][_0x4256('0x18')]);return _0x36ed79(_0x1e09b1[_0x4256('0x16')][_0x4256('0x18')]);}else{logger[_0x4256('0x11')](_0x4256('0x12'),_0x1bf286,'request\x20sent');_0x36ed79(_0x1e09b1[_0x4256('0x19')]['message']);}})['catch'](function(_0x3698eb){logger[_0x4256('0x16')](_0x4256('0x12'),_0x1bf286,_0x3698eb);_0x2b435c(_0x3698eb);});});}function respondWithResult(_0x5812b4,_0x2f903e){_0x2f903e=_0x2f903e||0xc8;return function(_0x2b5930){if(_0x2b5930){return _0x5812b4[_0x4256('0x1a')](_0x2f903e)[_0x4256('0x1b')](_0x2b5930);}};}function respondWithFilteredResult(_0x25985c,_0x2760fb){return function(_0x3bcc33){if(_0x3bcc33){var _0x5166e7=typeof _0x2760fb[_0x4256('0x1c')]===_0x4256('0x1d')&&typeof _0x2760fb[_0x4256('0x1e')]===_0x4256('0x1d');var _0x3c28a2=_0x3bcc33[_0x4256('0x1f')];var _0x1c59cf=_0x5166e7?0x0:_0x2760fb[_0x4256('0x1c')];var _0x5d41e7=_0x5166e7?_0x3bcc33[_0x4256('0x1f')]:_0x2760fb[_0x4256('0x1c')]+_0x2760fb['limit'];var _0x46e864;if(_0x5d41e7>=_0x3c28a2){_0x5d41e7=_0x3c28a2;_0x46e864=0xc8;}else{_0x46e864=0xce;}_0x25985c[_0x4256('0x1a')](_0x46e864);return _0x25985c[_0x4256('0x20')](_0x4256('0x21'),_0x1c59cf+'-'+_0x5d41e7+'/'+_0x3c28a2)[_0x4256('0x1b')](_0x3bcc33);}return null;};}function saveUpdates(_0x24296e){return function(_0x1fdd7b){if(_0x1fdd7b){return _0x1fdd7b[_0x4256('0x22')](_0x24296e)[_0x4256('0x10')](function(_0x2d2530){return _0x2d2530;});}return null;};}function removeEntity(_0x47d378){return function(_0x335c40){if(_0x335c40){return _0x335c40['destroy']()[_0x4256('0x10')](function(){_0x47d378[_0x4256('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d2fc9){return function(_0x3b064b){if(!_0x3b064b){_0x3d2fc9[_0x4256('0x23')](0x194);}return _0x3b064b;};}function handleError(_0x28f9e3,_0xc54189){_0xc54189=_0xc54189||0x1f4;return function(_0x5d6ea0){logger[_0x4256('0x16')](_0x5d6ea0[_0x4256('0x24')]);if(_0x5d6ea0[_0x4256('0x25')]){delete _0x5d6ea0['name'];}_0x28f9e3[_0x4256('0x1a')](_0xc54189)[_0x4256('0x26')](_0x5d6ea0);};}exports[_0x4256('0x27')]=function(_0x5351c0,_0x63f192){var _0x38952c={},_0x267630={},_0x16647f={'count':0x0,'rows':[]};var _0x3881f2=_[_0x4256('0x28')](db[_0x4256('0x29')][_0x4256('0x2a')],function(_0x100c3a){return{'name':_0x100c3a[_0x4256('0x2b')],'type':_0x100c3a[_0x4256('0x2c')][_0x4256('0x2d')]};});_0x267630[_0x4256('0x2e')]=_[_0x4256('0x28')](_0x3881f2,'name');_0x267630[_0x4256('0x2f')]=_[_0x4256('0x30')](_0x5351c0[_0x4256('0x2f')]);_0x267630['filters']=_['intersection'](_0x267630[_0x4256('0x2e')],_0x267630[_0x4256('0x2f')]);_0x38952c[_0x4256('0x31')]=_[_0x4256('0x32')](_0x267630[_0x4256('0x2e')],qs[_0x4256('0x33')](_0x5351c0[_0x4256('0x2f')][_0x4256('0x33')]));_0x38952c[_0x4256('0x31')]=_0x38952c['attributes'][_0x4256('0x34')]?_0x38952c[_0x4256('0x31')]:_0x267630[_0x4256('0x2e')];if(!_0x5351c0['query'][_0x4256('0x35')](_0x4256('0x36'))){_0x38952c[_0x4256('0x1e')]=qs[_0x4256('0x1e')](_0x5351c0[_0x4256('0x2f')][_0x4256('0x1e')]);_0x38952c[_0x4256('0x1c')]=qs[_0x4256('0x1c')](_0x5351c0[_0x4256('0x2f')][_0x4256('0x1c')]);}_0x38952c[_0x4256('0x37')]=qs['sort'](_0x5351c0['query']['sort']);_0x38952c['where']=qs[_0x4256('0x38')](_[_0x4256('0x39')](_0x5351c0[_0x4256('0x2f')],_0x267630[_0x4256('0x38')]),_0x3881f2);if(_0x5351c0[_0x4256('0x2f')][_0x4256('0x3a')]){_0x38952c[_0x4256('0x3b')]=_[_0x4256('0x3c')](_0x38952c[_0x4256('0x3b')],{'$or':_[_0x4256('0x28')](_0x3881f2,function(_0xa39f89){if(_0xa39f89[_0x4256('0x2c')]!==_0x4256('0x3d')){var _0x10e217={};_0x10e217[_0xa39f89[_0x4256('0x25')]]={'$like':'%'+_0x5351c0[_0x4256('0x2f')]['filter']+'%'};return _0x10e217;}})});}_0x38952c=_[_0x4256('0x3c')]({},_0x38952c,_0x5351c0[_0x4256('0x3e')]);var _0x459107={'where':_0x38952c[_0x4256('0x3b')]};return db[_0x4256('0x29')][_0x4256('0x1f')](_0x459107)[_0x4256('0x10')](function(_0x47f779){_0x16647f['count']=_0x47f779;if(_0x5351c0['query']['includeAll']){_0x38952c[_0x4256('0x3f')]=[{'all':!![]}];}return db[_0x4256('0x29')][_0x4256('0x40')](_0x38952c);})[_0x4256('0x10')](function(_0x4c9cc0){_0x16647f['rows']=_0x4c9cc0;return _0x16647f;})[_0x4256('0x10')](respondWithFilteredResult(_0x63f192,_0x38952c))['catch'](handleError(_0x63f192,null));};exports[_0x4256('0x41')]=function(_0xd1c308,_0x31415d){var _0x594e5d={'raw':!![],'where':{'id':_0xd1c308[_0x4256('0x42')]['id']}},_0x1f81da={};_0x1f81da[_0x4256('0x2e')]=_[_0x4256('0x30')](db[_0x4256('0x29')][_0x4256('0x2a')]);_0x1f81da['query']=_[_0x4256('0x30')](_0xd1c308[_0x4256('0x2f')]);_0x1f81da[_0x4256('0x38')]=_['intersection'](_0x1f81da['model'],_0x1f81da[_0x4256('0x2f')]);_0x594e5d[_0x4256('0x31')]=_[_0x4256('0x32')](_0x1f81da[_0x4256('0x2e')],qs[_0x4256('0x33')](_0xd1c308[_0x4256('0x2f')][_0x4256('0x33')]));_0x594e5d[_0x4256('0x31')]=_0x594e5d['attributes'][_0x4256('0x34')]?_0x594e5d[_0x4256('0x31')]:_0x1f81da[_0x4256('0x2e')];if(_0xd1c308[_0x4256('0x2f')][_0x4256('0x43')]){_0x594e5d[_0x4256('0x3f')]=[{'all':!![]}];}_0x594e5d=_['merge']({},_0x594e5d,_0xd1c308[_0x4256('0x3e')]);return db[_0x4256('0x29')][_0x4256('0x44')](_0x594e5d)[_0x4256('0x10')](handleEntityNotFound(_0x31415d,null))[_0x4256('0x10')](respondWithResult(_0x31415d,null))[_0x4256('0x45')](handleError(_0x31415d,null));};exports[_0x4256('0x46')]=function(_0x26bf7a,_0x285c64){return db['SmsMessage']['create'](_0x26bf7a[_0x4256('0x47')],{})['then'](respondWithResult(_0x285c64,0xc9))['catch'](handleError(_0x285c64,null));};exports['update']=function(_0x58ca09,_0x3429a9){if(_0x58ca09[_0x4256('0x47')]['id']){delete _0x58ca09[_0x4256('0x47')]['id'];}return db[_0x4256('0x29')][_0x4256('0x44')]({'where':{'id':_0x58ca09[_0x4256('0x42')]['id']}})['then'](handleEntityNotFound(_0x3429a9,null))[_0x4256('0x10')](saveUpdates(_0x58ca09[_0x4256('0x47')],null))['then'](respondWithResult(_0x3429a9,null))[_0x4256('0x45')](handleError(_0x3429a9,null));};exports[_0x4256('0x48')]=function(_0x5946e6,_0x49545d){return db[_0x4256('0x29')]['find']({'where':{'id':_0x5946e6[_0x4256('0x42')]['id']}})[_0x4256('0x10')](handleEntityNotFound(_0x49545d,null))[_0x4256('0x10')](removeEntity(_0x49545d,null))[_0x4256('0x45')](handleError(_0x49545d,null));};exports[_0x4256('0x49')]=function(_0x594f5f,_0x3760db){return db['SmsMessage']['describe']()['then'](respondWithResult(_0x3760db,null))[_0x4256('0x45')](handleError(_0x3760db,null));};exports['accept']=function(_0xb6aa34,_0x131a1d){var _0x40170c='sms';return interactionService[_0x4256('0x4a')](_0xb6aa34,_0x40170c)[_0x4256('0x10')](respondWithResult(_0x131a1d,null))[_0x4256('0x45')](handleError(_0x131a1d,null));};exports[_0x4256('0x4b')]=function(_0x3166d2,_0x4ada2b){var _0x22826e={'agent':{},'channel':_0x4256('0x4c')};if(_0x3166d2[_0x4256('0x47')]['id']){delete _0x3166d2[_0x4256('0x47')]['id'];}_0x3166d2[_0x4256('0x47')]['UserId']=_0x3166d2[_0x4256('0x47')][_0x4256('0x4d')]||_0x3166d2[_0x4256('0x4e')]['id'];_0x22826e[_0x4256('0x4f')]['id']=_0x3166d2['body'][_0x4256('0x4d')];return db[_0x4256('0x29')]['find']({'where':{'id':_0x3166d2[_0x4256('0x42')]['id'],'UserId':null}})[_0x4256('0x10')](handleEntityNotFound(_0x4ada2b,null))[_0x4256('0x10')](function(_0x375d7a){if(_0x375d7a){_0x22826e[_0x4256('0x18')]=_0x375d7a[_0x4256('0x50')]({'plain':!![]});return db[_0x4256('0x51')]['find']({'where':{'id':_0x375d7a[_0x4256('0x52')]}});}return null;})[_0x4256('0x10')](handleEntityNotFound(_0x4ada2b,null))[_0x4256('0x10')](function(_0x3c0b16){if(_0x3c0b16){_0x22826e['interaction']=_0x3c0b16[_0x4256('0x50')]({'plain':!![]});interaction_log['info'](_0x4256('0x53'),_0x3166d2['user']['id'],_0x3166d2['user'][_0x4256('0x25')],_0x3166d2[_0x4256('0x4e')][_0x4256('0x54')],_0x22826e[_0x4256('0x55')]['id'],_0x3166d2[_0x4256('0x47')]?JSON[_0x4256('0x15')](_0x3166d2['body']):_0x4256('0x56'));return respondWithRpcPromise('RejectMessage',_0x4256('0x57'),_0x22826e);}return null;})[_0x4256('0x10')](function(_0x2b15df){var _0x233939='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2b15df[_0x4256('0x18')][_0x4256('0x58')];return db[_0x4256('0x59')][_0x4256('0x2f')](_0x233939,{'type':db[_0x4256('0x5a')][_0x4256('0x5b')][_0x4256('0x5c')],'raw':!![]})['then'](function(_0x2ba224){return _0x2ba224;});})[_0x4256('0x10')](function(_0x9c5ab4){if(_0x9c5ab4){_0x22826e['message']['contact']=_0x9c5ab4[0x0];if(!_0x3166d2[_0x4256('0x47')]['UserId'])return;return db[_0x4256('0x5d')]['find']({'where':{'id':_0x3166d2[_0x4256('0x47')]['UserId'],'role':'agent'},'attributes':['id',_0x4256('0x25'),_0x4256('0x5e'),_0x4256('0x5f'),'internal'],'raw':!![]});}return null;})[_0x4256('0x10')](function(_0x5584d9){if(!_0x5584d9)return null;_0x22826e[_0x4256('0x18')][_0x4256('0x4f')]=_0x5584d9;return _0x22826e;})[_0x4256('0x10')](function(_0x2ea2d0){if(_0x2ea2d0){_0x2ea2d0[_0x4256('0x18')][_0x4256('0x60')]=util[_0x4256('0x61')]('SIP/%s',_0x3166d2[_0x4256('0x4e')][_0x4256('0x25')]);_0x2ea2d0[_0x4256('0x18')][_0x4256('0x62')]=_0x22826e[_0x4256('0x62')];_0x2ea2d0[_0x4256('0x18')][_0x4256('0x63')]=_0x22826e['channel'];_0x2ea2d0[_0x4256('0x18')][_0x4256('0x64')]=_0x4256('0x4b');respondWithRpcPromise('EventManager',_0x4256('0x65'),{'event':'rejectmessage','message':_0x2ea2d0['message']},client9002);return _0x22826e;}return null;})[_0x4256('0x10')](respondWithResult(_0x4ada2b,null))[_0x4256('0x45')](handleError(_0x4ada2b,null));};exports[_0x4256('0x1a')]=function(_0x1006dd,_0xb7b42d){if(_0x1006dd[_0x4256('0x47')]['id']){delete _0x1006dd['body']['id'];}var _0x565dec;return db[_0x4256('0x29')][_0x4256('0x44')]({'where':{'id':_0x1006dd[_0x4256('0x42')]['id']}})['then'](handleEntityNotFound(_0xb7b42d,null))[_0x4256('0x10')](function(_0x5a47e1){if(_0x5a47e1){_0x565dec=_0x5a47e1;return db[_0x4256('0x66')]['find']({'where':{'id':_0x5a47e1[_0x4256('0x67')]}});}})[_0x4256('0x10')](handleEntityNotFound(_0xb7b42d,null))[_0x4256('0x10')](function(_0x4351a8){if(_0x4351a8){logger['debug'](_0x4256('0x14'),_0x4256('0x1a'),_0x4256('0x68'),_0x4351a8[_0x4256('0x2c')],util[_0x4256('0x69')](_0x1006dd[_0x4256('0x47')],{'showHidden':![],'depth':null}));switch(_0x4351a8[_0x4256('0x2c')]){case _0x4256('0x6a'):if(_0x1006dd[_0x4256('0x47')][_0x4256('0x6b')]&&_0x1006dd[_0x4256('0x47')][_0x4256('0x6b')]===_0x565dec[_0x4256('0x6c')]){return _0x565dec['update']({'read':!![]});}else{logger[_0x4256('0x16')]('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0x4256('0x6a'),util[_0x4256('0x69')](_0x1006dd[_0x4256('0x47')],{'showHidden':![],'depth':null}));}break;case _0x4256('0x6d'):if(_0x1006dd[_0x4256('0x47')]['MessageUUID']&&_0x1006dd[_0x4256('0x47')][_0x4256('0x6e')]===_0x565dec[_0x4256('0x6c')]&&_['indexOf']([_0x4256('0x6f'),'delivered'],_0x1006dd['body']['Status'])>=0x0){return _0x565dec[_0x4256('0x22')]({'read':!![]});}else{logger['error'](_0x4256('0x70'),_0x4256('0x1a'),'plivio',util['inspect'](_0x1006dd[_0x4256('0x47')],{'showHidden':![],'depth':null}));}break;case _0x4256('0x71'):var _0x2b3933=_0x1006dd['body'][_0x4256('0x72')][0x0];if(_0x2b3933[_0x4256('0x1a')][_0x4256('0x73')]===_0x4256('0x74')){return _0x565dec[_0x4256('0x22')]({'read':!![]});}else{logger[_0x4256('0x16')](_0x4256('0x70'),'status',_0x4256('0x71'),util['inspect'](_0x1006dd[_0x4256('0x47')],{'showHidden':![],'depth':null}));}break;}return _0x565dec;}})['then'](respondWithResult(_0xb7b42d,null))[_0x4256('0x45')](handleError(_0xb7b42d,null));};