Built motion from commit (unavailable).|2.5.21
[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 _0xa548=['apply','update','destroy','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','key','query','keys','model','attributes','intersection','fields','length','nolimit','offset','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','include','rows','catch','show','params','includeAll','find','create','body','describe','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','CmContact','Contact','OpenchannelInteraction','isNil','read1stAt','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','AcceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','acceptmessage','openchannel-interactions','reject','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','rejectMessage','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelMessage.socket','register','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','limit','set','Content-Range'];(function(_0x7810be,_0x567e2e){var _0xb6d652=function(_0x31c4a3){while(--_0x31c4a3){_0x7810be['push'](_0x7810be['shift']());}};_0xb6d652(++_0x567e2e);}(_0xa548,0x1c9));var _0x8a54=function(_0x463468,_0x42f509){_0x463468=_0x463468-0x0;var _0x1fc754=_0xa548[_0x463468];return _0x1fc754;};'use strict';var pdf=require(_0x8a54('0x0'));var emlformat=require(_0x8a54('0x1'));var rimraf=require(_0x8a54('0x2'));var zipdir=require(_0x8a54('0x3'));var jsonpatch=require(_0x8a54('0x4'));var rp=require(_0x8a54('0x5'));var moment=require(_0x8a54('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x8a54('0x7'));var util=require(_0x8a54('0x8'));var path=require(_0x8a54('0x9'));var sox=require(_0x8a54('0xa'));var csv=require(_0x8a54('0xb'));var ejs=require(_0x8a54('0xc'));var fs=require('fs');var _=require(_0x8a54('0xd'));var squel=require(_0x8a54('0xe'));var crypto=require(_0x8a54('0xf'));var jsforce=require(_0x8a54('0x10'));var deskjs=require(_0x8a54('0x11'));var toCsv=require(_0x8a54('0xb'));var querystring=require('querystring');var Papa=require(_0x8a54('0x12'));var Redis=require(_0x8a54('0x13'));var authService=require(_0x8a54('0x14'));var qs=require(_0x8a54('0x15'));var as=require(_0x8a54('0x16'));var hardwareService=require(_0x8a54('0x17'));var logger=require(_0x8a54('0x18'))(_0x8a54('0x19'));var utils=require(_0x8a54('0x1a'));var config=require(_0x8a54('0x1b'));var licenseUtil=require(_0x8a54('0x1c'));var db=require(_0x8a54('0x1d'))['db'];config[_0x8a54('0x1e')]=_['defaults'](config[_0x8a54('0x1e')],{'host':_0x8a54('0x1f'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x8a54('0x20'))[_0x8a54('0x21')](socket);var jayson=require('jayson/promise');var client=jayson[_0x8a54('0x22')]['http']({'port':0x232c});var client9002=jayson[_0x8a54('0x22')][_0x8a54('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x46ffeb,_0x5bd02d,_0x276e5f,_0x14ecf6){return new BPromise(function(_0x540e3e,_0x3bd38d){var _0x2e47ec=_0x14ecf6||client;return _0x2e47ec[_0x8a54('0x24')](_0x46ffeb,_0x276e5f)[_0x8a54('0x25')](function(_0x1c953e){logger[_0x8a54('0x26')](_0x8a54('0x27'),_0x5bd02d,_0x8a54('0x28'));logger[_0x8a54('0x29')](_0x8a54('0x2a'),_0x5bd02d,'request\x20sent',JSON[_0x8a54('0x2b')](_0x1c953e));if(_0x1c953e[_0x8a54('0x2c')]){if(_0x1c953e[_0x8a54('0x2c')][_0x8a54('0x2d')]===0x1f4){logger[_0x8a54('0x2c')]('OpenchannelMessage,\x20%s,\x20%s',_0x5bd02d,_0x1c953e[_0x8a54('0x2c')][_0x8a54('0x2e')]);return _0x3bd38d(_0x1c953e[_0x8a54('0x2c')][_0x8a54('0x2e')]);}logger[_0x8a54('0x2c')](_0x8a54('0x27'),_0x5bd02d,_0x1c953e[_0x8a54('0x2c')][_0x8a54('0x2e')]);return _0x540e3e(_0x1c953e[_0x8a54('0x2c')]['message']);}else{logger[_0x8a54('0x26')](_0x8a54('0x27'),_0x5bd02d,_0x8a54('0x28'));_0x540e3e(_0x1c953e[_0x8a54('0x2f')][_0x8a54('0x2e')]);}})['catch'](function(_0x48af9c){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x5bd02d,_0x48af9c);_0x3bd38d(_0x48af9c);});});}function respondWithStatusCode(_0x14786d,_0x2b2af6){_0x2b2af6=_0x2b2af6||0xcc;return function(_0x20d3b3){if(_0x20d3b3){return _0x14786d[_0x8a54('0x30')](_0x2b2af6);}return _0x14786d[_0x8a54('0x31')](_0x2b2af6)[_0x8a54('0x32')]();};}function respondWithResult(_0x1074a3,_0x390163){_0x390163=_0x390163||0xc8;return function(_0x223e9e){if(_0x223e9e){return _0x1074a3[_0x8a54('0x31')](_0x390163)[_0x8a54('0x33')](_0x223e9e);}};}function respondWithFilteredResult(_0xc8125c,_0x342352){return function(_0x4df586){if(_0x4df586){var _0x1e1f98=_0x4df586['count'],_0xe806d0=_0x342352['offset'],_0x2deb33=_0x342352['offset']+_0x342352[_0x8a54('0x34')],_0x1df27f;if(_0x2deb33>=_0x1e1f98){_0x2deb33=_0x1e1f98;_0x1df27f=0xc8;}else{_0x1df27f=0xce;}_0xc8125c[_0x8a54('0x31')](_0x1df27f);return _0xc8125c[_0x8a54('0x35')](_0x8a54('0x36'),_0xe806d0+'-'+_0x2deb33+'/'+_0x1e1f98)[_0x8a54('0x33')](_0x4df586);}return null;};}function patchUpdates(_0xf2680d){return function(_0x52ea69){try{jsonpatch[_0x8a54('0x37')](_0x52ea69,_0xf2680d,!![]);}catch(_0x176991){return BPromise['reject'](_0x176991);}return _0x52ea69['save']();};}function saveUpdates(_0x3ea59f,_0x479f1c){return function(_0x142800){if(_0x142800){return _0x142800[_0x8a54('0x38')](_0x3ea59f)[_0x8a54('0x25')](function(_0x1c6b64){return _0x1c6b64;});}return null;};}function removeEntity(_0x4f1db1,_0x3d08db){return function(_0x4c6546){if(_0x4c6546){return _0x4c6546[_0x8a54('0x39')]()[_0x8a54('0x25')](function(){_0x4f1db1[_0x8a54('0x31')](0xcc)[_0x8a54('0x32')]();});}};}function handleEntityNotFound(_0xd9d410,_0x5d88e4){return function(_0x33ebd7){if(!_0x33ebd7){_0xd9d410[_0x8a54('0x30')](0x194);}return _0x33ebd7;};}function handleError(_0xcc6f2b,_0xbadd06){_0xbadd06=_0xbadd06||0x1f4;return function(_0x3d1ef3){logger[_0x8a54('0x2c')](_0x3d1ef3['stack']);if(_0x3d1ef3[_0x8a54('0x3a')]){delete _0x3d1ef3[_0x8a54('0x3a')];}_0xcc6f2b[_0x8a54('0x31')](_0xbadd06)[_0x8a54('0x3b')](_0x3d1ef3);};}exports[_0x8a54('0x3c')]=function(_0x55238f,_0x535423){var _0x2e5505={},_0x4d2d1c={},_0x4c8270={'count':0x0,'rows':[]};var _0x1da77b=_[_0x8a54('0x3d')](db[_0x8a54('0x3e')][_0x8a54('0x3f')],function(_0xffc207){return{'name':_0xffc207[_0x8a54('0x40')],'type':_0xffc207[_0x8a54('0x41')][_0x8a54('0x42')]};});_0x4d2d1c['model']=_[_0x8a54('0x3d')](_0x1da77b,_0x8a54('0x3a'));_0x4d2d1c[_0x8a54('0x43')]=_[_0x8a54('0x44')](_0x55238f[_0x8a54('0x43')]);_0x4d2d1c['filters']=_['intersection'](_0x4d2d1c[_0x8a54('0x45')],_0x4d2d1c[_0x8a54('0x43')]);_0x2e5505[_0x8a54('0x46')]=_[_0x8a54('0x47')](_0x4d2d1c[_0x8a54('0x45')],qs[_0x8a54('0x48')](_0x55238f['query'][_0x8a54('0x48')]));_0x2e5505[_0x8a54('0x46')]=_0x2e5505[_0x8a54('0x46')][_0x8a54('0x49')]?_0x2e5505[_0x8a54('0x46')]:_0x4d2d1c['model'];if(!_0x55238f[_0x8a54('0x43')]['hasOwnProperty'](_0x8a54('0x4a'))){_0x2e5505['limit']=qs[_0x8a54('0x34')](_0x55238f[_0x8a54('0x43')][_0x8a54('0x34')]);_0x2e5505['offset']=qs[_0x8a54('0x4b')](_0x55238f[_0x8a54('0x43')][_0x8a54('0x4b')]);}_0x2e5505[_0x8a54('0x4c')]=qs[_0x8a54('0x4d')](_0x55238f['query'][_0x8a54('0x4d')]);_0x2e5505[_0x8a54('0x4e')]=qs[_0x8a54('0x4f')](_[_0x8a54('0x50')](_0x55238f['query'],_0x4d2d1c[_0x8a54('0x4f')]),_0x1da77b);if(_0x55238f[_0x8a54('0x43')][_0x8a54('0x51')]){_0x2e5505[_0x8a54('0x4e')]=_[_0x8a54('0x52')](_0x2e5505[_0x8a54('0x4e')],{'$or':_[_0x8a54('0x3d')](_0x1da77b,function(_0x2042dd){if(_0x2042dd['type']!==_0x8a54('0x53')){var _0x4032c4={};_0x4032c4[_0x2042dd[_0x8a54('0x3a')]]={'$like':'%'+_0x55238f['query'][_0x8a54('0x51')]+'%'};return _0x4032c4;}})});}_0x2e5505=_['merge']({},_0x2e5505,_0x55238f[_0x8a54('0x54')]);var _0x187882={'where':_0x2e5505[_0x8a54('0x4e')]};return db['OpenchannelMessage'][_0x8a54('0x55')](_0x187882)[_0x8a54('0x25')](function(_0x167e87){_0x4c8270['count']=_0x167e87;if(_0x55238f[_0x8a54('0x43')]['includeAll']){_0x2e5505[_0x8a54('0x56')]=[{'all':!![]}];}return db[_0x8a54('0x3e')]['findAll'](_0x2e5505);})[_0x8a54('0x25')](function(_0x297605){_0x4c8270[_0x8a54('0x57')]=_0x297605;return _0x4c8270;})[_0x8a54('0x25')](respondWithFilteredResult(_0x535423,_0x2e5505))[_0x8a54('0x58')](handleError(_0x535423,null));};exports[_0x8a54('0x59')]=function(_0x1f3661,_0x294ac2){var _0x201d70={'raw':!![],'where':{'id':_0x1f3661[_0x8a54('0x5a')]['id']}},_0x4e1a6b={};_0x4e1a6b['model']=_['keys'](db[_0x8a54('0x3e')][_0x8a54('0x3f')]);_0x4e1a6b[_0x8a54('0x43')]=_['keys'](_0x1f3661[_0x8a54('0x43')]);_0x4e1a6b['filters']=_[_0x8a54('0x47')](_0x4e1a6b[_0x8a54('0x45')],_0x4e1a6b[_0x8a54('0x43')]);_0x201d70[_0x8a54('0x46')]=_[_0x8a54('0x47')](_0x4e1a6b['model'],qs[_0x8a54('0x48')](_0x1f3661[_0x8a54('0x43')][_0x8a54('0x48')]));_0x201d70[_0x8a54('0x46')]=_0x201d70['attributes'][_0x8a54('0x49')]?_0x201d70[_0x8a54('0x46')]:_0x4e1a6b['model'];if(_0x1f3661[_0x8a54('0x43')][_0x8a54('0x5b')]){_0x201d70[_0x8a54('0x56')]=[{'all':!![]}];}_0x201d70=_[_0x8a54('0x52')]({},_0x201d70,_0x1f3661[_0x8a54('0x54')]);return db[_0x8a54('0x3e')][_0x8a54('0x5c')](_0x201d70)[_0x8a54('0x25')](handleEntityNotFound(_0x294ac2,null))[_0x8a54('0x25')](respondWithResult(_0x294ac2,null))[_0x8a54('0x58')](handleError(_0x294ac2,null));};exports[_0x8a54('0x5d')]=function(_0x5c734e,_0x15d7e0){return db[_0x8a54('0x3e')][_0x8a54('0x5d')](_0x5c734e['body'],{})['then'](respondWithResult(_0x15d7e0,0xc9))[_0x8a54('0x58')](handleError(_0x15d7e0,null));};exports[_0x8a54('0x38')]=function(_0x31969b,_0x508837){if(_0x31969b[_0x8a54('0x5e')]['id']){delete _0x31969b[_0x8a54('0x5e')]['id'];}return db['OpenchannelMessage']['find']({'where':{'id':_0x31969b['params']['id']}})[_0x8a54('0x25')](handleEntityNotFound(_0x508837,null))['then'](saveUpdates(_0x31969b['body'],null))[_0x8a54('0x25')](respondWithResult(_0x508837,null))[_0x8a54('0x58')](handleError(_0x508837,null));};exports[_0x8a54('0x39')]=function(_0x41f70e,_0x2c3aa7){return db[_0x8a54('0x3e')]['find']({'where':{'id':_0x41f70e['params']['id']}})['then'](handleEntityNotFound(_0x2c3aa7,null))[_0x8a54('0x25')](removeEntity(_0x2c3aa7,null))[_0x8a54('0x58')](handleError(_0x2c3aa7,null));};exports[_0x8a54('0x5f')]=function(_0x2e51f2,_0x5b8300){return db[_0x8a54('0x3e')][_0x8a54('0x5f')]()[_0x8a54('0x25')](respondWithResult(_0x5b8300,null))[_0x8a54('0x58')](handleError(_0x5b8300,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports['accept']=function(_0x1ac285,_0x2a1585,_0x2e37f1){var _0x464883={'agent':{},'channel':_0x8a54('0x60')};if(_0x1ac285[_0x8a54('0x5e')]['id']){delete _0x1ac285[_0x8a54('0x5e')]['id'];}_0x1ac285[_0x8a54('0x5e')][_0x8a54('0x61')]=!![];_0x1ac285[_0x8a54('0x5e')][_0x8a54('0x62')]=moment()[_0x8a54('0x63')](_0x8a54('0x64'));_0x1ac285[_0x8a54('0x5e')][_0x8a54('0x65')]=_0x1ac285[_0x8a54('0x5e')]['UserId']||_0x1ac285[_0x8a54('0x66')]['id'];_0x464883[_0x8a54('0x67')]['id']=_0x1ac285['body'][_0x8a54('0x65')];return db[_0x8a54('0x3e')][_0x8a54('0x5c')]({'where':{'id':_0x1ac285[_0x8a54('0x5a')]['id'],'UserId':null},'include':[{'model':db[_0x8a54('0x68')],'as':_0x8a54('0x69')}]})[_0x8a54('0x25')](handleEntityNotFound(_0x2a1585,null))[_0x8a54('0x25')](saveUpdates(_0x1ac285[_0x8a54('0x5e')],null))['then'](function(_0x526b6e){if(_0x526b6e){_0x464883[_0x8a54('0x2e')]=_0x526b6e['get']({'plain':!![]});return db[_0x8a54('0x6a')][_0x8a54('0x5c')]({'where':{'id':_0x526b6e['OpenchannelInteractionId']}});}return null;})[_0x8a54('0x25')](handleEntityNotFound(_0x2a1585,null))[_0x8a54('0x25')](function(_0x596d4d){if(_0x596d4d){return _0x596d4d[_0x8a54('0x38')]({'UserId':_0x1ac285[_0x8a54('0x5e')][_0x8a54('0x65')],'read1stAt':_[_0x8a54('0x6b')](_0x596d4d[_0x8a54('0x6c')])?moment()[_0x8a54('0x63')](_0x8a54('0x64')):undefined});}return null;})[_0x8a54('0x25')](function(_0xe5dd5c){if(_0xe5dd5c){_0x464883['interaction']=_0xe5dd5c[_0x8a54('0x6d')]({'plain':!![]});interaction_log[_0x8a54('0x26')](_0x8a54('0x6e'),_0x1ac285[_0x8a54('0x66')]['id'],_0x1ac285[_0x8a54('0x66')][_0x8a54('0x3a')],_0x1ac285[_0x8a54('0x66')][_0x8a54('0x6f')],_0x464883[_0x8a54('0x70')]['id'],_0x1ac285[_0x8a54('0x5e')]?JSON[_0x8a54('0x2b')](_0x1ac285['body']):'null');return respondWithRpcPromise(_0x8a54('0x71'),'acceptMessage',_0x464883);}return null;})[_0x8a54('0x25')](function(_0x4f771d){if(_0x4f771d){if(_0x1ac285[_0x8a54('0x5e')][_0x8a54('0x72')]){_0x464883[_0x8a54('0x2e')][_0x8a54('0x73')]=util[_0x8a54('0x63')](_0x8a54('0x74'),_0x1ac285['user'][_0x8a54('0x3a')]);_0x464883[_0x8a54('0x2e')][_0x8a54('0x75')]=_0x464883[_0x8a54('0x75')];_0x464883[_0x8a54('0x2e')][_0x8a54('0x76')]=_0x8a54('0x77');return respondWithRpcPromise(_0x8a54('0x78'),_0x8a54('0x78'),{'event':_0x8a54('0x79'),'message':_0x464883[_0x8a54('0x2e')]},client9002)[_0x8a54('0x25')](function(){return _0x464883;});}return _0x464883;}return null;})[_0x8a54('0x25')](respondWithResult(_0x2a1585,null))[_0x8a54('0x58')](handleError(_0x2a1585,null));};var interaction_log=require('../../config/logger')(_0x8a54('0x7a'));exports[_0x8a54('0x7b')]=function(_0x235d38,_0x40e331,_0x37e368){var _0x34f998={'agent':{},'channel':_0x8a54('0x60')};if(_0x235d38[_0x8a54('0x5e')]['id']){delete _0x235d38[_0x8a54('0x5e')]['id'];}_0x235d38[_0x8a54('0x5e')]['UserId']=_0x235d38[_0x8a54('0x5e')][_0x8a54('0x65')]||_0x235d38[_0x8a54('0x66')]['id'];_0x34f998[_0x8a54('0x67')]['id']=_0x235d38[_0x8a54('0x5e')][_0x8a54('0x65')];return db[_0x8a54('0x3e')][_0x8a54('0x5c')]({'where':{'id':_0x235d38[_0x8a54('0x5a')]['id'],'UserId':null}})[_0x8a54('0x25')](handleEntityNotFound(_0x40e331,null))[_0x8a54('0x25')](function(_0x1eb72e){if(_0x1eb72e){_0x34f998[_0x8a54('0x2e')]=_0x1eb72e[_0x8a54('0x6d')]({'plain':!![]});return db[_0x8a54('0x6a')][_0x8a54('0x5c')]({'where':{'id':_0x1eb72e['OpenchannelInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x40e331,null))[_0x8a54('0x25')](function(_0x4800f8){if(_0x4800f8){_0x34f998['interaction']=_0x4800f8[_0x8a54('0x6d')]({'plain':!![]});interaction_log[_0x8a54('0x26')](_0x8a54('0x7c'),_0x235d38[_0x8a54('0x66')]['id'],_0x235d38[_0x8a54('0x66')][_0x8a54('0x3a')],_0x235d38[_0x8a54('0x66')][_0x8a54('0x6f')],_0x34f998[_0x8a54('0x70')]['id'],_0x235d38[_0x8a54('0x5e')]?JSON['stringify'](_0x235d38[_0x8a54('0x5e')]):_0x8a54('0x7d'));return respondWithRpcPromise('RejectMessage',_0x8a54('0x7e'),_0x34f998);}return null;})[_0x8a54('0x25')](function(_0x145436){if(_0x145436){_0x145436[_0x8a54('0x2e')][_0x8a54('0x73')]=util['format'](_0x8a54('0x74'),_0x235d38['user'][_0x8a54('0x3a')]);_0x145436[_0x8a54('0x2e')]['channel']=_0x34f998[_0x8a54('0x75')];_0x145436['message'][_0x8a54('0x76')]=_0x8a54('0x7b');respondWithRpcPromise(_0x8a54('0x78'),'EventManager',{'event':_0x8a54('0x7f'),'message':_0x145436[_0x8a54('0x2e')]},client9002);return _0x34f998;}return null;})[_0x8a54('0x25')](respondWithResult(_0x40e331,null))['catch'](handleError(_0x40e331,null));};