Built motion from commit (unavailable).|2.5.30
[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 _0x9ab6=['path','sox','ejs','fs-extra','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','name','send','map','OpenchannelMessage','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','rawAttributes','options','create','update','body','find','params','openchannel-interactions','accept','openchannel','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','reject','rejectmessage','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util'];(function(_0x389832,_0x10a4a9){var _0x59429e=function(_0x5f3562){while(--_0x5f3562){_0x389832['push'](_0x389832['shift']());}};_0x59429e(++_0x10a4a9);}(_0x9ab6,0x16a));var _0x69ab=function(_0x46d0c9,_0x526bfa){_0x46d0c9=_0x46d0c9-0x0;var _0x174506=_0x9ab6[_0x46d0c9];return _0x174506;};'use strict';var emlformat=require(_0x69ab('0x0'));var rimraf=require(_0x69ab('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x69ab('0x2'));var rp=require(_0x69ab('0x3'));var moment=require('moment');var BPromise=require(_0x69ab('0x4'));var Mustache=require(_0x69ab('0x5'));var util=require(_0x69ab('0x6'));var path=require(_0x69ab('0x7'));var sox=require(_0x69ab('0x8'));var csv=require('to-csv');var ejs=require(_0x69ab('0x9'));var fs=require('fs');var fs_extra=require(_0x69ab('0xa'));var _=require('lodash');var squel=require(_0x69ab('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x69ab('0xc'));var toCsv=require(_0x69ab('0xd'));var querystring=require(_0x69ab('0xe'));var Papa=require(_0x69ab('0xf'));var Redis=require('ioredis');var authService=require(_0x69ab('0x10'));var qs=require(_0x69ab('0x11'));var as=require(_0x69ab('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x69ab('0x13'))(_0x69ab('0x14'));var utils=require(_0x69ab('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x69ab('0x16'));var db=require('../../mysqldb')['db'];config[_0x69ab('0x17')]=_[_0x69ab('0x18')](config[_0x69ab('0x17')],{'host':_0x69ab('0x19'),'port':0x18eb});var socket=require(_0x69ab('0x1a'))(new Redis(config[_0x69ab('0x17')]));require(_0x69ab('0x1b'))[_0x69ab('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0x69ab('0x1d')][_0x69ab('0x1e')]({'port':0x232c});var client9002=jayson['client'][_0x69ab('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x39c808,_0x328f2f,_0x3f46ab,_0x325884){return new BPromise(function(_0x251eec,_0x765820){var _0x30bbe5=_0x325884||client;return _0x30bbe5[_0x69ab('0x1f')](_0x39c808,_0x3f46ab)[_0x69ab('0x20')](function(_0x9041b4){logger[_0x69ab('0x21')](_0x69ab('0x22'),_0x328f2f,_0x69ab('0x23'));logger['debug']('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x328f2f,_0x69ab('0x23'),JSON[_0x69ab('0x24')](_0x9041b4));if(_0x9041b4[_0x69ab('0x25')]){if(_0x9041b4['error'][_0x69ab('0x26')]===0x1f4){logger[_0x69ab('0x25')](_0x69ab('0x22'),_0x328f2f,_0x9041b4['error'][_0x69ab('0x27')]);return _0x765820(_0x9041b4[_0x69ab('0x25')][_0x69ab('0x27')]);}logger[_0x69ab('0x25')](_0x69ab('0x22'),_0x328f2f,_0x9041b4['error'][_0x69ab('0x27')]);return _0x251eec(_0x9041b4[_0x69ab('0x25')][_0x69ab('0x27')]);}else{logger[_0x69ab('0x21')](_0x69ab('0x22'),_0x328f2f,'request\x20sent');_0x251eec(_0x9041b4[_0x69ab('0x28')][_0x69ab('0x27')]);}})[_0x69ab('0x29')](function(_0x537814){logger[_0x69ab('0x25')](_0x69ab('0x22'),_0x328f2f,_0x537814);_0x765820(_0x537814);});});}function respondWithStatusCode(_0x53c27a,_0x370ba8){_0x370ba8=_0x370ba8||0xcc;return function(_0x3dfe4d){if(_0x3dfe4d){return _0x53c27a[_0x69ab('0x2a')](_0x370ba8);}return _0x53c27a[_0x69ab('0x2b')](_0x370ba8)[_0x69ab('0x2c')]();};}function respondWithResult(_0x3c5beb,_0x25b332){_0x25b332=_0x25b332||0xc8;return function(_0x572a6c){if(_0x572a6c){return _0x3c5beb[_0x69ab('0x2b')](_0x25b332)[_0x69ab('0x2d')](_0x572a6c);}};}function respondWithFilteredResult(_0x421aa6,_0x4232f9){return function(_0x64d3a9){if(_0x64d3a9){var _0x48ebfc=typeof _0x4232f9[_0x69ab('0x2e')]===_0x69ab('0x2f')&&typeof _0x4232f9[_0x69ab('0x30')]===_0x69ab('0x2f');var _0x5ed5cf=_0x64d3a9[_0x69ab('0x31')];var _0x2638fd=_0x48ebfc?0x0:_0x4232f9[_0x69ab('0x2e')];var _0x373feb=_0x48ebfc?_0x64d3a9['count']:_0x4232f9[_0x69ab('0x2e')]+_0x4232f9['limit'];var _0x19eab3;if(_0x373feb>=_0x5ed5cf){_0x373feb=_0x5ed5cf;_0x19eab3=0xc8;}else{_0x19eab3=0xce;}_0x421aa6['status'](_0x19eab3);return _0x421aa6[_0x69ab('0x32')](_0x69ab('0x33'),_0x2638fd+'-'+_0x373feb+'/'+_0x5ed5cf)[_0x69ab('0x2d')](_0x64d3a9);}return null;};}function patchUpdates(_0x5ee1c9){return function(_0x333700){try{jsonpatch[_0x69ab('0x34')](_0x333700,_0x5ee1c9,!![]);}catch(_0x4ccc5a){return BPromise['reject'](_0x4ccc5a);}return _0x333700[_0x69ab('0x35')]();};}function saveUpdates(_0x10a099,_0x3df00b){return function(_0xd1e55c){if(_0xd1e55c){return _0xd1e55c['update'](_0x10a099)[_0x69ab('0x20')](function(_0x1793a7){return _0x1793a7;});}return null;};}function removeEntity(_0x48d2cf,_0x5602b3){return function(_0x2b66f7){if(_0x2b66f7){return _0x2b66f7[_0x69ab('0x36')]()[_0x69ab('0x20')](function(){_0x48d2cf[_0x69ab('0x2b')](0xcc)[_0x69ab('0x2c')]();});}};}function handleEntityNotFound(_0x36e92c,_0x4264df){return function(_0x3e9c7c){if(!_0x3e9c7c){_0x36e92c[_0x69ab('0x2a')](0x194);}return _0x3e9c7c;};}function handleError(_0x59f1af,_0x59983e){_0x59983e=_0x59983e||0x1f4;return function(_0x5b12a5){logger['error'](_0x5b12a5['stack']);if(_0x5b12a5[_0x69ab('0x37')]){delete _0x5b12a5['name'];}_0x59f1af[_0x69ab('0x2b')](_0x59983e)[_0x69ab('0x38')](_0x5b12a5);};}exports['index']=function(_0x3a7d09,_0x520d06){var _0x1e5134={},_0x45c7c0={},_0x85657e={'count':0x0,'rows':[]};var _0xddbaab=_[_0x69ab('0x39')](db[_0x69ab('0x3a')]['rawAttributes'],function(_0x13221a){return{'name':_0x13221a[_0x69ab('0x3b')],'type':_0x13221a[_0x69ab('0x3c')]['key']};});_0x45c7c0[_0x69ab('0x3d')]=_[_0x69ab('0x39')](_0xddbaab,_0x69ab('0x37'));_0x45c7c0[_0x69ab('0x3e')]=_[_0x69ab('0x3f')](_0x3a7d09[_0x69ab('0x3e')]);_0x45c7c0['filters']=_[_0x69ab('0x40')](_0x45c7c0[_0x69ab('0x3d')],_0x45c7c0[_0x69ab('0x3e')]);_0x1e5134[_0x69ab('0x41')]=_['intersection'](_0x45c7c0[_0x69ab('0x3d')],qs[_0x69ab('0x42')](_0x3a7d09[_0x69ab('0x3e')]['fields']));_0x1e5134[_0x69ab('0x41')]=_0x1e5134[_0x69ab('0x41')][_0x69ab('0x43')]?_0x1e5134[_0x69ab('0x41')]:_0x45c7c0[_0x69ab('0x3d')];if(!_0x3a7d09[_0x69ab('0x3e')][_0x69ab('0x44')]('nolimit')){_0x1e5134[_0x69ab('0x30')]=qs['limit'](_0x3a7d09[_0x69ab('0x3e')]['limit']);_0x1e5134[_0x69ab('0x2e')]=qs[_0x69ab('0x2e')](_0x3a7d09[_0x69ab('0x3e')][_0x69ab('0x2e')]);}_0x1e5134[_0x69ab('0x45')]=qs[_0x69ab('0x46')](_0x3a7d09['query']['sort']);_0x1e5134[_0x69ab('0x47')]=qs['filters'](_[_0x69ab('0x48')](_0x3a7d09[_0x69ab('0x3e')],_0x45c7c0[_0x69ab('0x49')]),_0xddbaab);if(_0x3a7d09[_0x69ab('0x3e')][_0x69ab('0x4a')]){_0x1e5134[_0x69ab('0x47')]=_[_0x69ab('0x4b')](_0x1e5134[_0x69ab('0x47')],{'$or':_['map'](_0xddbaab,function(_0x3b42fa){if(_0x3b42fa[_0x69ab('0x3c')]!==_0x69ab('0x4c')){var _0x11cbdc={};_0x11cbdc[_0x3b42fa[_0x69ab('0x37')]]={'$like':'%'+_0x3a7d09[_0x69ab('0x3e')]['filter']+'%'};return _0x11cbdc;}})});}_0x1e5134=_[_0x69ab('0x4b')]({},_0x1e5134,_0x3a7d09['options']);var _0x49f44d={'where':_0x1e5134[_0x69ab('0x47')]};return db[_0x69ab('0x3a')][_0x69ab('0x31')](_0x49f44d)[_0x69ab('0x20')](function(_0x4d9047){_0x85657e[_0x69ab('0x31')]=_0x4d9047;if(_0x3a7d09[_0x69ab('0x3e')][_0x69ab('0x4d')]){_0x1e5134[_0x69ab('0x4e')]=[{'all':!![]}];}return db[_0x69ab('0x3a')][_0x69ab('0x4f')](_0x1e5134);})['then'](function(_0x2782a5){_0x85657e[_0x69ab('0x50')]=_0x2782a5;return _0x85657e;})[_0x69ab('0x20')](respondWithFilteredResult(_0x520d06,_0x1e5134))[_0x69ab('0x29')](handleError(_0x520d06,null));};exports[_0x69ab('0x51')]=function(_0x45cc79,_0x2254e8){var _0x4b74f8={'raw':!![],'where':{'id':_0x45cc79['params']['id']}},_0x34a057={};_0x34a057['model']=_[_0x69ab('0x3f')](db[_0x69ab('0x3a')][_0x69ab('0x52')]);_0x34a057['query']=_[_0x69ab('0x3f')](_0x45cc79[_0x69ab('0x3e')]);_0x34a057[_0x69ab('0x49')]=_[_0x69ab('0x40')](_0x34a057['model'],_0x34a057[_0x69ab('0x3e')]);_0x4b74f8[_0x69ab('0x41')]=_[_0x69ab('0x40')](_0x34a057[_0x69ab('0x3d')],qs[_0x69ab('0x42')](_0x45cc79[_0x69ab('0x3e')][_0x69ab('0x42')]));_0x4b74f8[_0x69ab('0x41')]=_0x4b74f8['attributes']['length']?_0x4b74f8[_0x69ab('0x41')]:_0x34a057[_0x69ab('0x3d')];if(_0x45cc79['query']['includeAll']){_0x4b74f8[_0x69ab('0x4e')]=[{'all':!![]}];}_0x4b74f8=_[_0x69ab('0x4b')]({},_0x4b74f8,_0x45cc79[_0x69ab('0x53')]);return db['OpenchannelMessage']['find'](_0x4b74f8)[_0x69ab('0x20')](handleEntityNotFound(_0x2254e8,null))[_0x69ab('0x20')](respondWithResult(_0x2254e8,null))['catch'](handleError(_0x2254e8,null));};exports[_0x69ab('0x54')]=function(_0x356998,_0x3f0fbd){return db[_0x69ab('0x3a')][_0x69ab('0x54')](_0x356998['body'],{})[_0x69ab('0x20')](respondWithResult(_0x3f0fbd,0xc9))[_0x69ab('0x29')](handleError(_0x3f0fbd,null));};exports[_0x69ab('0x55')]=function(_0x4493a9,_0x251549){if(_0x4493a9['body']['id']){delete _0x4493a9[_0x69ab('0x56')]['id'];}return db['OpenchannelMessage'][_0x69ab('0x57')]({'where':{'id':_0x4493a9[_0x69ab('0x58')]['id']}})[_0x69ab('0x20')](handleEntityNotFound(_0x251549,null))[_0x69ab('0x20')](saveUpdates(_0x4493a9[_0x69ab('0x56')],null))[_0x69ab('0x20')](respondWithResult(_0x251549,null))[_0x69ab('0x29')](handleError(_0x251549,null));};exports[_0x69ab('0x36')]=function(_0x412f8a,_0x34f501){return db[_0x69ab('0x3a')][_0x69ab('0x57')]({'where':{'id':_0x412f8a[_0x69ab('0x58')]['id']}})['then'](handleEntityNotFound(_0x34f501,null))[_0x69ab('0x20')](removeEntity(_0x34f501,null))[_0x69ab('0x29')](handleError(_0x34f501,null));};exports['describe']=function(_0x27c731,_0x209bfb){return db['OpenchannelMessage']['describe']()[_0x69ab('0x20')](respondWithResult(_0x209bfb,null))[_0x69ab('0x29')](handleError(_0x209bfb,null));};var interaction_log=require(_0x69ab('0x13'))(_0x69ab('0x59'));exports[_0x69ab('0x5a')]=function(_0xe21431,_0x359dbc,_0x23fff0){var _0x31a4fa={'agent':{},'channel':_0x69ab('0x5b')};if(_0xe21431['body']['id']){delete _0xe21431['body']['id'];}_0xe21431[_0x69ab('0x56')]['read']=!![];_0xe21431['body'][_0x69ab('0x5c')]=moment()[_0x69ab('0x5d')](_0x69ab('0x5e'));_0xe21431[_0x69ab('0x56')][_0x69ab('0x5f')]=_0xe21431[_0x69ab('0x56')][_0x69ab('0x5f')]||_0xe21431[_0x69ab('0x60')]['id'];_0x31a4fa[_0x69ab('0x61')]['id']=_0xe21431[_0x69ab('0x56')][_0x69ab('0x5f')];return db['OpenchannelMessage']['find']({'where':{'id':_0xe21431[_0x69ab('0x58')]['id'],'UserId':null},'include':[{'model':db[_0x69ab('0x62')],'as':_0x69ab('0x63')}]})['then'](handleEntityNotFound(_0x359dbc,null))[_0x69ab('0x20')](saveUpdates(_0xe21431[_0x69ab('0x56')],null))[_0x69ab('0x20')](function(_0x326cfe){if(_0x326cfe){_0x31a4fa[_0x69ab('0x27')]=_0x326cfe['get']({'plain':!![]});return db[_0x69ab('0x64')][_0x69ab('0x57')]({'where':{'id':_0x326cfe[_0x69ab('0x65')]}});}return null;})[_0x69ab('0x20')](handleEntityNotFound(_0x359dbc,null))['then'](function(_0x415c29){if(_0x415c29){return _0x415c29['update']({'UserId':_0xe21431[_0x69ab('0x56')][_0x69ab('0x5f')],'read1stAt':_[_0x69ab('0x66')](_0x415c29[_0x69ab('0x67')])?moment()[_0x69ab('0x5d')](_0x69ab('0x5e')):undefined});}return null;})[_0x69ab('0x20')](function(_0x3360c3){if(_0x3360c3){_0x31a4fa['interaction']=_0x3360c3[_0x69ab('0x68')]({'plain':!![]});interaction_log['info'](_0x69ab('0x69'),_0xe21431[_0x69ab('0x60')]['id'],_0xe21431[_0x69ab('0x60')]['name'],_0xe21431[_0x69ab('0x60')][_0x69ab('0x6a')],_0x31a4fa[_0x69ab('0x6b')]['id'],_0xe21431[_0x69ab('0x56')]?JSON['stringify'](_0xe21431[_0x69ab('0x56')]):'null');return respondWithRpcPromise(_0x69ab('0x6c'),_0x69ab('0x6d'),_0x31a4fa);}return null;})[_0x69ab('0x20')](function(_0x17f166){if(_0x17f166){if(_0xe21431['body'][_0x69ab('0x6e')]){_0x31a4fa[_0x69ab('0x27')][_0x69ab('0x6f')]=util[_0x69ab('0x5d')](_0x69ab('0x70'),_0xe21431[_0x69ab('0x60')]['name']);_0x31a4fa[_0x69ab('0x27')][_0x69ab('0x71')]=_0x31a4fa[_0x69ab('0x71')];_0x31a4fa[_0x69ab('0x27')][_0x69ab('0x72')]=_0x69ab('0x5a');return respondWithRpcPromise(_0x69ab('0x73'),_0x69ab('0x73'),{'event':_0x69ab('0x74'),'message':_0x31a4fa[_0x69ab('0x27')]},client9002)[_0x69ab('0x20')](function(){return _0x31a4fa;});}return _0x31a4fa;}return null;})[_0x69ab('0x20')](respondWithResult(_0x359dbc,null))['catch'](handleError(_0x359dbc,null));};var interaction_log=require(_0x69ab('0x13'))(_0x69ab('0x59'));exports['reject']=function(_0x3741a2,_0x2d1406,_0x42e4e2){var _0x1afef1={'agent':{},'channel':_0x69ab('0x5b')};if(_0x3741a2['body']['id']){delete _0x3741a2[_0x69ab('0x56')]['id'];}_0x3741a2[_0x69ab('0x56')][_0x69ab('0x5f')]=_0x3741a2[_0x69ab('0x56')][_0x69ab('0x5f')]||_0x3741a2[_0x69ab('0x60')]['id'];_0x1afef1[_0x69ab('0x61')]['id']=_0x3741a2['body'][_0x69ab('0x5f')];return db[_0x69ab('0x3a')][_0x69ab('0x57')]({'where':{'id':_0x3741a2['params']['id'],'UserId':null}})[_0x69ab('0x20')](handleEntityNotFound(_0x2d1406,null))[_0x69ab('0x20')](function(_0x354c86){if(_0x354c86){_0x1afef1[_0x69ab('0x27')]=_0x354c86[_0x69ab('0x68')]({'plain':!![]});return db['OpenchannelInteraction'][_0x69ab('0x57')]({'where':{'id':_0x354c86[_0x69ab('0x65')]}});}return null;})[_0x69ab('0x20')](handleEntityNotFound(_0x2d1406,null))[_0x69ab('0x20')](function(_0x4923bf){if(_0x4923bf){_0x1afef1[_0x69ab('0x6b')]=_0x4923bf[_0x69ab('0x68')]({'plain':!![]});interaction_log[_0x69ab('0x21')](_0x69ab('0x75'),_0x3741a2[_0x69ab('0x60')]['id'],_0x3741a2['user']['name'],_0x3741a2['user'][_0x69ab('0x6a')],_0x1afef1['interaction']['id'],_0x3741a2[_0x69ab('0x56')]?JSON['stringify'](_0x3741a2[_0x69ab('0x56')]):_0x69ab('0x76'));return respondWithRpcPromise(_0x69ab('0x77'),_0x69ab('0x78'),_0x1afef1);}return null;})['then'](function(_0x5216fc){if(_0x5216fc){_0x5216fc['message']['interface']=util[_0x69ab('0x5d')]('SIP/%s',_0x3741a2[_0x69ab('0x60')][_0x69ab('0x37')]);_0x5216fc[_0x69ab('0x27')][_0x69ab('0x71')]=_0x1afef1[_0x69ab('0x71')];_0x5216fc[_0x69ab('0x27')][_0x69ab('0x72')]=_0x69ab('0x79');respondWithRpcPromise(_0x69ab('0x73'),_0x69ab('0x73'),{'event':_0x69ab('0x7a'),'message':_0x5216fc[_0x69ab('0x27')]},client9002);return _0x1afef1;}return null;})['then'](respondWithResult(_0x2d1406,null))[_0x69ab('0x29')](handleError(_0x2d1406,null));};