Built motion from commit (unavailable).|2.5.23
[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 _0x28e4=['code','message','result','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','OpenchannelMessage','rawAttributes','type','key','model','map','query','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','create','body','find','describe','openchannel-interactions','accept','openchannel','readAt','format','UserId','agent','CmContact','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x95a00,_0x520674){var _0x1fc529=function(_0x3d091a){while(--_0x3d091a){_0x95a00['push'](_0x95a00['shift']());}};_0x1fc529(++_0x520674);}(_0x28e4,0x146));var _0x428e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x28e4[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x428e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x428e('0x1'));var zipdir=require(_0x428e('0x2'));var jsonpatch=require(_0x428e('0x3'));var rp=require(_0x428e('0x4'));var moment=require(_0x428e('0x5'));var BPromise=require(_0x428e('0x6'));var Mustache=require(_0x428e('0x7'));var util=require(_0x428e('0x8'));var path=require('path');var sox=require(_0x428e('0x9'));var csv=require(_0x428e('0xa'));var ejs=require(_0x428e('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x428e('0xc'));var crypto=require(_0x428e('0xd'));var jsforce=require(_0x428e('0xe'));var deskjs=require(_0x428e('0xf'));var toCsv=require('to-csv');var querystring=require(_0x428e('0x10'));var Papa=require('papaparse');var Redis=require(_0x428e('0x11'));var authService=require(_0x428e('0x12'));var qs=require(_0x428e('0x13'));var as=require(_0x428e('0x14'));var hardwareService=require(_0x428e('0x15'));var logger=require('../../config/logger')(_0x428e('0x16'));var utils=require(_0x428e('0x17'));var config=require(_0x428e('0x18'));var licenseUtil=require(_0x428e('0x19'));var db=require(_0x428e('0x1a'))['db'];config[_0x428e('0x1b')]=_[_0x428e('0x1c')](config['redis'],{'host':_0x428e('0x1d'),'port':0x18eb});var socket=require(_0x428e('0x1e'))(new Redis(config[_0x428e('0x1b')]));require(_0x428e('0x1f'))[_0x428e('0x20')](socket);var jayson=require(_0x428e('0x21'));var client=jayson[_0x428e('0x22')][_0x428e('0x23')]({'port':0x232c});var client9002=jayson[_0x428e('0x22')][_0x428e('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x1febbd,_0x268fbd,_0x1ddf67,_0x1c4910){return new BPromise(function(_0x287f25,_0x29f914){var _0x3e8645=_0x1c4910||client;return _0x3e8645['request'](_0x1febbd,_0x1ddf67)[_0x428e('0x24')](function(_0x482997){logger[_0x428e('0x25')](_0x428e('0x26'),_0x268fbd,_0x428e('0x27'));logger[_0x428e('0x28')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x268fbd,_0x428e('0x27'),JSON[_0x428e('0x29')](_0x482997));if(_0x482997['error']){if(_0x482997[_0x428e('0x2a')][_0x428e('0x2b')]===0x1f4){logger['error'](_0x428e('0x26'),_0x268fbd,_0x482997[_0x428e('0x2a')][_0x428e('0x2c')]);return _0x29f914(_0x482997[_0x428e('0x2a')][_0x428e('0x2c')]);}logger[_0x428e('0x2a')](_0x428e('0x26'),_0x268fbd,_0x482997[_0x428e('0x2a')][_0x428e('0x2c')]);return _0x287f25(_0x482997[_0x428e('0x2a')][_0x428e('0x2c')]);}else{logger[_0x428e('0x25')](_0x428e('0x26'),_0x268fbd,_0x428e('0x27'));_0x287f25(_0x482997[_0x428e('0x2d')][_0x428e('0x2c')]);}})[_0x428e('0x2e')](function(_0x6c1ceb){logger[_0x428e('0x2a')](_0x428e('0x26'),_0x268fbd,_0x6c1ceb);_0x29f914(_0x6c1ceb);});});}function respondWithStatusCode(_0x42a8b1,_0x3d4657){_0x3d4657=_0x3d4657||0xcc;return function(_0x48fb87){if(_0x48fb87){return _0x42a8b1[_0x428e('0x2f')](_0x3d4657);}return _0x42a8b1[_0x428e('0x30')](_0x3d4657)[_0x428e('0x31')]();};}function respondWithResult(_0x5ded22,_0x3d5751){_0x3d5751=_0x3d5751||0xc8;return function(_0xe6e31e){if(_0xe6e31e){return _0x5ded22[_0x428e('0x30')](_0x3d5751)['json'](_0xe6e31e);}};}function respondWithFilteredResult(_0x11ebd9,_0x478491){return function(_0x35eaf5){if(_0x35eaf5){var _0x3ab547=_0x35eaf5[_0x428e('0x32')],_0x2ae17b=_0x478491[_0x428e('0x33')],_0x45dcb1=_0x478491[_0x428e('0x33')]+_0x478491[_0x428e('0x34')],_0x2cc906;if(_0x45dcb1>=_0x3ab547){_0x45dcb1=_0x3ab547;_0x2cc906=0xc8;}else{_0x2cc906=0xce;}_0x11ebd9['status'](_0x2cc906);return _0x11ebd9[_0x428e('0x35')](_0x428e('0x36'),_0x2ae17b+'-'+_0x45dcb1+'/'+_0x3ab547)['json'](_0x35eaf5);}return null;};}function patchUpdates(_0x43c172){return function(_0x8c0ae1){try{jsonpatch[_0x428e('0x37')](_0x8c0ae1,_0x43c172,!![]);}catch(_0x34d14c){return BPromise[_0x428e('0x38')](_0x34d14c);}return _0x8c0ae1[_0x428e('0x39')]();};}function saveUpdates(_0x96e4f5,_0x15390c){return function(_0x4e3a2b){if(_0x4e3a2b){return _0x4e3a2b[_0x428e('0x3a')](_0x96e4f5)[_0x428e('0x24')](function(_0x27fe9e){return _0x27fe9e;});}return null;};}function removeEntity(_0x325ed2,_0x544926){return function(_0x20b0e9){if(_0x20b0e9){return _0x20b0e9[_0x428e('0x3b')]()[_0x428e('0x24')](function(){_0x325ed2[_0x428e('0x30')](0xcc)[_0x428e('0x31')]();});}};}function handleEntityNotFound(_0x2a8113,_0x400915){return function(_0x25efbc){if(!_0x25efbc){_0x2a8113[_0x428e('0x2f')](0x194);}return _0x25efbc;};}function handleError(_0x47b43b,_0x4a01a6){_0x4a01a6=_0x4a01a6||0x1f4;return function(_0xb90755){logger[_0x428e('0x2a')](_0xb90755[_0x428e('0x3c')]);if(_0xb90755[_0x428e('0x3d')]){delete _0xb90755[_0x428e('0x3d')];}_0x47b43b[_0x428e('0x30')](_0x4a01a6)[_0x428e('0x3e')](_0xb90755);};}exports['index']=function(_0x1936c4,_0x5e4652){var _0x542be8={},_0xdf5fcc={},_0x40ac44={'count':0x0,'rows':[]};var _0x3734b9=_['map'](db[_0x428e('0x3f')][_0x428e('0x40')],function(_0x3aac9c){return{'name':_0x3aac9c['fieldName'],'type':_0x3aac9c[_0x428e('0x41')][_0x428e('0x42')]};});_0xdf5fcc[_0x428e('0x43')]=_[_0x428e('0x44')](_0x3734b9,_0x428e('0x3d'));_0xdf5fcc[_0x428e('0x45')]=_['keys'](_0x1936c4[_0x428e('0x45')]);_0xdf5fcc['filters']=_[_0x428e('0x46')](_0xdf5fcc[_0x428e('0x43')],_0xdf5fcc['query']);_0x542be8[_0x428e('0x47')]=_[_0x428e('0x46')](_0xdf5fcc[_0x428e('0x43')],qs[_0x428e('0x48')](_0x1936c4[_0x428e('0x45')][_0x428e('0x48')]));_0x542be8[_0x428e('0x47')]=_0x542be8[_0x428e('0x47')][_0x428e('0x49')]?_0x542be8[_0x428e('0x47')]:_0xdf5fcc[_0x428e('0x43')];if(!_0x1936c4[_0x428e('0x45')][_0x428e('0x4a')]('nolimit')){_0x542be8['limit']=qs['limit'](_0x1936c4['query'][_0x428e('0x34')]);_0x542be8[_0x428e('0x33')]=qs[_0x428e('0x33')](_0x1936c4[_0x428e('0x45')][_0x428e('0x33')]);}_0x542be8['order']=qs[_0x428e('0x4b')](_0x1936c4[_0x428e('0x45')][_0x428e('0x4b')]);_0x542be8[_0x428e('0x4c')]=qs[_0x428e('0x4d')](_[_0x428e('0x4e')](_0x1936c4[_0x428e('0x45')],_0xdf5fcc['filters']),_0x3734b9);if(_0x1936c4[_0x428e('0x45')][_0x428e('0x4f')]){_0x542be8[_0x428e('0x4c')]=_[_0x428e('0x50')](_0x542be8[_0x428e('0x4c')],{'$or':_['map'](_0x3734b9,function(_0x282156){if(_0x282156[_0x428e('0x41')]!==_0x428e('0x51')){var _0x3f2b6a={};_0x3f2b6a[_0x282156[_0x428e('0x3d')]]={'$like':'%'+_0x1936c4[_0x428e('0x45')][_0x428e('0x4f')]+'%'};return _0x3f2b6a;}})});}_0x542be8=_['merge']({},_0x542be8,_0x1936c4[_0x428e('0x52')]);var _0x3f825a={'where':_0x542be8['where']};return db['OpenchannelMessage'][_0x428e('0x32')](_0x3f825a)['then'](function(_0x333d8f){_0x40ac44[_0x428e('0x32')]=_0x333d8f;if(_0x1936c4[_0x428e('0x45')][_0x428e('0x53')]){_0x542be8[_0x428e('0x54')]=[{'all':!![]}];}return db[_0x428e('0x3f')][_0x428e('0x55')](_0x542be8);})[_0x428e('0x24')](function(_0x516fce){_0x40ac44[_0x428e('0x56')]=_0x516fce;return _0x40ac44;})['then'](respondWithFilteredResult(_0x5e4652,_0x542be8))[_0x428e('0x2e')](handleError(_0x5e4652,null));};exports[_0x428e('0x57')]=function(_0x32af6f,_0x3ae712){var _0x2f39dc={'raw':!![],'where':{'id':_0x32af6f[_0x428e('0x58')]['id']}},_0x30b04c={};_0x30b04c['model']=_[_0x428e('0x59')](db[_0x428e('0x3f')]['rawAttributes']);_0x30b04c[_0x428e('0x45')]=_[_0x428e('0x59')](_0x32af6f[_0x428e('0x45')]);_0x30b04c[_0x428e('0x4d')]=_[_0x428e('0x46')](_0x30b04c[_0x428e('0x43')],_0x30b04c[_0x428e('0x45')]);_0x2f39dc[_0x428e('0x47')]=_[_0x428e('0x46')](_0x30b04c[_0x428e('0x43')],qs[_0x428e('0x48')](_0x32af6f[_0x428e('0x45')][_0x428e('0x48')]));_0x2f39dc[_0x428e('0x47')]=_0x2f39dc[_0x428e('0x47')][_0x428e('0x49')]?_0x2f39dc[_0x428e('0x47')]:_0x30b04c[_0x428e('0x43')];if(_0x32af6f[_0x428e('0x45')]['includeAll']){_0x2f39dc[_0x428e('0x54')]=[{'all':!![]}];}_0x2f39dc=_[_0x428e('0x50')]({},_0x2f39dc,_0x32af6f[_0x428e('0x52')]);return db[_0x428e('0x3f')]['find'](_0x2f39dc)[_0x428e('0x24')](handleEntityNotFound(_0x3ae712,null))['then'](respondWithResult(_0x3ae712,null))[_0x428e('0x2e')](handleError(_0x3ae712,null));};exports[_0x428e('0x5a')]=function(_0x32dca6,_0x5474f1){return db[_0x428e('0x3f')][_0x428e('0x5a')](_0x32dca6[_0x428e('0x5b')],{})['then'](respondWithResult(_0x5474f1,0xc9))['catch'](handleError(_0x5474f1,null));};exports[_0x428e('0x3a')]=function(_0x2dfac1,_0x18888a){if(_0x2dfac1[_0x428e('0x5b')]['id']){delete _0x2dfac1[_0x428e('0x5b')]['id'];}return db[_0x428e('0x3f')]['find']({'where':{'id':_0x2dfac1[_0x428e('0x58')]['id']}})[_0x428e('0x24')](handleEntityNotFound(_0x18888a,null))[_0x428e('0x24')](saveUpdates(_0x2dfac1[_0x428e('0x5b')],null))[_0x428e('0x24')](respondWithResult(_0x18888a,null))['catch'](handleError(_0x18888a,null));};exports[_0x428e('0x3b')]=function(_0xe5d34e,_0x428cc9){return db[_0x428e('0x3f')][_0x428e('0x5c')]({'where':{'id':_0xe5d34e[_0x428e('0x58')]['id']}})['then'](handleEntityNotFound(_0x428cc9,null))[_0x428e('0x24')](removeEntity(_0x428cc9,null))[_0x428e('0x2e')](handleError(_0x428cc9,null));};exports[_0x428e('0x5d')]=function(_0x216d18,_0x1e40c8){return db[_0x428e('0x3f')][_0x428e('0x5d')]()[_0x428e('0x24')](respondWithResult(_0x1e40c8,null))[_0x428e('0x2e')](handleError(_0x1e40c8,null));};var interaction_log=require('../../config/logger')(_0x428e('0x5e'));exports[_0x428e('0x5f')]=function(_0x53df6e,_0x506c59,_0x5dd6e0){var _0x35ce72={'agent':{},'channel':_0x428e('0x60')};if(_0x53df6e[_0x428e('0x5b')]['id']){delete _0x53df6e['body']['id'];}_0x53df6e['body']['read']=!![];_0x53df6e['body'][_0x428e('0x61')]=moment()[_0x428e('0x62')]('YYYY-MM-DD\x20HH:mm:ss');_0x53df6e[_0x428e('0x5b')][_0x428e('0x63')]=_0x53df6e[_0x428e('0x5b')][_0x428e('0x63')]||_0x53df6e['user']['id'];_0x35ce72[_0x428e('0x64')]['id']=_0x53df6e[_0x428e('0x5b')][_0x428e('0x63')];return db[_0x428e('0x3f')][_0x428e('0x5c')]({'where':{'id':_0x53df6e[_0x428e('0x58')]['id'],'UserId':null},'include':[{'model':db[_0x428e('0x65')],'as':'Contact'}]})[_0x428e('0x24')](handleEntityNotFound(_0x506c59,null))[_0x428e('0x24')](saveUpdates(_0x53df6e[_0x428e('0x5b')],null))[_0x428e('0x24')](function(_0x32b97e){if(_0x32b97e){_0x35ce72['message']=_0x32b97e[_0x428e('0x66')]({'plain':!![]});return db[_0x428e('0x67')]['find']({'where':{'id':_0x32b97e[_0x428e('0x68')]}});}return null;})['then'](handleEntityNotFound(_0x506c59,null))['then'](function(_0x4ac2a9){if(_0x4ac2a9){return _0x4ac2a9[_0x428e('0x3a')]({'UserId':_0x53df6e[_0x428e('0x5b')][_0x428e('0x63')],'read1stAt':_[_0x428e('0x69')](_0x4ac2a9[_0x428e('0x6a')])?moment()['format'](_0x428e('0x6b')):undefined});}return null;})[_0x428e('0x24')](function(_0x1e032c){if(_0x1e032c){_0x35ce72[_0x428e('0x6c')]=_0x1e032c[_0x428e('0x66')]({'plain':!![]});interaction_log[_0x428e('0x25')](_0x428e('0x6d'),_0x53df6e['user']['id'],_0x53df6e[_0x428e('0x6e')][_0x428e('0x3d')],_0x53df6e[_0x428e('0x6e')][_0x428e('0x6f')],_0x35ce72[_0x428e('0x6c')]['id'],_0x53df6e['body']?JSON['stringify'](_0x53df6e[_0x428e('0x5b')]):_0x428e('0x70'));return respondWithRpcPromise('AcceptMessage',_0x428e('0x71'),_0x35ce72);}return null;})[_0x428e('0x24')](function(_0x26b1ec){if(_0x26b1ec){if(_0x53df6e[_0x428e('0x5b')][_0x428e('0x72')]){_0x35ce72[_0x428e('0x2c')][_0x428e('0x73')]=util[_0x428e('0x62')](_0x428e('0x74'),_0x53df6e[_0x428e('0x6e')][_0x428e('0x3d')]);_0x35ce72[_0x428e('0x2c')][_0x428e('0x75')]=_0x35ce72[_0x428e('0x75')];_0x35ce72['message'][_0x428e('0x76')]=_0x428e('0x5f');return respondWithRpcPromise(_0x428e('0x77'),'EventManager',{'event':'acceptmessage','message':_0x35ce72[_0x428e('0x2c')]},client9002)['then'](function(){return _0x35ce72;});}return _0x35ce72;}return null;})['then'](respondWithResult(_0x506c59,null))[_0x428e('0x2e')](handleError(_0x506c59,null));};var interaction_log=require('../../config/logger')(_0x428e('0x5e'));exports[_0x428e('0x38')]=function(_0x46fa8b,_0x52d00c,_0x20d26d){var _0x840e78={'agent':{},'channel':_0x428e('0x60')};if(_0x46fa8b[_0x428e('0x5b')]['id']){delete _0x46fa8b[_0x428e('0x5b')]['id'];}_0x46fa8b[_0x428e('0x5b')][_0x428e('0x63')]=_0x46fa8b[_0x428e('0x5b')]['UserId']||_0x46fa8b[_0x428e('0x6e')]['id'];_0x840e78[_0x428e('0x64')]['id']=_0x46fa8b[_0x428e('0x5b')][_0x428e('0x63')];return db[_0x428e('0x3f')]['find']({'where':{'id':_0x46fa8b['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x52d00c,null))[_0x428e('0x24')](function(_0x18de0a){if(_0x18de0a){_0x840e78[_0x428e('0x2c')]=_0x18de0a['get']({'plain':!![]});return db['OpenchannelInteraction'][_0x428e('0x5c')]({'where':{'id':_0x18de0a[_0x428e('0x68')]}});}return null;})[_0x428e('0x24')](handleEntityNotFound(_0x52d00c,null))[_0x428e('0x24')](function(_0x1d9e51){if(_0x1d9e51){_0x840e78['interaction']=_0x1d9e51[_0x428e('0x66')]({'plain':!![]});interaction_log[_0x428e('0x25')](_0x428e('0x78'),_0x46fa8b['user']['id'],_0x46fa8b[_0x428e('0x6e')][_0x428e('0x3d')],_0x46fa8b['user']['role'],_0x840e78['interaction']['id'],_0x46fa8b[_0x428e('0x5b')]?JSON[_0x428e('0x29')](_0x46fa8b[_0x428e('0x5b')]):_0x428e('0x70'));return respondWithRpcPromise(_0x428e('0x79'),_0x428e('0x7a'),_0x840e78);}return null;})[_0x428e('0x24')](function(_0x53da3a){if(_0x53da3a){_0x53da3a[_0x428e('0x2c')][_0x428e('0x73')]=util[_0x428e('0x62')](_0x428e('0x74'),_0x46fa8b[_0x428e('0x6e')][_0x428e('0x3d')]);_0x53da3a[_0x428e('0x2c')][_0x428e('0x75')]=_0x840e78[_0x428e('0x75')];_0x53da3a[_0x428e('0x2c')][_0x428e('0x76')]='reject';respondWithRpcPromise('EventManager',_0x428e('0x77'),{'event':'rejectmessage','message':_0x53da3a[_0x428e('0x2c')]},client9002);return _0x840e78;}return null;})[_0x428e('0x24')](respondWithResult(_0x52d00c,null))[_0x428e('0x2e')](handleError(_0x52d00c,null));};