Built motion from commit (unavailable).|2.5.20
[motion2.git] / server / api / openchannelMessage / openchannelMessage.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 _0x1134=['openchannel','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','Contact','get','OpenchannelInteractionId','isNil','read1stAt','role','null','AcceptMessage','acceptMessage','manual','interface','format','SIP/%s','channel','event','EventManager','acceptmessage','openchannel-interactions','OpenchannelInteraction','interaction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','update','destroy','stack','name','send','map','OpenchannelMessage','rawAttributes','key','model','keys','filters','intersection','query','fields','attributes','hasOwnProperty','nolimit','limit','order','sort','where','filter','type','merge','options','includeAll','include','findAll','rows','catch','params','length','find','create','body','describe'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x1134,0x95));var _0x4113=function(_0x432abd,_0xee0d8){_0x432abd=_0x432abd-0x0;var _0x4985ae=_0x1134[_0x432abd];return _0x4985ae;};'use strict';var pdf=require(_0x4113('0x0'));var emlformat=require(_0x4113('0x1'));var rimraf=require(_0x4113('0x2'));var zipdir=require(_0x4113('0x3'));var jsonpatch=require(_0x4113('0x4'));var rp=require(_0x4113('0x5'));var moment=require(_0x4113('0x6'));var BPromise=require(_0x4113('0x7'));var Mustache=require(_0x4113('0x8'));var util=require(_0x4113('0x9'));var path=require(_0x4113('0xa'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4113('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4113('0xc'));var crypto=require('crypto');var jsforce=require(_0x4113('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x4113('0xe'));var querystring=require(_0x4113('0xf'));var Papa=require(_0x4113('0x10'));var Redis=require(_0x4113('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x4113('0x12'));var as=require(_0x4113('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4113('0x14'))(_0x4113('0x15'));var utils=require(_0x4113('0x16'));var config=require(_0x4113('0x17'));var licenseUtil=require(_0x4113('0x18'));var db=require('../../mysqldb')['db'];config[_0x4113('0x19')]=_[_0x4113('0x1a')](config['redis'],{'host':_0x4113('0x1b'),'port':0x18eb});var socket=require(_0x4113('0x1c'))(new Redis(config[_0x4113('0x19')]));require(_0x4113('0x1d'))[_0x4113('0x1e')](socket);var jayson=require(_0x4113('0x1f'));var client=jayson[_0x4113('0x20')][_0x4113('0x21')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x289ed4,_0x2f571e,_0x2e4823,_0x482a01){return new BPromise(function(_0x593766,_0x55bd6e){var _0x1f2706=_0x482a01||client;return _0x1f2706['request'](_0x289ed4,_0x2e4823)[_0x4113('0x22')](function(_0x515e06){logger[_0x4113('0x23')](_0x4113('0x24'),_0x2f571e,_0x4113('0x25'));logger['debug']('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x2f571e,_0x4113('0x25'),JSON[_0x4113('0x26')](_0x515e06));if(_0x515e06[_0x4113('0x27')]){if(_0x515e06['error'][_0x4113('0x28')]===0x1f4){logger[_0x4113('0x27')](_0x4113('0x24'),_0x2f571e,_0x515e06[_0x4113('0x27')][_0x4113('0x29')]);return _0x55bd6e(_0x515e06[_0x4113('0x27')][_0x4113('0x29')]);}logger[_0x4113('0x27')]('OpenchannelMessage,\x20%s,\x20%s',_0x2f571e,_0x515e06['error'][_0x4113('0x29')]);return _0x593766(_0x515e06[_0x4113('0x27')]['message']);}else{logger[_0x4113('0x23')](_0x4113('0x24'),_0x2f571e,'request\x20sent');_0x593766(_0x515e06['result'][_0x4113('0x29')]);}})['catch'](function(_0x47421d){logger[_0x4113('0x27')](_0x4113('0x24'),_0x2f571e,_0x47421d);_0x55bd6e(_0x47421d);});});}function respondWithStatusCode(_0xbe5bd2,_0x32d490){_0x32d490=_0x32d490||0xcc;return function(_0x4b924a){if(_0x4b924a){return _0xbe5bd2[_0x4113('0x2a')](_0x32d490);}return _0xbe5bd2[_0x4113('0x2b')](_0x32d490)[_0x4113('0x2c')]();};}function respondWithResult(_0x46c1cc,_0x35bcd2){_0x35bcd2=_0x35bcd2||0xc8;return function(_0x4e5f62){if(_0x4e5f62){return _0x46c1cc[_0x4113('0x2b')](_0x35bcd2)[_0x4113('0x2d')](_0x4e5f62);}};}function respondWithFilteredResult(_0x41ed44,_0x3acdf4){return function(_0x3a14b6){if(_0x3a14b6){var _0x508d0c=_0x3a14b6[_0x4113('0x2e')],_0x396a33=_0x3acdf4[_0x4113('0x2f')],_0x3a802c=_0x3acdf4[_0x4113('0x2f')]+_0x3acdf4['limit'],_0x3612f0;if(_0x3a802c>=_0x508d0c){_0x3a802c=_0x508d0c;_0x3612f0=0xc8;}else{_0x3612f0=0xce;}_0x41ed44[_0x4113('0x2b')](_0x3612f0);return _0x41ed44[_0x4113('0x30')](_0x4113('0x31'),_0x396a33+'-'+_0x3a802c+'/'+_0x508d0c)[_0x4113('0x2d')](_0x3a14b6);}return null;};}function patchUpdates(_0x38e154){return function(_0x12edee){try{jsonpatch[_0x4113('0x32')](_0x12edee,_0x38e154,!![]);}catch(_0x179ec5){return BPromise[_0x4113('0x33')](_0x179ec5);}return _0x12edee['save']();};}function saveUpdates(_0x3547dc,_0x5ba539){return function(_0x126238){if(_0x126238){return _0x126238[_0x4113('0x34')](_0x3547dc)['then'](function(_0x89546b){return _0x89546b;});}return null;};}function removeEntity(_0x132a83,_0x5b8362){return function(_0x15f426){if(_0x15f426){return _0x15f426[_0x4113('0x35')]()[_0x4113('0x22')](function(){_0x132a83[_0x4113('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2da304,_0x32be50){return function(_0x380668){if(!_0x380668){_0x2da304['sendStatus'](0x194);}return _0x380668;};}function handleError(_0x678f4e,_0x50dcc3){_0x50dcc3=_0x50dcc3||0x1f4;return function(_0x38a635){logger[_0x4113('0x27')](_0x38a635[_0x4113('0x36')]);if(_0x38a635[_0x4113('0x37')]){delete _0x38a635[_0x4113('0x37')];}_0x678f4e['status'](_0x50dcc3)[_0x4113('0x38')](_0x38a635);};}exports['index']=function(_0x2c7b11,_0x5c898d){var _0x2ea52c={},_0x42d085={},_0x310321={'count':0x0,'rows':[]};var _0x143f25=_[_0x4113('0x39')](db[_0x4113('0x3a')][_0x4113('0x3b')],function(_0x2118b0){return{'name':_0x2118b0['fieldName'],'type':_0x2118b0['type'][_0x4113('0x3c')]};});_0x42d085[_0x4113('0x3d')]=_[_0x4113('0x39')](_0x143f25,_0x4113('0x37'));_0x42d085['query']=_[_0x4113('0x3e')](_0x2c7b11['query']);_0x42d085[_0x4113('0x3f')]=_[_0x4113('0x40')](_0x42d085[_0x4113('0x3d')],_0x42d085[_0x4113('0x41')]);_0x2ea52c['attributes']=_[_0x4113('0x40')](_0x42d085[_0x4113('0x3d')],qs[_0x4113('0x42')](_0x2c7b11['query']['fields']));_0x2ea52c[_0x4113('0x43')]=_0x2ea52c[_0x4113('0x43')]['length']?_0x2ea52c[_0x4113('0x43')]:_0x42d085['model'];if(!_0x2c7b11[_0x4113('0x41')][_0x4113('0x44')](_0x4113('0x45'))){_0x2ea52c[_0x4113('0x46')]=qs[_0x4113('0x46')](_0x2c7b11[_0x4113('0x41')][_0x4113('0x46')]);_0x2ea52c[_0x4113('0x2f')]=qs['offset'](_0x2c7b11['query']['offset']);}_0x2ea52c[_0x4113('0x47')]=qs[_0x4113('0x48')](_0x2c7b11[_0x4113('0x41')]['sort']);_0x2ea52c[_0x4113('0x49')]=qs[_0x4113('0x3f')](_['pick'](_0x2c7b11[_0x4113('0x41')],_0x42d085[_0x4113('0x3f')]),_0x143f25);if(_0x2c7b11[_0x4113('0x41')][_0x4113('0x4a')]){_0x2ea52c[_0x4113('0x49')]=_['merge'](_0x2ea52c[_0x4113('0x49')],{'$or':_[_0x4113('0x39')](_0x143f25,function(_0x4ab05f){if(_0x4ab05f[_0x4113('0x4b')]!=='VIRTUAL'){var _0x19f151={};_0x19f151[_0x4ab05f[_0x4113('0x37')]]={'$like':'%'+_0x2c7b11[_0x4113('0x41')][_0x4113('0x4a')]+'%'};return _0x19f151;}})});}_0x2ea52c=_[_0x4113('0x4c')]({},_0x2ea52c,_0x2c7b11[_0x4113('0x4d')]);var _0x321037={'where':_0x2ea52c[_0x4113('0x49')]};return db['OpenchannelMessage']['count'](_0x321037)[_0x4113('0x22')](function(_0x4a50bb){_0x310321[_0x4113('0x2e')]=_0x4a50bb;if(_0x2c7b11[_0x4113('0x41')][_0x4113('0x4e')]){_0x2ea52c[_0x4113('0x4f')]=[{'all':!![]}];}return db[_0x4113('0x3a')][_0x4113('0x50')](_0x2ea52c);})[_0x4113('0x22')](function(_0x520d5a){_0x310321[_0x4113('0x51')]=_0x520d5a;return _0x310321;})[_0x4113('0x22')](respondWithFilteredResult(_0x5c898d,_0x2ea52c))[_0x4113('0x52')](handleError(_0x5c898d,null));};exports['show']=function(_0x73cf55,_0x14150a){var _0x28a817={'raw':!![],'where':{'id':_0x73cf55[_0x4113('0x53')]['id']}},_0x2547ed={};_0x2547ed[_0x4113('0x3d')]=_[_0x4113('0x3e')](db['OpenchannelMessage'][_0x4113('0x3b')]);_0x2547ed[_0x4113('0x41')]=_[_0x4113('0x3e')](_0x73cf55['query']);_0x2547ed['filters']=_[_0x4113('0x40')](_0x2547ed[_0x4113('0x3d')],_0x2547ed['query']);_0x28a817[_0x4113('0x43')]=_[_0x4113('0x40')](_0x2547ed[_0x4113('0x3d')],qs['fields'](_0x73cf55[_0x4113('0x41')][_0x4113('0x42')]));_0x28a817[_0x4113('0x43')]=_0x28a817[_0x4113('0x43')][_0x4113('0x54')]?_0x28a817[_0x4113('0x43')]:_0x2547ed[_0x4113('0x3d')];if(_0x73cf55['query'][_0x4113('0x4e')]){_0x28a817[_0x4113('0x4f')]=[{'all':!![]}];}_0x28a817=_['merge']({},_0x28a817,_0x73cf55[_0x4113('0x4d')]);return db[_0x4113('0x3a')][_0x4113('0x55')](_0x28a817)[_0x4113('0x22')](handleEntityNotFound(_0x14150a,null))[_0x4113('0x22')](respondWithResult(_0x14150a,null))[_0x4113('0x52')](handleError(_0x14150a,null));};exports[_0x4113('0x56')]=function(_0x593979,_0xc989bd){return db[_0x4113('0x3a')][_0x4113('0x56')](_0x593979[_0x4113('0x57')],{})[_0x4113('0x22')](respondWithResult(_0xc989bd,0xc9))[_0x4113('0x52')](handleError(_0xc989bd,null));};exports[_0x4113('0x34')]=function(_0x959b0c,_0x34ea2b){if(_0x959b0c['body']['id']){delete _0x959b0c[_0x4113('0x57')]['id'];}return db[_0x4113('0x3a')][_0x4113('0x55')]({'where':{'id':_0x959b0c[_0x4113('0x53')]['id']}})[_0x4113('0x22')](handleEntityNotFound(_0x34ea2b,null))[_0x4113('0x22')](saveUpdates(_0x959b0c[_0x4113('0x57')],null))[_0x4113('0x22')](respondWithResult(_0x34ea2b,null))['catch'](handleError(_0x34ea2b,null));};exports[_0x4113('0x35')]=function(_0x20369d,_0x5c9121){return db['OpenchannelMessage'][_0x4113('0x55')]({'where':{'id':_0x20369d[_0x4113('0x53')]['id']}})[_0x4113('0x22')](handleEntityNotFound(_0x5c9121,null))[_0x4113('0x22')](removeEntity(_0x5c9121,null))['catch'](handleError(_0x5c9121,null));};exports[_0x4113('0x58')]=function(_0x48ab1b,_0x223a76){return db[_0x4113('0x3a')][_0x4113('0x58')]()[_0x4113('0x22')](respondWithResult(_0x223a76,null))['catch'](handleError(_0x223a76,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports['accept']=function(_0x54d3a8,_0x52bb1d,_0x5b61e5){var _0x5f4113={'agent':{},'channel':_0x4113('0x59')};if(_0x54d3a8['body']['id']){delete _0x54d3a8[_0x4113('0x57')]['id'];}_0x54d3a8[_0x4113('0x57')][_0x4113('0x5a')]=!![];_0x54d3a8[_0x4113('0x57')][_0x4113('0x5b')]=moment()['format'](_0x4113('0x5c'));_0x54d3a8['body']['UserId']=_0x54d3a8[_0x4113('0x57')][_0x4113('0x5d')]||_0x54d3a8[_0x4113('0x5e')]['id'];_0x5f4113[_0x4113('0x5f')]['id']=_0x54d3a8[_0x4113('0x57')][_0x4113('0x5d')];return db['OpenchannelMessage'][_0x4113('0x55')]({'where':{'id':_0x54d3a8['params']['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0x4113('0x60')}]})[_0x4113('0x22')](handleEntityNotFound(_0x52bb1d,null))[_0x4113('0x22')](saveUpdates(_0x54d3a8['body'],null))[_0x4113('0x22')](function(_0x530e9b){if(_0x530e9b){_0x5f4113[_0x4113('0x29')]=_0x530e9b[_0x4113('0x61')]({'plain':!![]});return db['OpenchannelInteraction'][_0x4113('0x55')]({'where':{'id':_0x530e9b[_0x4113('0x62')]}});}return null;})[_0x4113('0x22')](handleEntityNotFound(_0x52bb1d,null))['then'](function(_0x75b066){if(_0x75b066){return _0x75b066[_0x4113('0x34')]({'UserId':_0x54d3a8[_0x4113('0x57')][_0x4113('0x5d')],'read1stAt':_[_0x4113('0x63')](_0x75b066[_0x4113('0x64')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x4451ef){if(_0x4451ef){_0x5f4113['interaction']=_0x4451ef[_0x4113('0x61')]({'plain':!![]});interaction_log[_0x4113('0x23')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x54d3a8['user']['id'],_0x54d3a8[_0x4113('0x5e')][_0x4113('0x37')],_0x54d3a8['user'][_0x4113('0x65')],_0x5f4113['interaction']['id'],_0x54d3a8[_0x4113('0x57')]?JSON[_0x4113('0x26')](_0x54d3a8['body']):_0x4113('0x66'));return respondWithRpcPromise(_0x4113('0x67'),_0x4113('0x68'),_0x5f4113);}return null;})[_0x4113('0x22')](function(_0x1d5611){if(_0x1d5611){if(_0x54d3a8[_0x4113('0x57')][_0x4113('0x69')]){_0x5f4113[_0x4113('0x29')][_0x4113('0x6a')]=util[_0x4113('0x6b')](_0x4113('0x6c'),_0x54d3a8[_0x4113('0x5e')][_0x4113('0x37')]);_0x5f4113[_0x4113('0x29')][_0x4113('0x6d')]=_0x5f4113['channel'];_0x5f4113[_0x4113('0x29')][_0x4113('0x6e')]='accept';return respondWithRpcPromise(_0x4113('0x6f'),_0x4113('0x6f'),{'event':_0x4113('0x70'),'message':_0x5f4113[_0x4113('0x29')]},client9002)[_0x4113('0x22')](function(){return _0x5f4113;});}return _0x5f4113;}return null;})[_0x4113('0x22')](respondWithResult(_0x52bb1d,null))[_0x4113('0x52')](handleError(_0x52bb1d,null));};var interaction_log=require(_0x4113('0x14'))(_0x4113('0x71'));exports[_0x4113('0x33')]=function(_0x57a4c7,_0x416078,_0x3d875b){var _0x8ad15d={'agent':{},'channel':_0x4113('0x59')};if(_0x57a4c7['body']['id']){delete _0x57a4c7['body']['id'];}_0x57a4c7['body'][_0x4113('0x5d')]=_0x57a4c7[_0x4113('0x57')]['UserId']||_0x57a4c7['user']['id'];_0x8ad15d[_0x4113('0x5f')]['id']=_0x57a4c7[_0x4113('0x57')][_0x4113('0x5d')];return db[_0x4113('0x3a')][_0x4113('0x55')]({'where':{'id':_0x57a4c7[_0x4113('0x53')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x416078,null))[_0x4113('0x22')](function(_0xb58740){if(_0xb58740){_0x8ad15d[_0x4113('0x29')]=_0xb58740[_0x4113('0x61')]({'plain':!![]});return db[_0x4113('0x72')][_0x4113('0x55')]({'where':{'id':_0xb58740[_0x4113('0x62')]}});}return null;})[_0x4113('0x22')](handleEntityNotFound(_0x416078,null))[_0x4113('0x22')](function(_0x47931d){if(_0x47931d){_0x8ad15d[_0x4113('0x73')]=_0x47931d[_0x4113('0x61')]({'plain':!![]});interaction_log[_0x4113('0x23')](_0x4113('0x74'),_0x57a4c7[_0x4113('0x5e')]['id'],_0x57a4c7['user'][_0x4113('0x37')],_0x57a4c7[_0x4113('0x5e')][_0x4113('0x65')],_0x8ad15d[_0x4113('0x73')]['id'],_0x57a4c7[_0x4113('0x57')]?JSON['stringify'](_0x57a4c7[_0x4113('0x57')]):_0x4113('0x66'));return respondWithRpcPromise(_0x4113('0x75'),_0x4113('0x76'),_0x8ad15d);}return null;})['then'](function(_0x4c2c68){if(_0x4c2c68){_0x4c2c68['message'][_0x4113('0x6a')]=util['format'](_0x4113('0x6c'),_0x57a4c7['user']['name']);_0x4c2c68['message'][_0x4113('0x6d')]=_0x8ad15d['channel'];_0x4c2c68['message'][_0x4113('0x6e')]=_0x4113('0x33');respondWithRpcPromise(_0x4113('0x6f'),_0x4113('0x6f'),{'event':'rejectmessage','message':_0x4c2c68[_0x4113('0x29')]},client9002);return _0x8ad15d;}return null;})[_0x4113('0x22')](respondWithResult(_0x416078,null))['catch'](handleError(_0x416078,null));};