Built motion from commit (unavailable).|2.5.4
[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 _0x651c=['[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','openchannel-interactions','agent','OpenchannelInteractionId','RejectMessage','event','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','test','Sequelize','ValidationError','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','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','key','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','merge','where','VIRTUAL','options','include','findAll','catch','show','params','keys','length','includeAll','find','create','body','describe','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','get','OpenchannelInteraction','isNil','read1stAt','interaction'];(function(_0x2f47d4,_0x635fa9){var _0x4eaf6c=function(_0x59bfb7){while(--_0x59bfb7){_0x2f47d4['push'](_0x2f47d4['shift']());}};_0x4eaf6c(++_0x635fa9);}(_0x651c,0x117));var _0xc651=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0x651c[_0x342baa];return _0x1208f3;};'use strict';var pdf=require(_0xc651('0x0'));var emlformat=require(_0xc651('0x1'));var rimraf=require(_0xc651('0x2'));var zipdir=require(_0xc651('0x3'));var jsonpatch=require(_0xc651('0x4'));var rp=require(_0xc651('0x5'));var moment=require(_0xc651('0x6'));var BPromise=require(_0xc651('0x7'));var Mustache=require(_0xc651('0x8'));var util=require('util');var path=require(_0xc651('0x9'));var sox=require(_0xc651('0xa'));var csv=require(_0xc651('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xc651('0xc'));var squel=require(_0xc651('0xd'));var crypto=require(_0xc651('0xe'));var jsforce=require(_0xc651('0xf'));var deskjs=require(_0xc651('0x10'));var toCsv=require(_0xc651('0xb'));var querystring=require(_0xc651('0x11'));var Papa=require(_0xc651('0x12'));var Redis=require(_0xc651('0x13'));var authService=require(_0xc651('0x14'));var qs=require(_0xc651('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc651('0x16'));var logger=require(_0xc651('0x17'))(_0xc651('0x18'));var utils=require(_0xc651('0x19'));var config=require('../../config/environment');var db=require(_0xc651('0x1a'))['db'];config[_0xc651('0x1b')]=_[_0xc651('0x1c')](config[_0xc651('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xc651('0x1d'))(new Redis(config[_0xc651('0x1b')]));require(_0xc651('0x1e'))[_0xc651('0x1f')](socket);var jayson=require(_0xc651('0x20'));var client=jayson[_0xc651('0x21')][_0xc651('0x22')]({'port':0x232c});var client9002=jayson[_0xc651('0x21')][_0xc651('0x22')]({'port':0x232a});function checkPasswordPattern(_0x13f7c5,_0xda5034,_0x48d263){if(_0x48d263){var _0x51c514=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x51c514[_0xc651('0x23')](_0xda5034)){return _0x13f7c5;}else{throw new db[(_0xc651('0x24'))][(_0xc651('0x25'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x13f7c5;}}function respondWithRpcPromise(_0x1a54bc,_0x526c0f,_0xcefff,_0x546e2c){return new BPromise(function(_0x1da560,_0x47efdc){var _0x22228c=_0x546e2c||client;return _0x22228c[_0xc651('0x26')](_0x1a54bc,_0xcefff)[_0xc651('0x27')](function(_0x1c8067){logger[_0xc651('0x28')](_0xc651('0x29'),_0x526c0f,_0xc651('0x2a'));logger[_0xc651('0x2b')](_0xc651('0x2c'),_0x526c0f,_0xc651('0x2a'),JSON[_0xc651('0x2d')](_0x1c8067));if(_0x1c8067['error']){if(_0x1c8067[_0xc651('0x2e')][_0xc651('0x2f')]===0x1f4){logger[_0xc651('0x2e')](_0xc651('0x29'),_0x526c0f,_0x1c8067[_0xc651('0x2e')][_0xc651('0x30')]);return _0x47efdc(_0x1c8067[_0xc651('0x2e')][_0xc651('0x30')]);}logger[_0xc651('0x2e')]('OpenchannelMessage,\x20%s,\x20%s',_0x526c0f,_0x1c8067['error'][_0xc651('0x30')]);return _0x1da560(_0x1c8067[_0xc651('0x2e')][_0xc651('0x30')]);}else{logger[_0xc651('0x28')]('OpenchannelMessage,\x20%s,\x20%s',_0x526c0f,_0xc651('0x2a'));_0x1da560(_0x1c8067[_0xc651('0x31')][_0xc651('0x30')]);}})['catch'](function(_0x266fcb){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x526c0f,_0x266fcb);_0x47efdc(_0x266fcb);});});}function respondWithStatusCode(_0x56d528,_0x2df39e){_0x2df39e=_0x2df39e||0xcc;return function(_0x3d4e3c){if(_0x3d4e3c){return _0x56d528[_0xc651('0x32')](_0x2df39e);}return _0x56d528[_0xc651('0x33')](_0x2df39e)[_0xc651('0x34')]();};}function respondWithResult(_0x356d07,_0x4f0cc3){_0x4f0cc3=_0x4f0cc3||0xc8;return function(_0x2477e1){if(_0x2477e1){return _0x356d07[_0xc651('0x33')](_0x4f0cc3)['json'](_0x2477e1);}};}function respondWithFilteredResult(_0x174d1b,_0xb5f087){return function(_0x561da0){if(_0x561da0){var _0x247afb=_0x561da0[_0xc651('0x35')],_0x3c4a3e=_0xb5f087[_0xc651('0x36')],_0x1e601d=_0xb5f087[_0xc651('0x36')]+_0xb5f087[_0xc651('0x37')],_0x1f6e18;if(_0x1e601d>=_0x247afb){_0x1e601d=_0x247afb;_0x1f6e18=0xc8;}else{_0x1f6e18=0xce;}_0x174d1b[_0xc651('0x33')](_0x1f6e18);return _0x174d1b[_0xc651('0x38')](_0xc651('0x39'),_0x3c4a3e+'-'+_0x1e601d+'/'+_0x247afb)[_0xc651('0x3a')](_0x561da0);}return null;};}function patchUpdates(_0x130c72){return function(_0x3f7b01){try{jsonpatch[_0xc651('0x3b')](_0x3f7b01,_0x130c72,!![]);}catch(_0x3f95a3){return BPromise[_0xc651('0x3c')](_0x3f95a3);}return _0x3f7b01[_0xc651('0x3d')]();};}function saveUpdates(_0x195254,_0x26f71e){return function(_0x1d3917){if(_0x1d3917){return _0x1d3917[_0xc651('0x3e')](_0x195254)[_0xc651('0x27')](function(_0x455fd1){return _0x455fd1;});}return null;};}function removeEntity(_0x4f1a64,_0x4f7ed3){return function(_0x2313b0){if(_0x2313b0){return _0x2313b0[_0xc651('0x3f')]()[_0xc651('0x27')](function(){_0x4f1a64[_0xc651('0x33')](0xcc)[_0xc651('0x34')]();});}};}function handleEntityNotFound(_0x5c9f45,_0x164dac){return function(_0x23de7b){if(!_0x23de7b){_0x5c9f45['sendStatus'](0x194);}return _0x23de7b;};}function handleError(_0x240c23,_0x48d728){_0x48d728=_0x48d728||0x1f4;return function(_0x597d71){logger[_0xc651('0x2e')](_0x597d71[_0xc651('0x40')]);if(_0x597d71[_0xc651('0x41')]){delete _0x597d71[_0xc651('0x41')];}_0x240c23[_0xc651('0x33')](_0x48d728)[_0xc651('0x42')](_0x597d71);};}exports[_0xc651('0x43')]=function(_0xf0cbbb,_0x3e9ca1){var _0x4a1e8d={},_0x23cbbf={},_0x341340={'count':0x0,'rows':[]};var _0x4726bd=_[_0xc651('0x44')](db[_0xc651('0x45')][_0xc651('0x46')],function(_0x56b76e){return{'name':_0x56b76e[_0xc651('0x47')],'type':_0x56b76e['type'][_0xc651('0x48')]};});_0x23cbbf['model']=_[_0xc651('0x44')](_0x4726bd,'name');_0x23cbbf[_0xc651('0x49')]=_['keys'](_0xf0cbbb[_0xc651('0x49')]);_0x23cbbf[_0xc651('0x4a')]=_[_0xc651('0x4b')](_0x23cbbf[_0xc651('0x4c')],_0x23cbbf[_0xc651('0x49')]);_0x4a1e8d[_0xc651('0x4d')]=_['intersection'](_0x23cbbf['model'],qs[_0xc651('0x4e')](_0xf0cbbb[_0xc651('0x49')]['fields']));_0x4a1e8d[_0xc651('0x4d')]=_0x4a1e8d[_0xc651('0x4d')]['length']?_0x4a1e8d[_0xc651('0x4d')]:_0x23cbbf[_0xc651('0x4c')];if(!_0xf0cbbb[_0xc651('0x49')][_0xc651('0x4f')](_0xc651('0x50'))){_0x4a1e8d[_0xc651('0x37')]=qs['limit'](_0xf0cbbb[_0xc651('0x49')][_0xc651('0x37')]);_0x4a1e8d['offset']=qs[_0xc651('0x36')](_0xf0cbbb[_0xc651('0x49')]['offset']);}_0x4a1e8d[_0xc651('0x51')]=qs[_0xc651('0x52')](_0xf0cbbb[_0xc651('0x49')][_0xc651('0x52')]);_0x4a1e8d['where']=qs[_0xc651('0x4a')](_[_0xc651('0x53')](_0xf0cbbb['query'],_0x23cbbf['filters']),_0x4726bd);if(_0xf0cbbb[_0xc651('0x49')]['filter']){_0x4a1e8d['where']=_[_0xc651('0x54')](_0x4a1e8d[_0xc651('0x55')],{'$or':_['map'](_0x4726bd,function(_0x5c134e){if(_0x5c134e['type']!==_0xc651('0x56')){var _0x38c324={};_0x38c324[_0x5c134e[_0xc651('0x41')]]={'$like':'%'+_0xf0cbbb[_0xc651('0x49')]['filter']+'%'};return _0x38c324;}})});}_0x4a1e8d=_['merge']({},_0x4a1e8d,_0xf0cbbb[_0xc651('0x57')]);var _0x9ce5b0={'where':_0x4a1e8d[_0xc651('0x55')]};return db[_0xc651('0x45')]['count'](_0x9ce5b0)[_0xc651('0x27')](function(_0x16d862){_0x341340[_0xc651('0x35')]=_0x16d862;if(_0xf0cbbb[_0xc651('0x49')]['includeAll']){_0x4a1e8d[_0xc651('0x58')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xc651('0x59')](_0x4a1e8d);})[_0xc651('0x27')](function(_0x394bbe){_0x341340['rows']=_0x394bbe;return _0x341340;})[_0xc651('0x27')](respondWithFilteredResult(_0x3e9ca1,_0x4a1e8d))[_0xc651('0x5a')](handleError(_0x3e9ca1,null));};exports[_0xc651('0x5b')]=function(_0x108f29,_0x2b0ccf){var _0x5503b0={'raw':!![],'where':{'id':_0x108f29[_0xc651('0x5c')]['id']}},_0x3a673c={};_0x3a673c[_0xc651('0x4c')]=_['keys'](db['OpenchannelMessage']['rawAttributes']);_0x3a673c[_0xc651('0x49')]=_[_0xc651('0x5d')](_0x108f29[_0xc651('0x49')]);_0x3a673c['filters']=_[_0xc651('0x4b')](_0x3a673c[_0xc651('0x4c')],_0x3a673c[_0xc651('0x49')]);_0x5503b0[_0xc651('0x4d')]=_[_0xc651('0x4b')](_0x3a673c['model'],qs[_0xc651('0x4e')](_0x108f29[_0xc651('0x49')][_0xc651('0x4e')]));_0x5503b0['attributes']=_0x5503b0[_0xc651('0x4d')][_0xc651('0x5e')]?_0x5503b0[_0xc651('0x4d')]:_0x3a673c[_0xc651('0x4c')];if(_0x108f29[_0xc651('0x49')][_0xc651('0x5f')]){_0x5503b0[_0xc651('0x58')]=[{'all':!![]}];}_0x5503b0=_[_0xc651('0x54')]({},_0x5503b0,_0x108f29[_0xc651('0x57')]);return db[_0xc651('0x45')][_0xc651('0x60')](_0x5503b0)[_0xc651('0x27')](handleEntityNotFound(_0x2b0ccf,null))[_0xc651('0x27')](respondWithResult(_0x2b0ccf,null))[_0xc651('0x5a')](handleError(_0x2b0ccf,null));};exports[_0xc651('0x61')]=function(_0x2b5b6d,_0xf1775c){return db[_0xc651('0x45')][_0xc651('0x61')](_0x2b5b6d[_0xc651('0x62')],{})[_0xc651('0x27')](respondWithResult(_0xf1775c,0xc9))['catch'](handleError(_0xf1775c,null));};exports['update']=function(_0x43e60c,_0x23e7c2){if(_0x43e60c[_0xc651('0x62')]['id']){delete _0x43e60c[_0xc651('0x62')]['id'];}return db[_0xc651('0x45')]['find']({'where':{'id':_0x43e60c[_0xc651('0x5c')]['id']}})[_0xc651('0x27')](handleEntityNotFound(_0x23e7c2,null))[_0xc651('0x27')](saveUpdates(_0x43e60c[_0xc651('0x62')],null))[_0xc651('0x27')](respondWithResult(_0x23e7c2,null))[_0xc651('0x5a')](handleError(_0x23e7c2,null));};exports[_0xc651('0x3f')]=function(_0x2ee9a6,_0x450fc6){return db['OpenchannelMessage'][_0xc651('0x60')]({'where':{'id':_0x2ee9a6['params']['id']}})['then'](handleEntityNotFound(_0x450fc6,null))[_0xc651('0x27')](removeEntity(_0x450fc6,null))['catch'](handleError(_0x450fc6,null));};exports['describe']=function(_0x1eb889,_0x5d4aca){return db[_0xc651('0x45')][_0xc651('0x63')]()['then'](respondWithResult(_0x5d4aca,null))[_0xc651('0x5a')](handleError(_0x5d4aca,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports[_0xc651('0x64')]=function(_0x679859,_0x5eafa5,_0x164fbc){var _0x115e9c={'channel':_0xc651('0x65')};if(_0x679859[_0xc651('0x62')]['id']){delete _0x679859[_0xc651('0x62')]['id'];}_0x679859[_0xc651('0x62')][_0xc651('0x66')]=!![];_0x679859[_0xc651('0x62')][_0xc651('0x67')]=moment()[_0xc651('0x68')](_0xc651('0x69'));_0x679859[_0xc651('0x62')][_0xc651('0x6a')]=_0x679859['body'][_0xc651('0x6a')]||_0x679859[_0xc651('0x6b')]['id'];return db[_0xc651('0x45')][_0xc651('0x60')]({'where':{'id':_0x679859[_0xc651('0x5c')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xc651('0x6c')}]})[_0xc651('0x27')](handleEntityNotFound(_0x5eafa5,null))['then'](saveUpdates(_0x679859[_0xc651('0x62')],null))[_0xc651('0x27')](function(_0x31e86f){if(_0x31e86f){_0x115e9c['message']=_0x31e86f[_0xc651('0x6d')]({'plain':!![]});return db[_0xc651('0x6e')][_0xc651('0x60')]({'where':{'id':_0x31e86f['OpenchannelInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x5eafa5,null))[_0xc651('0x27')](function(_0x449405){if(_0x449405){return _0x449405[_0xc651('0x3e')]({'UserId':_0x679859[_0xc651('0x62')][_0xc651('0x6a')],'read1stAt':_[_0xc651('0x6f')](_0x449405[_0xc651('0x70')])?moment()[_0xc651('0x68')](_0xc651('0x69')):undefined});}return null;})[_0xc651('0x27')](function(_0x55a213){if(_0x55a213){_0x115e9c[_0xc651('0x71')]=_0x55a213[_0xc651('0x6d')]({'plain':!![]});interaction_log[_0xc651('0x28')](_0xc651('0x72'),_0x679859[_0xc651('0x6b')]['id'],_0x679859['user'][_0xc651('0x41')],_0x679859['user'][_0xc651('0x73')],_0x115e9c[_0xc651('0x71')]['id'],_0x679859[_0xc651('0x62')]?JSON['stringify'](_0x679859[_0xc651('0x62')]):_0xc651('0x74'));return respondWithRpcPromise(_0xc651('0x75'),_0xc651('0x76'),_0x115e9c);}return null;})[_0xc651('0x27')](function(_0x448c27){if(_0x448c27){if(_0x679859[_0xc651('0x62')][_0xc651('0x77')]){_0x115e9c['message'][_0xc651('0x78')]=util[_0xc651('0x68')](_0xc651('0x79'),_0x679859[_0xc651('0x6b')][_0xc651('0x41')]);_0x115e9c[_0xc651('0x30')][_0xc651('0x7a')]=_0x115e9c[_0xc651('0x7a')];_0x115e9c[_0xc651('0x30')]['event']=_0xc651('0x64');return respondWithRpcPromise(_0xc651('0x7b'),_0xc651('0x7b'),{'event':_0xc651('0x7c'),'message':_0x115e9c[_0xc651('0x30')]},client9002)[_0xc651('0x27')](function(){return _0x115e9c;});}return _0x115e9c;}return null;})[_0xc651('0x27')](respondWithResult(_0x5eafa5,null))[_0xc651('0x5a')](handleError(_0x5eafa5,null));};var interaction_log=require(_0xc651('0x17'))(_0xc651('0x7d'));exports[_0xc651('0x3c')]=function(_0x3298b7,_0xeedf9,_0x54e5d5){var _0x1fda0e={'agent':{},'channel':_0xc651('0x65')};if(_0x3298b7[_0xc651('0x62')]['id']){delete _0x3298b7[_0xc651('0x62')]['id'];}_0x3298b7[_0xc651('0x62')][_0xc651('0x6a')]=_0x3298b7[_0xc651('0x62')][_0xc651('0x6a')]||_0x3298b7[_0xc651('0x6b')]['id'];_0x1fda0e[_0xc651('0x7e')]['id']=_0x3298b7[_0xc651('0x62')][_0xc651('0x6a')];return db['OpenchannelMessage'][_0xc651('0x60')]({'where':{'id':_0x3298b7[_0xc651('0x5c')]['id'],'UserId':null}})[_0xc651('0x27')](handleEntityNotFound(_0xeedf9,null))['then'](function(_0x1086fc){if(_0x1086fc){_0x1fda0e[_0xc651('0x30')]=_0x1086fc['get']({'plain':!![]});return db[_0xc651('0x6e')][_0xc651('0x60')]({'where':{'id':_0x1086fc[_0xc651('0x7f')]}});}return null;})[_0xc651('0x27')](handleEntityNotFound(_0xeedf9,null))[_0xc651('0x27')](function(_0x73fd02){if(_0x73fd02){_0x1fda0e['interaction']=_0x73fd02[_0xc651('0x6d')]({'plain':!![]});interaction_log[_0xc651('0x28')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3298b7['user']['id'],_0x3298b7[_0xc651('0x6b')][_0xc651('0x41')],_0x3298b7[_0xc651('0x6b')][_0xc651('0x73')],_0x1fda0e['interaction']['id'],_0x3298b7[_0xc651('0x62')]?JSON[_0xc651('0x2d')](_0x3298b7[_0xc651('0x62')]):'null');return respondWithRpcPromise(_0xc651('0x80'),'rejectMessage',_0x1fda0e);}return null;})[_0xc651('0x27')](function(_0x53de87){if(_0x53de87){_0x53de87[_0xc651('0x30')][_0xc651('0x78')]=util['format'](_0xc651('0x79'),_0x3298b7['user'][_0xc651('0x41')]);_0x53de87[_0xc651('0x30')][_0xc651('0x7a')]=_0x1fda0e['channel'];_0x53de87[_0xc651('0x30')][_0xc651('0x81')]='reject';respondWithRpcPromise('EventManager',_0xc651('0x7b'),{'event':_0xc651('0x82'),'message':_0x53de87['message']},client9002);return _0x1fda0e;}return null;})[_0xc651('0x27')](respondWithResult(_0xeedf9,null))[_0xc651('0x5a')](handleError(_0xeedf9,null));};