Built motion from commit 67e5df37.|2.0.66
[motion2.git] / server / api / smsInteraction / smsInteraction.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 _0xe13a=['dateEnd','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','pick','add','where','merge','map','filter','include','push','Tag','Tags','distinct','SmsMessage','Messages','direction','read','includeAll','User','name','CmContact','Contact','Owner','fullname','SmsAccount','Account','key','createdAt','color','tag','SmsInteraction','findAll','rows','show','find','catch','create','body','params','describe','addMessage','ids','omit','getMessages','order','sort','SmsInteractionId','$gte','split','format','options','addTags','setTags','removeTags','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','count','offset','set','Content-Range','json','apply','reject','update','destroy','then','error','send','index','model','keys','rawAttributes','query','dateStart'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0xe13a,0x178));var _0xae13=function(_0x8773bd,_0x28daba){_0x8773bd=_0x8773bd-0x0;var _0x2a05ba=_0xe13a[_0x8773bd];return _0x2a05ba;};'use strict';var jsonpatch=require('fast-json-patch');var rp=require(_0xae13('0x0'));var moment=require(_0xae13('0x1'));var BPromise=require(_0xae13('0x2'));var Mustache=require(_0xae13('0x3'));var util=require('util');var path=require(_0xae13('0x4'));var sox=require(_0xae13('0x5'));var csv=require(_0xae13('0x6'));var ejs=require(_0xae13('0x7'));var fs=require('fs');var _=require(_0xae13('0x8'));var squel=require(_0xae13('0x9'));var crypto=require(_0xae13('0xa'));var jsforce=require(_0xae13('0xb'));var deskjs=require(_0xae13('0xc'));var toCsv=require('to-csv');var querystring=require(_0xae13('0xd'));var Papa=require(_0xae13('0xe'));var qs=require(_0xae13('0xf'));var logger=require(_0xae13('0x10'))(_0xae13('0x11'));var utils=require(_0xae13('0x12'));var config=require(_0xae13('0x13'));var db=require(_0xae13('0x14'))['db'];var socket=require(_0xae13('0x15'))({'host':'localhost','port':0x18eb});require(_0xae13('0x16'))[_0xae13('0x17')](socket);function respondWithStatusCode(_0x3d6a85,_0x3a6d41){_0x3a6d41=_0x3a6d41||0xcc;return function(_0x14df2d){if(_0x14df2d){return _0x3d6a85[_0xae13('0x18')](_0x3a6d41);}return _0x3d6a85[_0xae13('0x19')](_0x3a6d41)['end']();};}function respondWithResult(_0x42d869,_0x159632){_0x159632=_0x159632||0xc8;return function(_0x5c61bb){if(_0x5c61bb){return _0x42d869['status'](_0x159632)['json'](_0x5c61bb);}};}function respondWithFilteredResult(_0x50f7c4,_0x52484b){return function(_0x26ff3e){if(_0x26ff3e){var _0x148186=_0x26ff3e[_0xae13('0x1a')],_0x44e141=_0x52484b['offset'],_0x90cdc1=_0x52484b[_0xae13('0x1b')]+_0x52484b['limit'],_0x537889;if(_0x90cdc1>=_0x148186){_0x90cdc1=_0x148186;_0x537889=0xc8;}else{_0x537889=0xce;}_0x50f7c4[_0xae13('0x19')](_0x537889);return _0x50f7c4[_0xae13('0x1c')](_0xae13('0x1d'),_0x44e141+'-'+_0x90cdc1+'/'+_0x148186)[_0xae13('0x1e')](_0x26ff3e);}return null;};}function patchUpdates(_0x1a9c07){return function(_0x1b33b7){try{jsonpatch[_0xae13('0x1f')](_0x1b33b7,_0x1a9c07,!![]);}catch(_0x326471){return BPromise[_0xae13('0x20')](_0x326471);}return _0x1b33b7['save']();};}function saveUpdates(_0x4462a5,_0x50eb6c){return function(_0x17a8c6){if(_0x17a8c6){return _0x17a8c6[_0xae13('0x21')](_0x4462a5)['then'](function(_0x25a195){return _0x25a195;});}return null;};}function removeEntity(_0x39d41c,_0x3e4bc8){return function(_0x240802){if(_0x240802){return _0x240802[_0xae13('0x22')]()[_0xae13('0x23')](function(){_0x39d41c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x149eda,_0x290fb9){return function(_0x51205e){if(!_0x51205e){_0x149eda[_0xae13('0x18')](0x194);}return _0x51205e;};}function handleError(_0x519a37,_0x13c2de){_0x13c2de=_0x13c2de||0x1f4;return function(_0x194437){logger[_0xae13('0x24')](_0x194437['stack']);if(_0x194437['name']){delete _0x194437['name'];}_0x519a37[_0xae13('0x19')](_0x13c2de)[_0xae13('0x25')](_0x194437);};}exports[_0xae13('0x26')]=function(_0x55a39b,_0x370874){var _0x517e71={},_0x3d0d60={},_0x5de054={'count':0x0,'rows':[]};_0x3d0d60[_0xae13('0x27')]=_[_0xae13('0x28')](db['SmsInteraction'][_0xae13('0x29')]);var _0x370ee0={'dateStart':_0x55a39b[_0xae13('0x2a')][_0xae13('0x2b')],'dateEnd':_0x55a39b['query'][_0xae13('0x2c')]};delete _0x55a39b[_0xae13('0x2a')][_0xae13('0x2b')];delete _0x55a39b[_0xae13('0x2a')][_0xae13('0x2c')];_0x3d0d60[_0xae13('0x2a')]=_[_0xae13('0x28')](_0x55a39b['query']);_0x3d0d60[_0xae13('0x2d')]=_['intersection'](_0x3d0d60[_0xae13('0x27')],_0x3d0d60[_0xae13('0x2a')]);_0x517e71[_0xae13('0x2e')]=_[_0xae13('0x2f')](_0x3d0d60[_0xae13('0x27')],qs[_0xae13('0x30')](_0x55a39b[_0xae13('0x2a')]['fields']));_0x517e71['attributes']=_0x517e71[_0xae13('0x2e')][_0xae13('0x31')]?_0x517e71[_0xae13('0x2e')]:_0x3d0d60[_0xae13('0x27')];if(!_0x55a39b[_0xae13('0x2a')][_0xae13('0x32')](_0xae13('0x33'))){_0x517e71[_0xae13('0x34')]=qs[_0xae13('0x34')](_0x55a39b[_0xae13('0x2a')]['limit']);_0x517e71[_0xae13('0x1b')]=qs[_0xae13('0x1b')](_0x55a39b[_0xae13('0x2a')]['offset']);}_0x517e71['order']=qs['sort'](_0x55a39b['query']['sort']);_0x517e71['where']=qs[_0xae13('0x2d')](_[_0xae13('0x35')](_0x55a39b[_0xae13('0x2a')],_0x3d0d60['filters']));if(_0x370ee0[_0xae13('0x2b')]){if(_0x370ee0[_0xae13('0x2c')]){_0x370ee0[_0xae13('0x2c')]=moment(_0x370ee0[_0xae13('0x2c')])[_0xae13('0x36')](0x1,'day');}else{_0x370ee0[_0xae13('0x2c')]=moment(_0x370ee0[_0xae13('0x2b')])[_0xae13('0x36')](0x1,'day');}_['merge'](_0x517e71[_0xae13('0x37')],{'createdAt':{'$gte':_0x370ee0[_0xae13('0x2b')],'$lte':_0x370ee0[_0xae13('0x2c')]}});}if(_0x55a39b[_0xae13('0x2a')]['filter']){_0x517e71[_0xae13('0x37')]=_[_0xae13('0x38')](_0x517e71['where'],{'$or':_[_0xae13('0x39')](_0x517e71[_0xae13('0x2e')],function(_0x5955dd){var _0x1bf423={};_0x1bf423[_0x5955dd]={'$like':'%'+_0x55a39b[_0xae13('0x2a')][_0xae13('0x3a')]+'%'};return _0x1bf423;})});}_0x517e71=_[_0xae13('0x38')]({},_0x517e71,_0x55a39b['options']);var _0x20e4ec={'where':_0x517e71[_0xae13('0x37')]};_0x20e4ec[_0xae13('0x3b')]=[];if(_0x55a39b[_0xae13('0x2a')]['tag']){_0x20e4ec[_0xae13('0x3b')][_0xae13('0x3c')]({'model':db[_0xae13('0x3d')],'as':_0xae13('0x3e'),'attributes':['id'],'where':{'id':_0x55a39b['query']['tag']},'required':!![]});_0x20e4ec[_0xae13('0x3f')]=!![];}if(_0x55a39b[_0xae13('0x2a')]['read']){_0x20e4ec[_0xae13('0x3b')]['push']({'model':db[_0xae13('0x40')],'as':_0xae13('0x41'),'attributes':['id',_0xae13('0x42'),'createdAt',_0xae13('0x43')],'where':{'direction':'in','read':_0x55a39b[_0xae13('0x2a')][_0xae13('0x43')]||![]},'required':!![]});_0x20e4ec[_0xae13('0x3f')]=!![];}return db['SmsInteraction'][_0xae13('0x1a')](_0x20e4ec)[_0xae13('0x23')](function(_0x133f00){_0x5de054[_0xae13('0x1a')]=_0x133f00;if(_0x55a39b[_0xae13('0x2a')][_0xae13('0x44')]){_0x517e71[_0xae13('0x3b')]=[{'model':db[_0xae13('0x45')],'as':'Users','required':![],'attributes':['id',_0xae13('0x46'),'fullname']},{'model':db[_0xae13('0x47')],'as':_0xae13('0x48'),'required':![]},{'model':db[_0xae13('0x45')],'as':_0xae13('0x49'),'attributes':['name',_0xae13('0x4a'),'internal'],'required':![]},{'model':db[_0xae13('0x4b')],'as':_0xae13('0x4c'),'attributes':['name',_0xae13('0x4d')],'required':![]},{'model':db[_0xae13('0x40')],'as':_0xae13('0x41'),'attributes':['id',_0xae13('0x42'),_0xae13('0x4e'),_0xae13('0x43')],'where':{'direction':'in','read':_0x55a39b['query'][_0xae13('0x43')]||![]},'required':_0x55a39b[_0xae13('0x2a')][_0xae13('0x43')]||![]},{'model':db[_0xae13('0x3d')],'as':_0xae13('0x3e'),'attributes':['id','name',_0xae13('0x4f')],'required':_0x55a39b[_0xae13('0x2a')][_0xae13('0x50')]?!![]:![]},{'model':db['Tag'],'as':'ThroughTags','attributes':['id','name','color'],'through':_0x55a39b[_0xae13('0x2a')]['tag']?{'attributes':[],'where':{'TagId':_0x55a39b[_0xae13('0x2a')]['tag']||undefined}}:{},'required':_0x55a39b[_0xae13('0x2a')][_0xae13('0x50')]?!![]:![]}];}return db[_0xae13('0x51')][_0xae13('0x52')](_0x517e71);})[_0xae13('0x23')](function(_0x53d341){_0x5de054[_0xae13('0x53')]=_0x53d341;return _0x5de054;})[_0xae13('0x23')](respondWithFilteredResult(_0x370874,_0x517e71))['catch'](handleError(_0x370874,null));};exports[_0xae13('0x54')]=function(_0x41913a,_0x49c43a){var _0x50610f={'raw':![],'where':{'id':_0x41913a['params']['id']}},_0x5b2125={};_0x5b2125[_0xae13('0x27')]=_[_0xae13('0x28')](db['SmsInteraction'][_0xae13('0x29')]);_0x5b2125[_0xae13('0x2a')]=_['keys'](_0x41913a[_0xae13('0x2a')]);_0x5b2125[_0xae13('0x2d')]=_[_0xae13('0x2f')](_0x5b2125[_0xae13('0x27')],_0x5b2125[_0xae13('0x2a')]);_0x50610f[_0xae13('0x2e')]=_[_0xae13('0x2f')](_0x5b2125[_0xae13('0x27')],qs[_0xae13('0x30')](_0x41913a[_0xae13('0x2a')]['fields']));_0x50610f[_0xae13('0x2e')]=_0x50610f[_0xae13('0x2e')][_0xae13('0x31')]?_0x50610f['attributes']:_0x5b2125[_0xae13('0x27')];if(_0x41913a['query'][_0xae13('0x44')]){_0x50610f[_0xae13('0x3b')]=[{'all':!![]}];}_0x50610f=_[_0xae13('0x38')]({},_0x50610f,_0x41913a['options']);return db['SmsInteraction'][_0xae13('0x55')](_0x50610f)[_0xae13('0x23')](handleEntityNotFound(_0x49c43a,null))[_0xae13('0x23')](respondWithResult(_0x49c43a,null))[_0xae13('0x56')](handleError(_0x49c43a,null));};exports[_0xae13('0x57')]=function(_0x175ee2,_0x3b9840){return db['SmsInteraction'][_0xae13('0x57')](_0x175ee2[_0xae13('0x58')],{})[_0xae13('0x23')](respondWithResult(_0x3b9840,0xc9))[_0xae13('0x56')](handleError(_0x3b9840,null));};exports[_0xae13('0x21')]=function(_0x67e5d3,_0x14f543){if(_0x67e5d3['body']['id']){delete _0x67e5d3[_0xae13('0x58')]['id'];}return db[_0xae13('0x51')]['find']({'where':{'id':_0x67e5d3[_0xae13('0x59')]['id']}})[_0xae13('0x23')](handleEntityNotFound(_0x14f543,null))[_0xae13('0x23')](saveUpdates(_0x67e5d3['body'],null))[_0xae13('0x23')](respondWithResult(_0x14f543,null))[_0xae13('0x56')](handleError(_0x14f543,null));};exports['destroy']=function(_0x3ee96f,_0xaabdd3){return db[_0xae13('0x51')][_0xae13('0x55')]({'where':{'id':_0x3ee96f[_0xae13('0x59')]['id']}})[_0xae13('0x23')](handleEntityNotFound(_0xaabdd3,null))['then'](removeEntity(_0xaabdd3,null))['catch'](handleError(_0xaabdd3,null));};exports[_0xae13('0x5a')]=function(_0x2dd9ad,_0x135704){return db[_0xae13('0x51')][_0xae13('0x5a')]()[_0xae13('0x23')](respondWithResult(_0x135704,null))['catch'](handleError(_0x135704,null));};exports[_0xae13('0x5b')]=function(_0x6c3a15,_0x586888,_0x507098){return db['SmsMessage'][_0xae13('0x55')]({'where':{'id':_0x6c3a15[_0xae13('0x59')]['id']}})[_0xae13('0x23')](handleEntityNotFound(_0x586888,null))[_0xae13('0x23')](function(_0xbe705f){if(_0xbe705f){return _0xbe705f[_0xae13('0x5b')](_0x6c3a15[_0xae13('0x58')][_0xae13('0x5c')],_[_0xae13('0x5d')](_0x6c3a15[_0xae13('0x58')],[_0xae13('0x5c'),'id'])||{});}})[_0xae13('0x23')](respondWithResult(_0x586888,null))[_0xae13('0x56')](handleError(_0x586888,null));};exports[_0xae13('0x5e')]=function(_0xc3ef7d,_0x4e623b,_0x1522c6){var _0x259f12={'raw':![],'where':{}};var _0x5b1611={};var _0x37dcdd={'count':0x0,'rows':[]};return db['SmsInteraction']['findOne']({'where':{'id':_0xc3ef7d[_0xae13('0x59')]['id']}})[_0xae13('0x23')](handleEntityNotFound(_0x4e623b,null))[_0xae13('0x23')](function(_0x1c4651){if(_0x1c4651){_0x5b1611[_0xae13('0x27')]=_[_0xae13('0x28')](db['SmsMessage']['rawAttributes']);_0x5b1611[_0xae13('0x2a')]=_[_0xae13('0x28')](_0xc3ef7d[_0xae13('0x2a')]);_0x5b1611['filters']=_[_0xae13('0x2f')](_0x5b1611['model'],_0x5b1611[_0xae13('0x2a')]);_0x259f12[_0xae13('0x2e')]=_[_0xae13('0x2f')](_0x5b1611[_0xae13('0x27')],qs[_0xae13('0x30')](_0xc3ef7d['query'][_0xae13('0x30')]));_0x259f12[_0xae13('0x2e')]=_0x259f12['attributes'][_0xae13('0x31')]?_0x259f12[_0xae13('0x2e')]:_0x5b1611[_0xae13('0x27')];if(!_0xc3ef7d[_0xae13('0x2a')][_0xae13('0x32')](_0xae13('0x33'))){_0x259f12['limit']=qs[_0xae13('0x34')](_0xc3ef7d['query'][_0xae13('0x34')]);_0x259f12['offset']=qs[_0xae13('0x1b')](_0xc3ef7d[_0xae13('0x2a')]['offset']);}_0x259f12[_0xae13('0x5f')]=qs[_0xae13('0x60')](_0xc3ef7d[_0xae13('0x2a')][_0xae13('0x60')]);_0x259f12[_0xae13('0x37')]=qs[_0xae13('0x2d')](_[_0xae13('0x35')](_0xc3ef7d[_0xae13('0x2a')],_0x5b1611['filters']));_0x259f12[_0xae13('0x37')][_0xae13('0x61')]=_0x1c4651['id'];if(_0xc3ef7d[_0xae13('0x2a')][_0xae13('0x3a')]){_0x259f12[_0xae13('0x37')]=_[_0xae13('0x38')](_0x259f12[_0xae13('0x37')],{'$or':_[_0xae13('0x39')](_0x259f12[_0xae13('0x2e')],function(_0x471f64){var _0x491f7f={};_0x491f7f[_0x471f64]={'$like':'%'+_0xc3ef7d[_0xae13('0x2a')]['filter']+'%'};return _0x491f7f;})});}if(_0xc3ef7d['query'][_0xae13('0x62')]){var _0x46b10f=_0xc3ef7d[_0xae13('0x2a')]['$gte'][_0xae13('0x63')](',');var _0x5d1b1c={};_0x5d1b1c[_0x46b10f[0x0]]={'$gte':moment(_0x46b10f[0x1])[_0xae13('0x64')]('YYYY-MM-DD\x20HH:mm:ss')};_0x259f12[_0xae13('0x37')]=_[_0xae13('0x38')](_0x259f12['where'],_0x5d1b1c);}_0x259f12=_[_0xae13('0x38')]({},_0x259f12,_0xc3ef7d[_0xae13('0x65')]);return db['SmsMessage']['count']({'where':_0x259f12[_0xae13('0x37')]})['then'](function(_0x5c32ad){_0x37dcdd[_0xae13('0x1a')]=_0x5c32ad;if(_0xc3ef7d['query'][_0xae13('0x44')]){_0x259f12['include']=[{'all':!![]}];}return db[_0xae13('0x40')][_0xae13('0x52')](_0x259f12);})[_0xae13('0x23')](function(_0x88d31){_0x37dcdd[_0xae13('0x53')]=_0x88d31;return _0x37dcdd;});}})[_0xae13('0x23')](respondWithFilteredResult(_0x4e623b,_0x259f12))['catch'](handleError(_0x4e623b,null));};exports[_0xae13('0x66')]=function(_0xa0d544,_0x5a5776,_0x5159f6){return db['SmsInteraction'][_0xae13('0x55')]({'where':{'id':_0xa0d544['params']['id']}})[_0xae13('0x23')](handleEntityNotFound(_0x5a5776,null))['then'](function(_0x59d799){if(_0x59d799){return _0x59d799[_0xae13('0x67')](_0xa0d544[_0xae13('0x58')][_0xae13('0x5c')],_[_0xae13('0x5d')](_0xa0d544[_0xae13('0x58')],[_0xae13('0x5c'),'id'])||{})['spread'](function(){return db[_0xae13('0x3d')][_0xae13('0x52')]({'attributes':['id',_0xae13('0x46'),_0xae13('0x4f')],'where':{'id':_0xa0d544['body'][_0xae13('0x5c')]}});})[_0xae13('0x23')](function(_0xb623d2){socket['emit']('smsInteractionTags:save',{'id':Number(_0xa0d544[_0xae13('0x59')]['id']),'tags':_0xb623d2||[]});return{'id':Number(_0xa0d544[_0xae13('0x59')]['id']),'tags':_0xb623d2||[]};});}})[_0xae13('0x23')](respondWithResult(_0x5a5776,null))[_0xae13('0x56')](handleError(_0x5a5776,null));};exports[_0xae13('0x68')]=function(_0x307a37,_0x1497a9,_0x18cec0){var _0x4fae2d;return db[_0xae13('0x51')][_0xae13('0x55')]({'where':{'id':_0x307a37['params']['id']}})[_0xae13('0x23')](handleEntityNotFound(_0x1497a9,null))[_0xae13('0x23')](function(_0x55a00a){if(_0x55a00a){return _0x55a00a[_0xae13('0x68')](_0x307a37[_0xae13('0x2a')]['ids']);}})[_0xae13('0x23')](respondWithStatusCode(_0x1497a9,null))[_0xae13('0x56')](handleError(_0x1497a9,null));};