f13de2e85c949bc7850c11f3999e29a751d85e5a
[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 _0x0cee=['keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','includeAll','include','rows','show','params','rawAttributes','find','create','body','describe','openchannel-interactions','accept','read','readAt','format','UserId','user','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','reject','openchannel','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','jayson/promise','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','update','destroy','stack','name','send','map','OpenchannelMessage','fieldName','key','model','query'];(function(_0x3a5da5,_0x58eaa0){var _0x2de0e5=function(_0x2f1d09){while(--_0x2f1d09){_0x3a5da5['push'](_0x3a5da5['shift']());}};_0x2de0e5(++_0x58eaa0);}(_0x0cee,0x12f));var _0xe0ce=function(_0x5e81a5,_0x9ba84c){_0x5e81a5=_0x5e81a5-0x0;var _0x4ebeaf=_0x0cee[_0x5e81a5];return _0x4ebeaf;};'use strict';var pdf=require(_0xe0ce('0x0'));var emlformat=require(_0xe0ce('0x1'));var rimraf=require(_0xe0ce('0x2'));var zipdir=require(_0xe0ce('0x3'));var jsonpatch=require(_0xe0ce('0x4'));var rp=require(_0xe0ce('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe0ce('0x6'));var util=require(_0xe0ce('0x7'));var path=require(_0xe0ce('0x8'));var sox=require(_0xe0ce('0x9'));var csv=require(_0xe0ce('0xa'));var ejs=require(_0xe0ce('0xb'));var fs=require('fs');var _=require(_0xe0ce('0xc'));var squel=require(_0xe0ce('0xd'));var crypto=require('crypto');var jsforce=require(_0xe0ce('0xe'));var deskjs=require(_0xe0ce('0xf'));var toCsv=require('to-csv');var querystring=require(_0xe0ce('0x10'));var Papa=require(_0xe0ce('0x11'));var Redis=require(_0xe0ce('0x12'));var authService=require(_0xe0ce('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe0ce('0x14'))(_0xe0ce('0x15'));var utils=require(_0xe0ce('0x16'));var config=require(_0xe0ce('0x17'));var licenseUtil=require(_0xe0ce('0x18'));var db=require(_0xe0ce('0x19'))['db'];config[_0xe0ce('0x1a')]=_[_0xe0ce('0x1b')](config[_0xe0ce('0x1a')],{'host':_0xe0ce('0x1c'),'port':0x18eb});var socket=require(_0xe0ce('0x1d'))(new Redis(config[_0xe0ce('0x1a')]));require('./openchannelMessage.socket')['register'](socket);var jayson=require(_0xe0ce('0x1e'));var client=jayson[_0xe0ce('0x1f')]['http']({'port':0x232c});var client9002=jayson['client'][_0xe0ce('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x220456,_0x49e9d1,_0x4169ce,_0x11cbc9){return new BPromise(function(_0x4e82bc,_0x67aa85){var _0x4e4e19=_0x11cbc9||client;return _0x4e4e19[_0xe0ce('0x21')](_0x220456,_0x4169ce)[_0xe0ce('0x22')](function(_0x2182e1){logger[_0xe0ce('0x23')](_0xe0ce('0x24'),_0x49e9d1,'request\x20sent');logger['debug'](_0xe0ce('0x25'),_0x49e9d1,'request\x20sent',JSON['stringify'](_0x2182e1));if(_0x2182e1[_0xe0ce('0x26')]){if(_0x2182e1[_0xe0ce('0x26')]['code']===0x1f4){logger[_0xe0ce('0x26')](_0xe0ce('0x24'),_0x49e9d1,_0x2182e1[_0xe0ce('0x26')][_0xe0ce('0x27')]);return _0x67aa85(_0x2182e1[_0xe0ce('0x26')]['message']);}logger[_0xe0ce('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x49e9d1,_0x2182e1[_0xe0ce('0x26')]['message']);return _0x4e82bc(_0x2182e1['error']['message']);}else{logger['info'](_0xe0ce('0x24'),_0x49e9d1,'request\x20sent');_0x4e82bc(_0x2182e1[_0xe0ce('0x28')][_0xe0ce('0x27')]);}})[_0xe0ce('0x29')](function(_0x19ad73){logger[_0xe0ce('0x26')](_0xe0ce('0x24'),_0x49e9d1,_0x19ad73);_0x67aa85(_0x19ad73);});});}function respondWithStatusCode(_0xb9fb3,_0x2b2dfc){_0x2b2dfc=_0x2b2dfc||0xcc;return function(_0x417fe3){if(_0x417fe3){return _0xb9fb3[_0xe0ce('0x2a')](_0x2b2dfc);}return _0xb9fb3[_0xe0ce('0x2b')](_0x2b2dfc)[_0xe0ce('0x2c')]();};}function respondWithResult(_0x47e4e6,_0x300a8e){_0x300a8e=_0x300a8e||0xc8;return function(_0x3de8b9){if(_0x3de8b9){return _0x47e4e6[_0xe0ce('0x2b')](_0x300a8e)[_0xe0ce('0x2d')](_0x3de8b9);}};}function respondWithFilteredResult(_0x4cb733,_0x45e293){return function(_0x2ae22d){if(_0x2ae22d){var _0x5ea327=_0x2ae22d[_0xe0ce('0x2e')],_0x2ddb2f=_0x45e293[_0xe0ce('0x2f')],_0x1e6f27=_0x45e293[_0xe0ce('0x2f')]+_0x45e293[_0xe0ce('0x30')],_0x13212b;if(_0x1e6f27>=_0x5ea327){_0x1e6f27=_0x5ea327;_0x13212b=0xc8;}else{_0x13212b=0xce;}_0x4cb733['status'](_0x13212b);return _0x4cb733[_0xe0ce('0x31')](_0xe0ce('0x32'),_0x2ddb2f+'-'+_0x1e6f27+'/'+_0x5ea327)[_0xe0ce('0x2d')](_0x2ae22d);}return null;};}function patchUpdates(_0x41d080){return function(_0x3d6f9c){try{jsonpatch[_0xe0ce('0x33')](_0x3d6f9c,_0x41d080,!![]);}catch(_0x108260){return BPromise['reject'](_0x108260);}return _0x3d6f9c['save']();};}function saveUpdates(_0x252317,_0x5cdf4f){return function(_0x3e8780){if(_0x3e8780){return _0x3e8780[_0xe0ce('0x34')](_0x252317)[_0xe0ce('0x22')](function(_0x27f61c){return _0x27f61c;});}return null;};}function removeEntity(_0x36ddbd,_0x5c3c83){return function(_0x2989ea){if(_0x2989ea){return _0x2989ea[_0xe0ce('0x35')]()['then'](function(){_0x36ddbd['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c0b90,_0x890e07){return function(_0x5b16f8){if(!_0x5b16f8){_0x3c0b90[_0xe0ce('0x2a')](0x194);}return _0x5b16f8;};}function handleError(_0x269079,_0x1bf5f0){_0x1bf5f0=_0x1bf5f0||0x1f4;return function(_0x3275ce){logger['error'](_0x3275ce[_0xe0ce('0x36')]);if(_0x3275ce[_0xe0ce('0x37')]){delete _0x3275ce[_0xe0ce('0x37')];}_0x269079[_0xe0ce('0x2b')](_0x1bf5f0)[_0xe0ce('0x38')](_0x3275ce);};}exports['index']=function(_0x4bc53a,_0xd9c28e){var _0x22e553={},_0x470a3f={},_0x26df1b={'count':0x0,'rows':[]};var _0x571a64=_[_0xe0ce('0x39')](db[_0xe0ce('0x3a')]['rawAttributes'],function(_0x28be5a){return{'name':_0x28be5a[_0xe0ce('0x3b')],'type':_0x28be5a['type'][_0xe0ce('0x3c')]};});_0x470a3f[_0xe0ce('0x3d')]=_[_0xe0ce('0x39')](_0x571a64,_0xe0ce('0x37'));_0x470a3f[_0xe0ce('0x3e')]=_[_0xe0ce('0x3f')](_0x4bc53a[_0xe0ce('0x3e')]);_0x470a3f['filters']=_[_0xe0ce('0x40')](_0x470a3f[_0xe0ce('0x3d')],_0x470a3f[_0xe0ce('0x3e')]);_0x22e553[_0xe0ce('0x41')]=_[_0xe0ce('0x40')](_0x470a3f['model'],qs['fields'](_0x4bc53a[_0xe0ce('0x3e')][_0xe0ce('0x42')]));_0x22e553[_0xe0ce('0x41')]=_0x22e553['attributes'][_0xe0ce('0x43')]?_0x22e553[_0xe0ce('0x41')]:_0x470a3f['model'];if(!_0x4bc53a['query'][_0xe0ce('0x44')](_0xe0ce('0x45'))){_0x22e553[_0xe0ce('0x30')]=qs[_0xe0ce('0x30')](_0x4bc53a['query'][_0xe0ce('0x30')]);_0x22e553[_0xe0ce('0x2f')]=qs[_0xe0ce('0x2f')](_0x4bc53a[_0xe0ce('0x3e')][_0xe0ce('0x2f')]);}_0x22e553[_0xe0ce('0x46')]=qs[_0xe0ce('0x47')](_0x4bc53a['query'][_0xe0ce('0x47')]);_0x22e553[_0xe0ce('0x48')]=qs[_0xe0ce('0x49')](_[_0xe0ce('0x4a')](_0x4bc53a[_0xe0ce('0x3e')],_0x470a3f[_0xe0ce('0x49')]),_0x571a64);if(_0x4bc53a[_0xe0ce('0x3e')]['filter']){_0x22e553[_0xe0ce('0x48')]=_[_0xe0ce('0x4b')](_0x22e553['where'],{'$or':_[_0xe0ce('0x39')](_0x571a64,function(_0x32de28){if(_0x32de28[_0xe0ce('0x4c')]!==_0xe0ce('0x4d')){var _0x21f3ca={};_0x21f3ca[_0x32de28['name']]={'$like':'%'+_0x4bc53a[_0xe0ce('0x3e')][_0xe0ce('0x4e')]+'%'};return _0x21f3ca;}})});}_0x22e553=_[_0xe0ce('0x4b')]({},_0x22e553,_0x4bc53a[_0xe0ce('0x4f')]);var _0x2a0fa0={'where':_0x22e553[_0xe0ce('0x48')]};return db[_0xe0ce('0x3a')][_0xe0ce('0x2e')](_0x2a0fa0)[_0xe0ce('0x22')](function(_0x222ccc){_0x26df1b['count']=_0x222ccc;if(_0x4bc53a['query'][_0xe0ce('0x50')]){_0x22e553[_0xe0ce('0x51')]=[{'all':!![]}];}return db[_0xe0ce('0x3a')]['findAll'](_0x22e553);})[_0xe0ce('0x22')](function(_0x52b4a8){_0x26df1b[_0xe0ce('0x52')]=_0x52b4a8;return _0x26df1b;})['then'](respondWithFilteredResult(_0xd9c28e,_0x22e553))[_0xe0ce('0x29')](handleError(_0xd9c28e,null));};exports[_0xe0ce('0x53')]=function(_0x45d0a4,_0x4a1f5e){var _0x5f0ccc={'raw':!![],'where':{'id':_0x45d0a4[_0xe0ce('0x54')]['id']}},_0x448552={};_0x448552[_0xe0ce('0x3d')]=_[_0xe0ce('0x3f')](db['OpenchannelMessage'][_0xe0ce('0x55')]);_0x448552['query']=_['keys'](_0x45d0a4[_0xe0ce('0x3e')]);_0x448552[_0xe0ce('0x49')]=_[_0xe0ce('0x40')](_0x448552[_0xe0ce('0x3d')],_0x448552[_0xe0ce('0x3e')]);_0x5f0ccc[_0xe0ce('0x41')]=_[_0xe0ce('0x40')](_0x448552[_0xe0ce('0x3d')],qs[_0xe0ce('0x42')](_0x45d0a4['query'][_0xe0ce('0x42')]));_0x5f0ccc[_0xe0ce('0x41')]=_0x5f0ccc[_0xe0ce('0x41')][_0xe0ce('0x43')]?_0x5f0ccc[_0xe0ce('0x41')]:_0x448552[_0xe0ce('0x3d')];if(_0x45d0a4['query'][_0xe0ce('0x50')]){_0x5f0ccc['include']=[{'all':!![]}];}_0x5f0ccc=_['merge']({},_0x5f0ccc,_0x45d0a4[_0xe0ce('0x4f')]);return db['OpenchannelMessage'][_0xe0ce('0x56')](_0x5f0ccc)['then'](handleEntityNotFound(_0x4a1f5e,null))[_0xe0ce('0x22')](respondWithResult(_0x4a1f5e,null))['catch'](handleError(_0x4a1f5e,null));};exports['create']=function(_0x2920ac,_0x361d88){return db[_0xe0ce('0x3a')][_0xe0ce('0x57')](_0x2920ac['body'],{})[_0xe0ce('0x22')](respondWithResult(_0x361d88,0xc9))['catch'](handleError(_0x361d88,null));};exports['update']=function(_0x2febee,_0x3d2c43){if(_0x2febee[_0xe0ce('0x58')]['id']){delete _0x2febee[_0xe0ce('0x58')]['id'];}return db[_0xe0ce('0x3a')]['find']({'where':{'id':_0x2febee[_0xe0ce('0x54')]['id']}})[_0xe0ce('0x22')](handleEntityNotFound(_0x3d2c43,null))['then'](saveUpdates(_0x2febee[_0xe0ce('0x58')],null))[_0xe0ce('0x22')](respondWithResult(_0x3d2c43,null))[_0xe0ce('0x29')](handleError(_0x3d2c43,null));};exports[_0xe0ce('0x35')]=function(_0x131d3a,_0x56e7e7){return db[_0xe0ce('0x3a')][_0xe0ce('0x56')]({'where':{'id':_0x131d3a['params']['id']}})[_0xe0ce('0x22')](handleEntityNotFound(_0x56e7e7,null))['then'](removeEntity(_0x56e7e7,null))[_0xe0ce('0x29')](handleError(_0x56e7e7,null));};exports[_0xe0ce('0x59')]=function(_0x3d7a2b,_0xafb536){return db[_0xe0ce('0x3a')][_0xe0ce('0x59')]()['then'](respondWithResult(_0xafb536,null))['catch'](handleError(_0xafb536,null));};var interaction_log=require('../../config/logger')(_0xe0ce('0x5a'));exports[_0xe0ce('0x5b')]=function(_0x51c512,_0x4b6338,_0x51a648){var _0x244d42={'channel':'openchannel'};if(_0x51c512['body']['id']){delete _0x51c512[_0xe0ce('0x58')]['id'];}_0x51c512[_0xe0ce('0x58')][_0xe0ce('0x5c')]=!![];_0x51c512[_0xe0ce('0x58')][_0xe0ce('0x5d')]=moment()[_0xe0ce('0x5e')]('YYYY-MM-DD\x20HH:mm:ss');_0x51c512[_0xe0ce('0x58')][_0xe0ce('0x5f')]=_0x51c512[_0xe0ce('0x58')][_0xe0ce('0x5f')]||_0x51c512[_0xe0ce('0x60')]['id'];return db[_0xe0ce('0x3a')][_0xe0ce('0x56')]({'where':{'id':_0x51c512['params']['id'],'UserId':null},'include':[{'model':db[_0xe0ce('0x61')],'as':_0xe0ce('0x62')}]})['then'](handleEntityNotFound(_0x4b6338,null))['then'](saveUpdates(_0x51c512['body'],null))[_0xe0ce('0x22')](function(_0x52e998){if(_0x52e998){_0x244d42['message']=_0x52e998[_0xe0ce('0x63')]({'plain':!![]});return db[_0xe0ce('0x64')][_0xe0ce('0x56')]({'where':{'id':_0x52e998[_0xe0ce('0x65')]}});}return null;})[_0xe0ce('0x22')](handleEntityNotFound(_0x4b6338,null))[_0xe0ce('0x22')](function(_0x15706b){if(_0x15706b){return _0x15706b[_0xe0ce('0x34')]({'UserId':_0x51c512[_0xe0ce('0x58')][_0xe0ce('0x5f')],'read1stAt':_[_0xe0ce('0x66')](_0x15706b[_0xe0ce('0x67')])?moment()[_0xe0ce('0x5e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x3363cf){if(_0x3363cf){_0x244d42[_0xe0ce('0x68')]=_0x3363cf['get']({'plain':!![]});interaction_log['info'](_0xe0ce('0x69'),_0x51c512[_0xe0ce('0x60')]['id'],_0x51c512[_0xe0ce('0x60')][_0xe0ce('0x37')],_0x51c512[_0xe0ce('0x60')][_0xe0ce('0x6a')],_0x244d42[_0xe0ce('0x68')]['id'],_0x51c512[_0xe0ce('0x58')]?JSON['stringify'](_0x51c512[_0xe0ce('0x58')]):_0xe0ce('0x6b'));return respondWithRpcPromise(_0xe0ce('0x6c'),_0xe0ce('0x6d'),_0x244d42);}return null;})['then'](function(_0x481cd8){if(_0x481cd8){if(_0x51c512['body'][_0xe0ce('0x6e')]){_0x244d42[_0xe0ce('0x27')][_0xe0ce('0x6f')]=util[_0xe0ce('0x5e')](_0xe0ce('0x70'),_0x51c512[_0xe0ce('0x60')][_0xe0ce('0x37')]);_0x244d42[_0xe0ce('0x27')][_0xe0ce('0x71')]=_0x244d42[_0xe0ce('0x71')];_0x244d42[_0xe0ce('0x27')][_0xe0ce('0x72')]='accept';return respondWithRpcPromise(_0xe0ce('0x73'),_0xe0ce('0x73'),{'event':_0xe0ce('0x74'),'message':_0x244d42[_0xe0ce('0x27')]},client9002)[_0xe0ce('0x22')](function(){return _0x244d42;});}return _0x244d42;}return null;})['then'](respondWithResult(_0x4b6338,null))['catch'](handleError(_0x4b6338,null));};var interaction_log=require(_0xe0ce('0x14'))(_0xe0ce('0x5a'));exports[_0xe0ce('0x75')]=function(_0x5cb243,_0x48c9a8,_0x584f18){var _0x2b5ec8={'agent':{},'channel':_0xe0ce('0x76')};if(_0x5cb243['body']['id']){delete _0x5cb243[_0xe0ce('0x58')]['id'];}_0x5cb243[_0xe0ce('0x58')][_0xe0ce('0x5f')]=_0x5cb243['body']['UserId']||_0x5cb243[_0xe0ce('0x60')]['id'];_0x2b5ec8[_0xe0ce('0x77')]['id']=_0x5cb243[_0xe0ce('0x58')]['UserId'];return db[_0xe0ce('0x3a')]['find']({'where':{'id':_0x5cb243[_0xe0ce('0x54')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x48c9a8,null))[_0xe0ce('0x22')](function(_0x2014a8){if(_0x2014a8){_0x2b5ec8['message']=_0x2014a8['get']({'plain':!![]});return db[_0xe0ce('0x64')][_0xe0ce('0x56')]({'where':{'id':_0x2014a8[_0xe0ce('0x65')]}});}return null;})[_0xe0ce('0x22')](handleEntityNotFound(_0x48c9a8,null))['then'](function(_0x10dca3){if(_0x10dca3){_0x2b5ec8[_0xe0ce('0x68')]=_0x10dca3['get']({'plain':!![]});interaction_log[_0xe0ce('0x23')](_0xe0ce('0x78'),_0x5cb243[_0xe0ce('0x60')]['id'],_0x5cb243[_0xe0ce('0x60')][_0xe0ce('0x37')],_0x5cb243[_0xe0ce('0x60')][_0xe0ce('0x6a')],_0x2b5ec8[_0xe0ce('0x68')]['id'],_0x5cb243['body']?JSON[_0xe0ce('0x79')](_0x5cb243[_0xe0ce('0x58')]):_0xe0ce('0x6b'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x2b5ec8);}return null;})[_0xe0ce('0x22')](function(_0x1aef69){if(_0x1aef69){_0x1aef69[_0xe0ce('0x27')]['interface']=util[_0xe0ce('0x5e')](_0xe0ce('0x70'),_0x5cb243[_0xe0ce('0x60')][_0xe0ce('0x37')]);_0x1aef69['message'][_0xe0ce('0x71')]=_0x2b5ec8[_0xe0ce('0x71')];_0x1aef69[_0xe0ce('0x27')][_0xe0ce('0x72')]=_0xe0ce('0x75');respondWithRpcPromise('EventManager','EventManager',{'event':'rejectmessage','message':_0x1aef69[_0xe0ce('0x27')]},client9002);return _0x2b5ec8;}return null;})[_0xe0ce('0x22')](respondWithResult(_0x48c9a8,null))[_0xe0ce('0x29')](handleError(_0x48c9a8,null));};