269a64254c9782cafce5f6f66f8c0fcbce509845
[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 _0x0439=['desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','./openchannelMessage.socket','jayson/promise','client','http','request','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','result','status','count','offset','limit','Content-Range','json','apply','reject','then','destroy','end','sendStatus','name','send','map','OpenchannelMessage','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','sort','pick','filter','where','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','merge','find','create','body','update','describe','../../config/logger','accept','openchannel','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','interaction','role','null','AcceptMessage','acceptMessage','manual','interface','event','EventManager','acceptmessage','openchannel-interactions','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','SIP/%s','channel','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','squel','crypto'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x0439,0xdd));var _0x9043=function(_0x522df5,_0x3364ae){_0x522df5=_0x522df5-0x0;var _0x3fffd4=_0x0439[_0x522df5];return _0x3fffd4;};'use strict';var pdf=require(_0x9043('0x0'));var emlformat=require(_0x9043('0x1'));var rimraf=require(_0x9043('0x2'));var zipdir=require(_0x9043('0x3'));var jsonpatch=require(_0x9043('0x4'));var rp=require(_0x9043('0x5'));var moment=require(_0x9043('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x9043('0x7'));var util=require(_0x9043('0x8'));var path=require(_0x9043('0x9'));var sox=require('sox');var csv=require(_0x9043('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x9043('0xb'));var crypto=require(_0x9043('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9043('0xd'));var toCsv=require('to-csv');var querystring=require(_0x9043('0xe'));var Papa=require(_0x9043('0xf'));var Redis=require('ioredis');var authService=require(_0x9043('0x10'));var qs=require(_0x9043('0x11'));var as=require(_0x9043('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9043('0x13'));var utils=require(_0x9043('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9043('0x15'));var db=require(_0x9043('0x16'))['db'];config[_0x9043('0x17')]=_[_0x9043('0x18')](config[_0x9043('0x17')],{'host':_0x9043('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9043('0x17')]));require(_0x9043('0x1a'))['register'](socket);var jayson=require(_0x9043('0x1b'));var client=jayson[_0x9043('0x1c')]['http']({'port':0x232c});var client9002=jayson[_0x9043('0x1c')][_0x9043('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x3aaee1,_0x2b3c2d,_0x1691e9,_0x2bd42e){return new BPromise(function(_0x13b613,_0x112f40){var _0x21f330=_0x2bd42e||client;return _0x21f330[_0x9043('0x1e')](_0x3aaee1,_0x1691e9)['then'](function(_0x584fd9){logger['info'](_0x9043('0x1f'),_0x2b3c2d,_0x9043('0x20'));logger[_0x9043('0x21')](_0x9043('0x22'),_0x2b3c2d,'request\x20sent',JSON[_0x9043('0x23')](_0x584fd9));if(_0x584fd9['error']){if(_0x584fd9['error'][_0x9043('0x24')]===0x1f4){logger[_0x9043('0x25')](_0x9043('0x1f'),_0x2b3c2d,_0x584fd9[_0x9043('0x25')][_0x9043('0x26')]);return _0x112f40(_0x584fd9[_0x9043('0x25')][_0x9043('0x26')]);}logger[_0x9043('0x25')]('OpenchannelMessage,\x20%s,\x20%s',_0x2b3c2d,_0x584fd9[_0x9043('0x25')][_0x9043('0x26')]);return _0x13b613(_0x584fd9[_0x9043('0x25')]['message']);}else{logger[_0x9043('0x27')](_0x9043('0x1f'),_0x2b3c2d,_0x9043('0x20'));_0x13b613(_0x584fd9[_0x9043('0x28')][_0x9043('0x26')]);}})['catch'](function(_0x16caf2){logger[_0x9043('0x25')](_0x9043('0x1f'),_0x2b3c2d,_0x16caf2);_0x112f40(_0x16caf2);});});}function respondWithStatusCode(_0x342d5e,_0x2003c3){_0x2003c3=_0x2003c3||0xcc;return function(_0x13e8dd){if(_0x13e8dd){return _0x342d5e['sendStatus'](_0x2003c3);}return _0x342d5e[_0x9043('0x29')](_0x2003c3)['end']();};}function respondWithResult(_0x45bec7,_0x2bcf73){_0x2bcf73=_0x2bcf73||0xc8;return function(_0x3a0ffd){if(_0x3a0ffd){return _0x45bec7[_0x9043('0x29')](_0x2bcf73)['json'](_0x3a0ffd);}};}function respondWithFilteredResult(_0xc92d75,_0x2e12b1){return function(_0x14cf80){if(_0x14cf80){var _0x228d7f=_0x14cf80[_0x9043('0x2a')],_0x37ecc2=_0x2e12b1[_0x9043('0x2b')],_0x590357=_0x2e12b1['offset']+_0x2e12b1[_0x9043('0x2c')],_0x352934;if(_0x590357>=_0x228d7f){_0x590357=_0x228d7f;_0x352934=0xc8;}else{_0x352934=0xce;}_0xc92d75[_0x9043('0x29')](_0x352934);return _0xc92d75['set'](_0x9043('0x2d'),_0x37ecc2+'-'+_0x590357+'/'+_0x228d7f)[_0x9043('0x2e')](_0x14cf80);}return null;};}function patchUpdates(_0x54e86d){return function(_0x21eb3d){try{jsonpatch[_0x9043('0x2f')](_0x21eb3d,_0x54e86d,!![]);}catch(_0x414320){return BPromise[_0x9043('0x30')](_0x414320);}return _0x21eb3d['save']();};}function saveUpdates(_0x307e5a,_0x321b9a){return function(_0x4913c5){if(_0x4913c5){return _0x4913c5['update'](_0x307e5a)[_0x9043('0x31')](function(_0x579277){return _0x579277;});}return null;};}function removeEntity(_0x1ef93a,_0x11a1be){return function(_0xb7aa24){if(_0xb7aa24){return _0xb7aa24[_0x9043('0x32')]()['then'](function(){_0x1ef93a['status'](0xcc)[_0x9043('0x33')]();});}};}function handleEntityNotFound(_0x446956,_0x391a82){return function(_0x119133){if(!_0x119133){_0x446956[_0x9043('0x34')](0x194);}return _0x119133;};}function handleError(_0x12a037,_0x2e3aeb){_0x2e3aeb=_0x2e3aeb||0x1f4;return function(_0x545727){logger[_0x9043('0x25')](_0x545727['stack']);if(_0x545727[_0x9043('0x35')]){delete _0x545727['name'];}_0x12a037[_0x9043('0x29')](_0x2e3aeb)[_0x9043('0x36')](_0x545727);};}exports['index']=function(_0x4eefe0,_0x20e145){var _0x2c8697={},_0x307bf0={},_0x22e07b={'count':0x0,'rows':[]};var _0x39ab02=_[_0x9043('0x37')](db[_0x9043('0x38')][_0x9043('0x39')],function(_0x27e4ec){return{'name':_0x27e4ec[_0x9043('0x3a')],'type':_0x27e4ec[_0x9043('0x3b')][_0x9043('0x3c')]};});_0x307bf0['model']=_[_0x9043('0x37')](_0x39ab02,'name');_0x307bf0[_0x9043('0x3d')]=_[_0x9043('0x3e')](_0x4eefe0['query']);_0x307bf0[_0x9043('0x3f')]=_[_0x9043('0x40')](_0x307bf0[_0x9043('0x41')],_0x307bf0['query']);_0x2c8697[_0x9043('0x42')]=_[_0x9043('0x40')](_0x307bf0[_0x9043('0x41')],qs[_0x9043('0x43')](_0x4eefe0[_0x9043('0x3d')][_0x9043('0x43')]));_0x2c8697[_0x9043('0x42')]=_0x2c8697[_0x9043('0x42')]['length']?_0x2c8697[_0x9043('0x42')]:_0x307bf0['model'];if(!_0x4eefe0['query'][_0x9043('0x44')]('nolimit')){_0x2c8697[_0x9043('0x2c')]=qs['limit'](_0x4eefe0[_0x9043('0x3d')][_0x9043('0x2c')]);_0x2c8697[_0x9043('0x2b')]=qs[_0x9043('0x2b')](_0x4eefe0[_0x9043('0x3d')][_0x9043('0x2b')]);}_0x2c8697['order']=qs[_0x9043('0x45')](_0x4eefe0[_0x9043('0x3d')][_0x9043('0x45')]);_0x2c8697['where']=qs[_0x9043('0x3f')](_[_0x9043('0x46')](_0x4eefe0['query'],_0x307bf0[_0x9043('0x3f')]),_0x39ab02);if(_0x4eefe0['query'][_0x9043('0x47')]){_0x2c8697[_0x9043('0x48')]=_['merge'](_0x2c8697['where'],{'$or':_[_0x9043('0x37')](_0x39ab02,function(_0x222a57){if(_0x222a57[_0x9043('0x3b')]!==_0x9043('0x49')){var _0x5e797b={};_0x5e797b[_0x222a57[_0x9043('0x35')]]={'$like':'%'+_0x4eefe0[_0x9043('0x3d')]['filter']+'%'};return _0x5e797b;}})});}_0x2c8697=_['merge']({},_0x2c8697,_0x4eefe0[_0x9043('0x4a')]);var _0x1748df={'where':_0x2c8697['where']};return db[_0x9043('0x38')][_0x9043('0x2a')](_0x1748df)[_0x9043('0x31')](function(_0x1c725f){_0x22e07b['count']=_0x1c725f;if(_0x4eefe0[_0x9043('0x3d')][_0x9043('0x4b')]){_0x2c8697['include']=[{'all':!![]}];}return db[_0x9043('0x38')][_0x9043('0x4c')](_0x2c8697);})[_0x9043('0x31')](function(_0x115c66){_0x22e07b[_0x9043('0x4d')]=_0x115c66;return _0x22e07b;})[_0x9043('0x31')](respondWithFilteredResult(_0x20e145,_0x2c8697))[_0x9043('0x4e')](handleError(_0x20e145,null));};exports[_0x9043('0x4f')]=function(_0x3d7c69,_0x45c3d3){var _0x123875={'raw':!![],'where':{'id':_0x3d7c69[_0x9043('0x50')]['id']}},_0x1619b1={};_0x1619b1[_0x9043('0x41')]=_['keys'](db[_0x9043('0x38')][_0x9043('0x39')]);_0x1619b1['query']=_[_0x9043('0x3e')](_0x3d7c69[_0x9043('0x3d')]);_0x1619b1[_0x9043('0x3f')]=_['intersection'](_0x1619b1['model'],_0x1619b1[_0x9043('0x3d')]);_0x123875[_0x9043('0x42')]=_[_0x9043('0x40')](_0x1619b1[_0x9043('0x41')],qs['fields'](_0x3d7c69[_0x9043('0x3d')][_0x9043('0x43')]));_0x123875[_0x9043('0x42')]=_0x123875[_0x9043('0x42')]['length']?_0x123875[_0x9043('0x42')]:_0x1619b1['model'];if(_0x3d7c69['query'][_0x9043('0x4b')]){_0x123875[_0x9043('0x51')]=[{'all':!![]}];}_0x123875=_[_0x9043('0x52')]({},_0x123875,_0x3d7c69[_0x9043('0x4a')]);return db[_0x9043('0x38')][_0x9043('0x53')](_0x123875)[_0x9043('0x31')](handleEntityNotFound(_0x45c3d3,null))[_0x9043('0x31')](respondWithResult(_0x45c3d3,null))[_0x9043('0x4e')](handleError(_0x45c3d3,null));};exports[_0x9043('0x54')]=function(_0x156a6d,_0x2f3b6a){return db[_0x9043('0x38')][_0x9043('0x54')](_0x156a6d[_0x9043('0x55')],{})['then'](respondWithResult(_0x2f3b6a,0xc9))['catch'](handleError(_0x2f3b6a,null));};exports[_0x9043('0x56')]=function(_0x3070f5,_0x4d99c3){if(_0x3070f5[_0x9043('0x55')]['id']){delete _0x3070f5['body']['id'];}return db[_0x9043('0x38')][_0x9043('0x53')]({'where':{'id':_0x3070f5[_0x9043('0x50')]['id']}})[_0x9043('0x31')](handleEntityNotFound(_0x4d99c3,null))[_0x9043('0x31')](saveUpdates(_0x3070f5[_0x9043('0x55')],null))[_0x9043('0x31')](respondWithResult(_0x4d99c3,null))[_0x9043('0x4e')](handleError(_0x4d99c3,null));};exports[_0x9043('0x32')]=function(_0xdf54bd,_0x29b510){return db['OpenchannelMessage'][_0x9043('0x53')]({'where':{'id':_0xdf54bd[_0x9043('0x50')]['id']}})[_0x9043('0x31')](handleEntityNotFound(_0x29b510,null))[_0x9043('0x31')](removeEntity(_0x29b510,null))['catch'](handleError(_0x29b510,null));};exports[_0x9043('0x57')]=function(_0x265a32,_0x459b8b){return db[_0x9043('0x38')][_0x9043('0x57')]()['then'](respondWithResult(_0x459b8b,null))[_0x9043('0x4e')](handleError(_0x459b8b,null));};var interaction_log=require(_0x9043('0x58'))('openchannel-interactions');exports[_0x9043('0x59')]=function(_0x22de5a,_0x2d999d,_0x1996ce){var _0x32a29e={'channel':_0x9043('0x5a')};if(_0x22de5a['body']['id']){delete _0x22de5a['body']['id'];}_0x22de5a['body']['read']=!![];_0x22de5a[_0x9043('0x55')]['readAt']=moment()[_0x9043('0x5b')](_0x9043('0x5c'));_0x22de5a[_0x9043('0x55')]['UserId']=_0x22de5a[_0x9043('0x55')][_0x9043('0x5d')]||_0x22de5a[_0x9043('0x5e')]['id'];return db[_0x9043('0x38')][_0x9043('0x53')]({'where':{'id':_0x22de5a[_0x9043('0x50')]['id'],'UserId':null},'include':[{'model':db[_0x9043('0x5f')],'as':_0x9043('0x60')}]})[_0x9043('0x31')](handleEntityNotFound(_0x2d999d,null))['then'](saveUpdates(_0x22de5a[_0x9043('0x55')],null))[_0x9043('0x31')](function(_0x349669){if(_0x349669){_0x32a29e[_0x9043('0x26')]=_0x349669[_0x9043('0x61')]({'plain':!![]});return db[_0x9043('0x62')][_0x9043('0x53')]({'where':{'id':_0x349669[_0x9043('0x63')]}});}return null;})['then'](handleEntityNotFound(_0x2d999d,null))[_0x9043('0x31')](function(_0x4b9158){if(_0x4b9158){return _0x4b9158[_0x9043('0x56')]({'UserId':_0x22de5a[_0x9043('0x55')]['UserId'],'read1stAt':_['isNil'](_0x4b9158['read1stAt'])?moment()[_0x9043('0x5b')](_0x9043('0x5c')):undefined});}return null;})['then'](function(_0x11856a){if(_0x11856a){_0x32a29e[_0x9043('0x64')]=_0x11856a['get']({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x22de5a[_0x9043('0x5e')]['id'],_0x22de5a[_0x9043('0x5e')]['name'],_0x22de5a['user'][_0x9043('0x65')],_0x32a29e[_0x9043('0x64')]['id'],_0x22de5a[_0x9043('0x55')]?JSON[_0x9043('0x23')](_0x22de5a[_0x9043('0x55')]):_0x9043('0x66'));return respondWithRpcPromise(_0x9043('0x67'),_0x9043('0x68'),_0x32a29e);}return null;})[_0x9043('0x31')](function(_0x1696bc){if(_0x1696bc){if(_0x22de5a['body'][_0x9043('0x69')]){_0x32a29e[_0x9043('0x26')][_0x9043('0x6a')]=util['format']('SIP/%s',_0x22de5a[_0x9043('0x5e')][_0x9043('0x35')]);_0x32a29e[_0x9043('0x26')]['channel']=_0x32a29e['channel'];_0x32a29e[_0x9043('0x26')][_0x9043('0x6b')]='accept';return respondWithRpcPromise(_0x9043('0x6c'),_0x9043('0x6c'),{'event':_0x9043('0x6d'),'message':_0x32a29e[_0x9043('0x26')]},client9002)[_0x9043('0x31')](function(){return _0x32a29e;});}return _0x32a29e;}return null;})['then'](respondWithResult(_0x2d999d,null))[_0x9043('0x4e')](handleError(_0x2d999d,null));};var interaction_log=require(_0x9043('0x58'))(_0x9043('0x6e'));exports['reject']=function(_0xf300d8,_0x3f5449,_0x69aea){var _0x2a2229={'agent':{},'channel':'openchannel'};if(_0xf300d8[_0x9043('0x55')]['id']){delete _0xf300d8[_0x9043('0x55')]['id'];}_0xf300d8['body'][_0x9043('0x5d')]=_0xf300d8[_0x9043('0x55')][_0x9043('0x5d')]||_0xf300d8[_0x9043('0x5e')]['id'];_0x2a2229[_0x9043('0x6f')]['id']=_0xf300d8['body'][_0x9043('0x5d')];return db[_0x9043('0x38')][_0x9043('0x53')]({'where':{'id':_0xf300d8['params']['id'],'UserId':null}})[_0x9043('0x31')](handleEntityNotFound(_0x3f5449,null))['then'](function(_0x9dae43){if(_0x9dae43){_0x2a2229['message']=_0x9dae43[_0x9043('0x61')]({'plain':!![]});return db[_0x9043('0x62')][_0x9043('0x53')]({'where':{'id':_0x9dae43[_0x9043('0x63')]}});}return null;})['then'](handleEntityNotFound(_0x3f5449,null))[_0x9043('0x31')](function(_0x5675a6){if(_0x5675a6){_0x2a2229[_0x9043('0x64')]=_0x5675a6[_0x9043('0x61')]({'plain':!![]});interaction_log[_0x9043('0x27')](_0x9043('0x70'),_0xf300d8['user']['id'],_0xf300d8[_0x9043('0x5e')][_0x9043('0x35')],_0xf300d8[_0x9043('0x5e')][_0x9043('0x65')],_0x2a2229[_0x9043('0x64')]['id'],_0xf300d8[_0x9043('0x55')]?JSON['stringify'](_0xf300d8[_0x9043('0x55')]):_0x9043('0x66'));return respondWithRpcPromise(_0x9043('0x71'),'rejectMessage',_0x2a2229);}return null;})[_0x9043('0x31')](function(_0x120c02){if(_0x120c02){_0x120c02[_0x9043('0x26')][_0x9043('0x6a')]=util[_0x9043('0x5b')](_0x9043('0x72'),_0xf300d8[_0x9043('0x5e')]['name']);_0x120c02['message'][_0x9043('0x73')]=_0x2a2229[_0x9043('0x73')];_0x120c02[_0x9043('0x26')][_0x9043('0x6b')]=_0x9043('0x30');respondWithRpcPromise(_0x9043('0x6c'),_0x9043('0x6c'),{'event':_0x9043('0x74'),'message':_0x120c02[_0x9043('0x26')]},client9002);return _0x2a2229;}return null;})['then'](respondWithResult(_0x3f5449,null))[_0x9043('0x4e')](handleError(_0x3f5449,null));};