02d45c02ba6be1f86d79a63a511eab5244d13613
[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 _0x4b8b=['type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','map','VIRTUAL','options','SmsMessage','includeAll','findAll','rows','show','params','include','find','create','body','destroy','describe','accept','acceptMessage','UserId','user','agent','get','SmsInteraction','SmsInteractionId','interaction','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','QueryTypes','SELECT','contact','fullname','email','format','channel','rejectmessage','received\x20delivery\x20report\x20from','twilio','MessageSid','SmsAccount,\x20%s,\x20%s,\x20%s','inspect','plivo','MessageUUID','messageId','sent','delivered','Status','plivio','infobip','results','groupName','DELIVERED','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','register','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','offset','undefined','count','set','Content-Range','json','update','status','end','sendStatus','name','send','rawAttributes','fieldName'];(function(_0x251fa9,_0x458b2e){var _0x49b60d=function(_0x4ed582){while(--_0x4ed582){_0x251fa9['push'](_0x251fa9['shift']());}};_0x49b60d(++_0x458b2e);}(_0x4b8b,0x133));var _0xb4b8=function(_0x5a9c0c,_0x4ec485){_0x5a9c0c=_0x5a9c0c-0x0;var _0x53c77d=_0x4b8b[_0x5a9c0c];return _0x53c77d;};'use strict';var util=require(_0xb4b8('0x0'));var _=require(_0xb4b8('0x1'));var Redis=require(_0xb4b8('0x2'));var interactionService=require(_0xb4b8('0x3'));var qs=require(_0xb4b8('0x4'));var logger=require(_0xb4b8('0x5'))(_0xb4b8('0x6'));var config=require(_0xb4b8('0x7'));var db=require(_0xb4b8('0x8'))['db'];config[_0xb4b8('0x9')]=_[_0xb4b8('0xa')](config[_0xb4b8('0x9')],{'host':_0xb4b8('0xb'),'port':0x18eb});var socket=require(_0xb4b8('0xc'))(new Redis(config[_0xb4b8('0x9')]));require(_0xb4b8('0xd'))[_0xb4b8('0xe')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb4b8('0xf')][_0xb4b8('0x10')]({'port':0x232c});var client9002=jayson[_0xb4b8('0xf')][_0xb4b8('0x10')]({'port':0x232a});var interaction_log=require(_0xb4b8('0x5'))('sms-interactions');function respondWithRpcPromise(_0x47240f,_0x391d44,_0x5eba26,_0x4361ce){return new Promise(function(_0x242a61,_0x13ad91){var _0x38ae7d=_0x4361ce||client;return _0x38ae7d[_0xb4b8('0x11')](_0x47240f,_0x5eba26)[_0xb4b8('0x12')](function(_0x3e7a46){logger[_0xb4b8('0x13')](_0xb4b8('0x14'),_0x391d44,_0xb4b8('0x15'));logger[_0xb4b8('0x16')](_0xb4b8('0x17'),_0x391d44,_0xb4b8('0x15'),JSON[_0xb4b8('0x18')](_0x3e7a46));if(_0x3e7a46[_0xb4b8('0x19')]){if(_0x3e7a46[_0xb4b8('0x19')][_0xb4b8('0x1a')]===0x1f4){logger['error'](_0xb4b8('0x14'),_0x391d44,_0x3e7a46['error'][_0xb4b8('0x1b')]);return _0x13ad91(_0x3e7a46[_0xb4b8('0x19')][_0xb4b8('0x1b')]);}logger['error']('SmsMessage,\x20%s,\x20%s',_0x391d44,_0x3e7a46[_0xb4b8('0x19')]['message']);return _0x242a61(_0x3e7a46[_0xb4b8('0x19')]['message']);}else{logger['info']('SmsMessage,\x20%s,\x20%s',_0x391d44,_0xb4b8('0x15'));_0x242a61(_0x3e7a46[_0xb4b8('0x1c')][_0xb4b8('0x1b')]);}})[_0xb4b8('0x1d')](function(_0x2568c6){logger[_0xb4b8('0x19')](_0xb4b8('0x14'),_0x391d44,_0x2568c6);_0x13ad91(_0x2568c6);});});}function respondWithResult(_0x5aabf2,_0xaf680f){_0xaf680f=_0xaf680f||0xc8;return function(_0xe444d9){if(_0xe444d9){return _0x5aabf2['status'](_0xaf680f)['json'](_0xe444d9);}};}function respondWithFilteredResult(_0x566495,_0x4f802b){return function(_0x572451){if(_0x572451){var _0xd3b4d8=typeof _0x4f802b[_0xb4b8('0x1e')]===_0xb4b8('0x1f')&&typeof _0x4f802b['limit']===_0xb4b8('0x1f');var _0x2fc96a=_0x572451['count'];var _0x19dd0d=_0xd3b4d8?0x0:_0x4f802b[_0xb4b8('0x1e')];var _0x17cdd8=_0xd3b4d8?_0x572451[_0xb4b8('0x20')]:_0x4f802b[_0xb4b8('0x1e')]+_0x4f802b['limit'];var _0x156cf6;if(_0x17cdd8>=_0x2fc96a){_0x17cdd8=_0x2fc96a;_0x156cf6=0xc8;}else{_0x156cf6=0xce;}_0x566495['status'](_0x156cf6);return _0x566495[_0xb4b8('0x21')](_0xb4b8('0x22'),_0x19dd0d+'-'+_0x17cdd8+'/'+_0x2fc96a)[_0xb4b8('0x23')](_0x572451);}return null;};}function saveUpdates(_0x405c18){return function(_0x49a879){if(_0x49a879){return _0x49a879[_0xb4b8('0x24')](_0x405c18)['then'](function(_0x53282e){return _0x53282e;});}return null;};}function removeEntity(_0x4c564e){return function(_0x47fe96){if(_0x47fe96){return _0x47fe96['destroy']()[_0xb4b8('0x12')](function(){_0x4c564e[_0xb4b8('0x25')](0xcc)[_0xb4b8('0x26')]();});}};}function handleEntityNotFound(_0x4b0a38){return function(_0x424d79){if(!_0x424d79){_0x4b0a38[_0xb4b8('0x27')](0x194);}return _0x424d79;};}function handleError(_0x4656b1,_0xb57bc3){_0xb57bc3=_0xb57bc3||0x1f4;return function(_0x1f65b6){logger[_0xb4b8('0x19')](_0x1f65b6['stack']);if(_0x1f65b6[_0xb4b8('0x28')]){delete _0x1f65b6['name'];}_0x4656b1[_0xb4b8('0x25')](_0xb57bc3)[_0xb4b8('0x29')](_0x1f65b6);};}exports['index']=function(_0x4755da,_0x4869cf){var _0x1b0fe0={},_0x10957f={},_0x5e67e5={'count':0x0,'rows':[]};var _0x3801cb=_['map'](db['SmsMessage'][_0xb4b8('0x2a')],function(_0xf40848){return{'name':_0xf40848[_0xb4b8('0x2b')],'type':_0xf40848[_0xb4b8('0x2c')][_0xb4b8('0x2d')]};});_0x10957f[_0xb4b8('0x2e')]=_['map'](_0x3801cb,_0xb4b8('0x28'));_0x10957f[_0xb4b8('0x2f')]=_[_0xb4b8('0x30')](_0x4755da[_0xb4b8('0x2f')]);_0x10957f[_0xb4b8('0x31')]=_['intersection'](_0x10957f[_0xb4b8('0x2e')],_0x10957f['query']);_0x1b0fe0[_0xb4b8('0x32')]=_[_0xb4b8('0x33')](_0x10957f[_0xb4b8('0x2e')],qs[_0xb4b8('0x34')](_0x4755da[_0xb4b8('0x2f')][_0xb4b8('0x34')]));_0x1b0fe0[_0xb4b8('0x32')]=_0x1b0fe0[_0xb4b8('0x32')][_0xb4b8('0x35')]?_0x1b0fe0[_0xb4b8('0x32')]:_0x10957f[_0xb4b8('0x2e')];if(!_0x4755da[_0xb4b8('0x2f')][_0xb4b8('0x36')](_0xb4b8('0x37'))){_0x1b0fe0[_0xb4b8('0x38')]=qs[_0xb4b8('0x38')](_0x4755da[_0xb4b8('0x2f')]['limit']);_0x1b0fe0[_0xb4b8('0x1e')]=qs[_0xb4b8('0x1e')](_0x4755da[_0xb4b8('0x2f')][_0xb4b8('0x1e')]);}_0x1b0fe0['order']=qs[_0xb4b8('0x39')](_0x4755da[_0xb4b8('0x2f')]['sort']);_0x1b0fe0[_0xb4b8('0x3a')]=qs[_0xb4b8('0x31')](_[_0xb4b8('0x3b')](_0x4755da['query'],_0x10957f[_0xb4b8('0x31')]),_0x3801cb);if(_0x4755da['query'][_0xb4b8('0x3c')]){_0x1b0fe0[_0xb4b8('0x3a')]=_[_0xb4b8('0x3d')](_0x1b0fe0['where'],{'$or':_[_0xb4b8('0x3e')](_0x3801cb,function(_0x40d40f){if(_0x40d40f[_0xb4b8('0x2c')]!==_0xb4b8('0x3f')){var _0x2fbf1f={};_0x2fbf1f[_0x40d40f[_0xb4b8('0x28')]]={'$like':'%'+_0x4755da['query']['filter']+'%'};return _0x2fbf1f;}})});}_0x1b0fe0=_[_0xb4b8('0x3d')]({},_0x1b0fe0,_0x4755da[_0xb4b8('0x40')]);var _0x7793fc={'where':_0x1b0fe0[_0xb4b8('0x3a')]};return db[_0xb4b8('0x41')]['count'](_0x7793fc)['then'](function(_0x1ec27){_0x5e67e5['count']=_0x1ec27;if(_0x4755da[_0xb4b8('0x2f')][_0xb4b8('0x42')]){_0x1b0fe0['include']=[{'all':!![]}];}return db[_0xb4b8('0x41')][_0xb4b8('0x43')](_0x1b0fe0);})[_0xb4b8('0x12')](function(_0x5aa053){_0x5e67e5[_0xb4b8('0x44')]=_0x5aa053;return _0x5e67e5;})['then'](respondWithFilteredResult(_0x4869cf,_0x1b0fe0))[_0xb4b8('0x1d')](handleError(_0x4869cf,null));};exports[_0xb4b8('0x45')]=function(_0x204759,_0x15560a){var _0xa4b1ab={'raw':!![],'where':{'id':_0x204759[_0xb4b8('0x46')]['id']}},_0x35e31a={};_0x35e31a[_0xb4b8('0x2e')]=_[_0xb4b8('0x30')](db[_0xb4b8('0x41')]['rawAttributes']);_0x35e31a[_0xb4b8('0x2f')]=_[_0xb4b8('0x30')](_0x204759[_0xb4b8('0x2f')]);_0x35e31a[_0xb4b8('0x31')]=_[_0xb4b8('0x33')](_0x35e31a[_0xb4b8('0x2e')],_0x35e31a[_0xb4b8('0x2f')]);_0xa4b1ab['attributes']=_['intersection'](_0x35e31a[_0xb4b8('0x2e')],qs['fields'](_0x204759[_0xb4b8('0x2f')][_0xb4b8('0x34')]));_0xa4b1ab[_0xb4b8('0x32')]=_0xa4b1ab[_0xb4b8('0x32')][_0xb4b8('0x35')]?_0xa4b1ab[_0xb4b8('0x32')]:_0x35e31a[_0xb4b8('0x2e')];if(_0x204759[_0xb4b8('0x2f')]['includeAll']){_0xa4b1ab[_0xb4b8('0x47')]=[{'all':!![]}];}_0xa4b1ab=_[_0xb4b8('0x3d')]({},_0xa4b1ab,_0x204759[_0xb4b8('0x40')]);return db[_0xb4b8('0x41')][_0xb4b8('0x48')](_0xa4b1ab)[_0xb4b8('0x12')](handleEntityNotFound(_0x15560a,null))[_0xb4b8('0x12')](respondWithResult(_0x15560a,null))[_0xb4b8('0x1d')](handleError(_0x15560a,null));};exports['create']=function(_0x2b6963,_0x40eb83){return db[_0xb4b8('0x41')][_0xb4b8('0x49')](_0x2b6963['body'],{})[_0xb4b8('0x12')](respondWithResult(_0x40eb83,0xc9))[_0xb4b8('0x1d')](handleError(_0x40eb83,null));};exports[_0xb4b8('0x24')]=function(_0x586b57,_0x1146d3){if(_0x586b57[_0xb4b8('0x4a')]['id']){delete _0x586b57['body']['id'];}return db[_0xb4b8('0x41')]['find']({'where':{'id':_0x586b57[_0xb4b8('0x46')]['id']}})['then'](handleEntityNotFound(_0x1146d3,null))['then'](saveUpdates(_0x586b57[_0xb4b8('0x4a')],null))[_0xb4b8('0x12')](respondWithResult(_0x1146d3,null))[_0xb4b8('0x1d')](handleError(_0x1146d3,null));};exports[_0xb4b8('0x4b')]=function(_0xe8e4bb,_0x3f7eeb){return db[_0xb4b8('0x41')][_0xb4b8('0x48')]({'where':{'id':_0xe8e4bb[_0xb4b8('0x46')]['id']}})[_0xb4b8('0x12')](handleEntityNotFound(_0x3f7eeb,null))['then'](removeEntity(_0x3f7eeb,null))[_0xb4b8('0x1d')](handleError(_0x3f7eeb,null));};exports['describe']=function(_0x35a94a,_0x48d617){return db[_0xb4b8('0x41')][_0xb4b8('0x4c')]()[_0xb4b8('0x12')](respondWithResult(_0x48d617,null))[_0xb4b8('0x1d')](handleError(_0x48d617,null));};exports[_0xb4b8('0x4d')]=function(_0x3c424a,_0x263b66){var _0x5ad84d='sms';return interactionService[_0xb4b8('0x4e')](_0x3c424a,_0x5ad84d)[_0xb4b8('0x12')](respondWithResult(_0x263b66,null))[_0xb4b8('0x1d')](handleError(_0x263b66,null));};exports['reject']=function(_0x2cce2b,_0x571e18){var _0x135748={'agent':{},'channel':'sms'};if(_0x2cce2b[_0xb4b8('0x4a')]['id']){delete _0x2cce2b['body']['id'];}_0x2cce2b[_0xb4b8('0x4a')][_0xb4b8('0x4f')]=_0x2cce2b['body'][_0xb4b8('0x4f')]||_0x2cce2b[_0xb4b8('0x50')]['id'];_0x135748[_0xb4b8('0x51')]['id']=_0x2cce2b[_0xb4b8('0x4a')]['UserId'];return db[_0xb4b8('0x41')][_0xb4b8('0x48')]({'where':{'id':_0x2cce2b[_0xb4b8('0x46')]['id'],'UserId':null}})[_0xb4b8('0x12')](handleEntityNotFound(_0x571e18,null))['then'](function(_0x444475){if(_0x444475){_0x135748['message']=_0x444475[_0xb4b8('0x52')]({'plain':!![]});return db[_0xb4b8('0x53')][_0xb4b8('0x48')]({'where':{'id':_0x444475[_0xb4b8('0x54')]}});}return null;})[_0xb4b8('0x12')](handleEntityNotFound(_0x571e18,null))[_0xb4b8('0x12')](function(_0x291585){if(_0x291585){_0x135748[_0xb4b8('0x55')]=_0x291585[_0xb4b8('0x52')]({'plain':!![]});interaction_log['info'](_0xb4b8('0x56'),_0x2cce2b[_0xb4b8('0x50')]['id'],_0x2cce2b[_0xb4b8('0x50')][_0xb4b8('0x28')],_0x2cce2b[_0xb4b8('0x50')]['role'],_0x135748[_0xb4b8('0x55')]['id'],_0x2cce2b['body']?JSON[_0xb4b8('0x18')](_0x2cce2b[_0xb4b8('0x4a')]):_0xb4b8('0x57'));return respondWithRpcPromise(_0xb4b8('0x58'),_0xb4b8('0x59'),_0x135748);}return null;})[_0xb4b8('0x12')](function(_0x233ce1){var _0x1915ea=_0xb4b8('0x5a')+_0x233ce1[_0xb4b8('0x1b')][_0xb4b8('0x5b')];return db[_0xb4b8('0x5c')]['query'](_0x1915ea,{'type':db['Sequelize'][_0xb4b8('0x5d')][_0xb4b8('0x5e')],'raw':!![]})[_0xb4b8('0x12')](function(_0xdf821a){return _0xdf821a;});})[_0xb4b8('0x12')](function(_0x3ee6ca){if(_0x3ee6ca){_0x135748['message'][_0xb4b8('0x5f')]=_0x3ee6ca[0x0];if(!_0x2cce2b[_0xb4b8('0x4a')]['UserId'])return;return db['User'][_0xb4b8('0x48')]({'where':{'id':_0x2cce2b[_0xb4b8('0x4a')][_0xb4b8('0x4f')],'role':_0xb4b8('0x51')},'attributes':['id',_0xb4b8('0x28'),_0xb4b8('0x60'),_0xb4b8('0x61'),'internal'],'raw':!![]});}return null;})[_0xb4b8('0x12')](function(_0x4d3cd0){if(!_0x4d3cd0)return null;_0x135748[_0xb4b8('0x1b')][_0xb4b8('0x51')]=_0x4d3cd0;return _0x135748;})[_0xb4b8('0x12')](function(_0xbee00b){if(_0xbee00b){_0xbee00b[_0xb4b8('0x1b')]['interface']=util[_0xb4b8('0x62')]('SIP/%s',_0x2cce2b[_0xb4b8('0x50')][_0xb4b8('0x28')]);_0xbee00b['message']['channel']=_0x135748[_0xb4b8('0x63')];_0xbee00b[_0xb4b8('0x1b')]['motionChannel']=_0x135748[_0xb4b8('0x63')];_0xbee00b[_0xb4b8('0x1b')]['event']='reject';respondWithRpcPromise('EventManager','EventManager',{'event':_0xb4b8('0x64'),'message':_0xbee00b[_0xb4b8('0x1b')]},client9002);return _0x135748;}return null;})[_0xb4b8('0x12')](respondWithResult(_0x571e18,null))[_0xb4b8('0x1d')](handleError(_0x571e18,null));};exports[_0xb4b8('0x25')]=function(_0x5d2965,_0x576759){if(_0x5d2965[_0xb4b8('0x4a')]['id']){delete _0x5d2965['body']['id'];}var _0x3631e1;return db[_0xb4b8('0x41')]['find']({'where':{'id':_0x5d2965['params']['id']}})[_0xb4b8('0x12')](handleEntityNotFound(_0x576759,null))[_0xb4b8('0x12')](function(_0x3a608e){if(_0x3a608e){_0x3631e1=_0x3a608e;return db['SmsAccount'][_0xb4b8('0x48')]({'where':{'id':_0x3a608e['SmsAccountId']}});}})[_0xb4b8('0x12')](handleEntityNotFound(_0x576759,null))[_0xb4b8('0x12')](function(_0x4c416d){if(_0x4c416d){logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xb4b8('0x25'),_0xb4b8('0x65'),_0x4c416d[_0xb4b8('0x2c')],util['inspect'](_0x5d2965[_0xb4b8('0x4a')],{'showHidden':![],'depth':null}));switch(_0x4c416d[_0xb4b8('0x2c')]){case _0xb4b8('0x66'):if(_0x5d2965[_0xb4b8('0x4a')][_0xb4b8('0x67')]&&_0x5d2965[_0xb4b8('0x4a')]['MessageSid']===_0x3631e1['messageId']){return _0x3631e1[_0xb4b8('0x24')]({'read':!![]});}else{logger[_0xb4b8('0x19')](_0xb4b8('0x68'),_0xb4b8('0x25'),_0xb4b8('0x66'),util[_0xb4b8('0x69')](_0x5d2965['body'],{'showHidden':![],'depth':null}));}break;case _0xb4b8('0x6a'):if(_0x5d2965[_0xb4b8('0x4a')]['MessageUUID']&&_0x5d2965[_0xb4b8('0x4a')][_0xb4b8('0x6b')]===_0x3631e1[_0xb4b8('0x6c')]&&_['indexOf']([_0xb4b8('0x6d'),_0xb4b8('0x6e')],_0x5d2965['body'][_0xb4b8('0x6f')])>=0x0){return _0x3631e1[_0xb4b8('0x24')]({'read':!![]});}else{logger[_0xb4b8('0x19')](_0xb4b8('0x68'),_0xb4b8('0x25'),_0xb4b8('0x70'),util[_0xb4b8('0x69')](_0x5d2965[_0xb4b8('0x4a')],{'showHidden':![],'depth':null}));}break;case _0xb4b8('0x71'):var _0x1f5039=_0x5d2965['body'][_0xb4b8('0x72')][0x0];if(_0x1f5039[_0xb4b8('0x25')][_0xb4b8('0x73')]===_0xb4b8('0x74')){return _0x3631e1[_0xb4b8('0x24')]({'read':!![]});}else{logger[_0xb4b8('0x19')](_0xb4b8('0x68'),'status',_0xb4b8('0x71'),util[_0xb4b8('0x69')](_0x5d2965[_0xb4b8('0x4a')],{'showHidden':![],'depth':null}));}break;}return _0x3631e1;}})[_0xb4b8('0x12')](respondWithResult(_0x576759,null))['catch'](handleError(_0x576759,null));};