Built motion from commit (unavailable).|2.5.11
[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 _0x6582=['[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','interaction','manual','SIP/%s','channel','event','EventManager','acceptmessage','openchannel-interactions','openchannel','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','interface','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../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','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','OpenchannelMessage','rawAttributes','model','map','keys','intersection','query','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','find','create','body','describe','accept','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','get'];(function(_0x2797c6,_0x37421b){var _0x54809f=function(_0x2d100c){while(--_0x2d100c){_0x2797c6['push'](_0x2797c6['shift']());}};_0x54809f(++_0x37421b);}(_0x6582,0x108));var _0x2658=function(_0x24507a,_0x58e59b){_0x24507a=_0x24507a-0x0;var _0x20ed6a=_0x6582[_0x24507a];return _0x20ed6a;};'use strict';var pdf=require(_0x2658('0x0'));var emlformat=require(_0x2658('0x1'));var rimraf=require(_0x2658('0x2'));var zipdir=require(_0x2658('0x3'));var jsonpatch=require(_0x2658('0x4'));var rp=require('request-promise');var moment=require(_0x2658('0x5'));var BPromise=require(_0x2658('0x6'));var Mustache=require(_0x2658('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x2658('0x8'));var ejs=require(_0x2658('0x9'));var fs=require('fs');var _=require(_0x2658('0xa'));var squel=require(_0x2658('0xb'));var crypto=require(_0x2658('0xc'));var jsforce=require(_0x2658('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x2658('0x8'));var querystring=require(_0x2658('0xe'));var Papa=require(_0x2658('0xf'));var Redis=require(_0x2658('0x10'));var authService=require(_0x2658('0x11'));var qs=require(_0x2658('0x12'));var as=require(_0x2658('0x13'));var hardwareService=require(_0x2658('0x14'));var logger=require(_0x2658('0x15'))('api');var utils=require(_0x2658('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x2658('0x17'));var db=require(_0x2658('0x18'))['db'];config[_0x2658('0x19')]=_[_0x2658('0x1a')](config[_0x2658('0x19')],{'host':_0x2658('0x1b'),'port':0x18eb});var socket=require(_0x2658('0x1c'))(new Redis(config['redis']));require(_0x2658('0x1d'))[_0x2658('0x1e')](socket);var jayson=require(_0x2658('0x1f'));var client=jayson[_0x2658('0x20')][_0x2658('0x21')]({'port':0x232c});var client9002=jayson['client'][_0x2658('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x5d8ed5,_0x15bd54,_0x496524,_0xc820a){return new BPromise(function(_0x44c6d2,_0x3ebf10){var _0x215211=_0xc820a||client;return _0x215211['request'](_0x5d8ed5,_0x496524)[_0x2658('0x22')](function(_0x57337e){logger[_0x2658('0x23')](_0x2658('0x24'),_0x15bd54,_0x2658('0x25'));logger[_0x2658('0x26')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x15bd54,_0x2658('0x25'),JSON[_0x2658('0x27')](_0x57337e));if(_0x57337e[_0x2658('0x28')]){if(_0x57337e[_0x2658('0x28')][_0x2658('0x29')]===0x1f4){logger[_0x2658('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x15bd54,_0x57337e[_0x2658('0x28')]['message']);return _0x3ebf10(_0x57337e['error'][_0x2658('0x2a')]);}logger[_0x2658('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x15bd54,_0x57337e[_0x2658('0x28')]['message']);return _0x44c6d2(_0x57337e[_0x2658('0x28')][_0x2658('0x2a')]);}else{logger[_0x2658('0x23')](_0x2658('0x24'),_0x15bd54,_0x2658('0x25'));_0x44c6d2(_0x57337e[_0x2658('0x2b')][_0x2658('0x2a')]);}})[_0x2658('0x2c')](function(_0x2496bf){logger[_0x2658('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x15bd54,_0x2496bf);_0x3ebf10(_0x2496bf);});});}function respondWithStatusCode(_0x2062ef,_0x4676a4){_0x4676a4=_0x4676a4||0xcc;return function(_0x338f06){if(_0x338f06){return _0x2062ef[_0x2658('0x2d')](_0x4676a4);}return _0x2062ef[_0x2658('0x2e')](_0x4676a4)[_0x2658('0x2f')]();};}function respondWithResult(_0x58385f,_0x1d2bf4){_0x1d2bf4=_0x1d2bf4||0xc8;return function(_0x474dfe){if(_0x474dfe){return _0x58385f[_0x2658('0x2e')](_0x1d2bf4)[_0x2658('0x30')](_0x474dfe);}};}function respondWithFilteredResult(_0x27e0f5,_0x1492cb){return function(_0x256172){if(_0x256172){var _0xb8d245=_0x256172[_0x2658('0x31')],_0xd891fe=_0x1492cb[_0x2658('0x32')],_0x14784=_0x1492cb[_0x2658('0x32')]+_0x1492cb[_0x2658('0x33')],_0x2d1fad;if(_0x14784>=_0xb8d245){_0x14784=_0xb8d245;_0x2d1fad=0xc8;}else{_0x2d1fad=0xce;}_0x27e0f5[_0x2658('0x2e')](_0x2d1fad);return _0x27e0f5[_0x2658('0x34')](_0x2658('0x35'),_0xd891fe+'-'+_0x14784+'/'+_0xb8d245)['json'](_0x256172);}return null;};}function patchUpdates(_0x14bcce){return function(_0x556dca){try{jsonpatch[_0x2658('0x36')](_0x556dca,_0x14bcce,!![]);}catch(_0x49bd5e){return BPromise[_0x2658('0x37')](_0x49bd5e);}return _0x556dca[_0x2658('0x38')]();};}function saveUpdates(_0x28cea6,_0x5e9e6f){return function(_0x25ca0f){if(_0x25ca0f){return _0x25ca0f[_0x2658('0x39')](_0x28cea6)[_0x2658('0x22')](function(_0x455e1b){return _0x455e1b;});}return null;};}function removeEntity(_0x28b0bf,_0x11793a){return function(_0x147240){if(_0x147240){return _0x147240[_0x2658('0x3a')]()[_0x2658('0x22')](function(){_0x28b0bf['status'](0xcc)[_0x2658('0x2f')]();});}};}function handleEntityNotFound(_0xebb0df,_0x23bd89){return function(_0x4e7578){if(!_0x4e7578){_0xebb0df['sendStatus'](0x194);}return _0x4e7578;};}function handleError(_0x5c0f51,_0x15e7ec){_0x15e7ec=_0x15e7ec||0x1f4;return function(_0x202d6e){logger[_0x2658('0x28')](_0x202d6e[_0x2658('0x3b')]);if(_0x202d6e[_0x2658('0x3c')]){delete _0x202d6e[_0x2658('0x3c')];}_0x5c0f51['status'](_0x15e7ec)[_0x2658('0x3d')](_0x202d6e);};}exports[_0x2658('0x3e')]=function(_0x2b3b99,_0x5ad5f0){var _0xb8fd62={},_0x3798ba={},_0x117010={'count':0x0,'rows':[]};var _0x180c59=_['map'](db[_0x2658('0x3f')][_0x2658('0x40')],function(_0x5cb0b9){return{'name':_0x5cb0b9['fieldName'],'type':_0x5cb0b9['type']['key']};});_0x3798ba[_0x2658('0x41')]=_[_0x2658('0x42')](_0x180c59,_0x2658('0x3c'));_0x3798ba['query']=_[_0x2658('0x43')](_0x2b3b99['query']);_0x3798ba['filters']=_[_0x2658('0x44')](_0x3798ba[_0x2658('0x41')],_0x3798ba[_0x2658('0x45')]);_0xb8fd62['attributes']=_['intersection'](_0x3798ba['model'],qs['fields'](_0x2b3b99[_0x2658('0x45')][_0x2658('0x46')]));_0xb8fd62[_0x2658('0x47')]=_0xb8fd62[_0x2658('0x47')]['length']?_0xb8fd62[_0x2658('0x47')]:_0x3798ba[_0x2658('0x41')];if(!_0x2b3b99[_0x2658('0x45')][_0x2658('0x48')](_0x2658('0x49'))){_0xb8fd62['limit']=qs[_0x2658('0x33')](_0x2b3b99[_0x2658('0x45')][_0x2658('0x33')]);_0xb8fd62[_0x2658('0x32')]=qs[_0x2658('0x32')](_0x2b3b99[_0x2658('0x45')][_0x2658('0x32')]);}_0xb8fd62[_0x2658('0x4a')]=qs[_0x2658('0x4b')](_0x2b3b99[_0x2658('0x45')][_0x2658('0x4b')]);_0xb8fd62[_0x2658('0x4c')]=qs['filters'](_['pick'](_0x2b3b99[_0x2658('0x45')],_0x3798ba[_0x2658('0x4d')]),_0x180c59);if(_0x2b3b99[_0x2658('0x45')]['filter']){_0xb8fd62[_0x2658('0x4c')]=_[_0x2658('0x4e')](_0xb8fd62[_0x2658('0x4c')],{'$or':_[_0x2658('0x42')](_0x180c59,function(_0x5c1340){if(_0x5c1340[_0x2658('0x4f')]!==_0x2658('0x50')){var _0x41ac72={};_0x41ac72[_0x5c1340[_0x2658('0x3c')]]={'$like':'%'+_0x2b3b99[_0x2658('0x45')][_0x2658('0x51')]+'%'};return _0x41ac72;}})});}_0xb8fd62=_['merge']({},_0xb8fd62,_0x2b3b99[_0x2658('0x52')]);var _0x59c41b={'where':_0xb8fd62[_0x2658('0x4c')]};return db[_0x2658('0x3f')]['count'](_0x59c41b)[_0x2658('0x22')](function(_0x21f380){_0x117010['count']=_0x21f380;if(_0x2b3b99[_0x2658('0x45')][_0x2658('0x53')]){_0xb8fd62[_0x2658('0x54')]=[{'all':!![]}];}return db[_0x2658('0x3f')][_0x2658('0x55')](_0xb8fd62);})['then'](function(_0x2764f0){_0x117010[_0x2658('0x56')]=_0x2764f0;return _0x117010;})['then'](respondWithFilteredResult(_0x5ad5f0,_0xb8fd62))[_0x2658('0x2c')](handleError(_0x5ad5f0,null));};exports[_0x2658('0x57')]=function(_0x2e0558,_0x1efb33){var _0x5d699d={'raw':!![],'where':{'id':_0x2e0558[_0x2658('0x58')]['id']}},_0x2436c1={};_0x2436c1[_0x2658('0x41')]=_[_0x2658('0x43')](db[_0x2658('0x3f')][_0x2658('0x40')]);_0x2436c1[_0x2658('0x45')]=_['keys'](_0x2e0558[_0x2658('0x45')]);_0x2436c1['filters']=_[_0x2658('0x44')](_0x2436c1['model'],_0x2436c1[_0x2658('0x45')]);_0x5d699d[_0x2658('0x47')]=_[_0x2658('0x44')](_0x2436c1[_0x2658('0x41')],qs[_0x2658('0x46')](_0x2e0558['query'][_0x2658('0x46')]));_0x5d699d[_0x2658('0x47')]=_0x5d699d[_0x2658('0x47')]['length']?_0x5d699d[_0x2658('0x47')]:_0x2436c1[_0x2658('0x41')];if(_0x2e0558[_0x2658('0x45')][_0x2658('0x53')]){_0x5d699d['include']=[{'all':!![]}];}_0x5d699d=_[_0x2658('0x4e')]({},_0x5d699d,_0x2e0558['options']);return db['OpenchannelMessage'][_0x2658('0x59')](_0x5d699d)[_0x2658('0x22')](handleEntityNotFound(_0x1efb33,null))[_0x2658('0x22')](respondWithResult(_0x1efb33,null))['catch'](handleError(_0x1efb33,null));};exports[_0x2658('0x5a')]=function(_0x27efa5,_0x54b7c5){return db[_0x2658('0x3f')]['create'](_0x27efa5['body'],{})[_0x2658('0x22')](respondWithResult(_0x54b7c5,0xc9))[_0x2658('0x2c')](handleError(_0x54b7c5,null));};exports['update']=function(_0x209875,_0x763583){if(_0x209875[_0x2658('0x5b')]['id']){delete _0x209875['body']['id'];}return db['OpenchannelMessage'][_0x2658('0x59')]({'where':{'id':_0x209875['params']['id']}})['then'](handleEntityNotFound(_0x763583,null))[_0x2658('0x22')](saveUpdates(_0x209875['body'],null))[_0x2658('0x22')](respondWithResult(_0x763583,null))[_0x2658('0x2c')](handleError(_0x763583,null));};exports[_0x2658('0x3a')]=function(_0x2adab1,_0x22f2dc){return db[_0x2658('0x3f')][_0x2658('0x59')]({'where':{'id':_0x2adab1['params']['id']}})[_0x2658('0x22')](handleEntityNotFound(_0x22f2dc,null))['then'](removeEntity(_0x22f2dc,null))[_0x2658('0x2c')](handleError(_0x22f2dc,null));};exports[_0x2658('0x5c')]=function(_0x2f5a07,_0x41208a){return db['OpenchannelMessage']['describe']()[_0x2658('0x22')](respondWithResult(_0x41208a,null))[_0x2658('0x2c')](handleError(_0x41208a,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports[_0x2658('0x5d')]=function(_0x313256,_0x41b9ca,_0x3d5b82){var _0x2040e6={'channel':'openchannel'};if(_0x313256[_0x2658('0x5b')]['id']){delete _0x313256['body']['id'];}_0x313256[_0x2658('0x5b')][_0x2658('0x5e')]=!![];_0x313256['body'][_0x2658('0x5f')]=moment()[_0x2658('0x60')](_0x2658('0x61'));_0x313256[_0x2658('0x5b')][_0x2658('0x62')]=_0x313256[_0x2658('0x5b')][_0x2658('0x62')]||_0x313256['user']['id'];return db['OpenchannelMessage']['find']({'where':{'id':_0x313256['params']['id'],'UserId':null},'include':[{'model':db[_0x2658('0x63')],'as':'Contact'}]})[_0x2658('0x22')](handleEntityNotFound(_0x41b9ca,null))[_0x2658('0x22')](saveUpdates(_0x313256[_0x2658('0x5b')],null))[_0x2658('0x22')](function(_0x47a6bb){if(_0x47a6bb){_0x2040e6[_0x2658('0x2a')]=_0x47a6bb['get']({'plain':!![]});return db[_0x2658('0x64')][_0x2658('0x59')]({'where':{'id':_0x47a6bb[_0x2658('0x65')]}});}return null;})[_0x2658('0x22')](handleEntityNotFound(_0x41b9ca,null))['then'](function(_0x2a92b7){if(_0x2a92b7){return _0x2a92b7['update']({'UserId':_0x313256[_0x2658('0x5b')][_0x2658('0x62')],'read1stAt':_[_0x2658('0x66')](_0x2a92b7[_0x2658('0x67')])?moment()[_0x2658('0x60')](_0x2658('0x61')):undefined});}return null;})[_0x2658('0x22')](function(_0x37cab0){if(_0x37cab0){_0x2040e6['interaction']=_0x37cab0[_0x2658('0x68')]({'plain':!![]});interaction_log[_0x2658('0x23')](_0x2658('0x69'),_0x313256['user']['id'],_0x313256[_0x2658('0x6a')]['name'],_0x313256[_0x2658('0x6a')]['role'],_0x2040e6[_0x2658('0x6b')]['id'],_0x313256[_0x2658('0x5b')]?JSON[_0x2658('0x27')](_0x313256['body']):'null');return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x2040e6);}return null;})['then'](function(_0x2d4bb9){if(_0x2d4bb9){if(_0x313256[_0x2658('0x5b')][_0x2658('0x6c')]){_0x2040e6[_0x2658('0x2a')]['interface']=util[_0x2658('0x60')](_0x2658('0x6d'),_0x313256['user'][_0x2658('0x3c')]);_0x2040e6['message'][_0x2658('0x6e')]=_0x2040e6[_0x2658('0x6e')];_0x2040e6[_0x2658('0x2a')][_0x2658('0x6f')]=_0x2658('0x5d');return respondWithRpcPromise(_0x2658('0x70'),_0x2658('0x70'),{'event':_0x2658('0x71'),'message':_0x2040e6[_0x2658('0x2a')]},client9002)['then'](function(){return _0x2040e6;});}return _0x2040e6;}return null;})['then'](respondWithResult(_0x41b9ca,null))[_0x2658('0x2c')](handleError(_0x41b9ca,null));};var interaction_log=require(_0x2658('0x15'))(_0x2658('0x72'));exports['reject']=function(_0x335650,_0x431951,_0x1191ee){var _0x24b42d={'agent':{},'channel':_0x2658('0x73')};if(_0x335650['body']['id']){delete _0x335650[_0x2658('0x5b')]['id'];}_0x335650[_0x2658('0x5b')][_0x2658('0x62')]=_0x335650['body'][_0x2658('0x62')]||_0x335650[_0x2658('0x6a')]['id'];_0x24b42d[_0x2658('0x74')]['id']=_0x335650[_0x2658('0x5b')]['UserId'];return db['OpenchannelMessage']['find']({'where':{'id':_0x335650[_0x2658('0x58')]['id'],'UserId':null}})[_0x2658('0x22')](handleEntityNotFound(_0x431951,null))[_0x2658('0x22')](function(_0x1d793e){if(_0x1d793e){_0x24b42d[_0x2658('0x2a')]=_0x1d793e[_0x2658('0x68')]({'plain':!![]});return db[_0x2658('0x64')]['find']({'where':{'id':_0x1d793e['OpenchannelInteractionId']}});}return null;})[_0x2658('0x22')](handleEntityNotFound(_0x431951,null))[_0x2658('0x22')](function(_0x4ac1b4){if(_0x4ac1b4){_0x24b42d['interaction']=_0x4ac1b4[_0x2658('0x68')]({'plain':!![]});interaction_log[_0x2658('0x23')](_0x2658('0x75'),_0x335650[_0x2658('0x6a')]['id'],_0x335650[_0x2658('0x6a')][_0x2658('0x3c')],_0x335650[_0x2658('0x6a')]['role'],_0x24b42d['interaction']['id'],_0x335650[_0x2658('0x5b')]?JSON['stringify'](_0x335650[_0x2658('0x5b')]):_0x2658('0x76'));return respondWithRpcPromise(_0x2658('0x77'),_0x2658('0x78'),_0x24b42d);}return null;})[_0x2658('0x22')](function(_0x4b47a6){if(_0x4b47a6){_0x4b47a6[_0x2658('0x2a')][_0x2658('0x79')]=util[_0x2658('0x60')](_0x2658('0x6d'),_0x335650[_0x2658('0x6a')]['name']);_0x4b47a6[_0x2658('0x2a')]['channel']=_0x24b42d[_0x2658('0x6e')];_0x4b47a6[_0x2658('0x2a')]['event']=_0x2658('0x37');respondWithRpcPromise('EventManager',_0x2658('0x70'),{'event':_0x2658('0x7a'),'message':_0x4b47a6[_0x2658('0x2a')]},client9002);return _0x24b42d;}return null;})['then'](respondWithResult(_0x431951,null))[_0x2658('0x2c')](handleError(_0x431951,null));};