Built motion from commit (unavailable).|2.4.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 _0xac6a=['describe','../../config/logger','openchannel-interactions','accept','openchannel','read','readAt','format','UserId','user','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','null','AcceptMessage','acceptMessage','interface','SIP/%s','channel','event','EventManager','acceptmessage','reject','agent','role','rejectmessage','html-pdf','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./openchannelMessage.socket','register','client','test','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','status','json','offset','Content-Range','save','update','end','sendStatus','stack','name','send','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','pick','filter','where','map','key','merge','OpenchannelMessage','count','findAll','show','rawAttributes','includeAll','options','find','create','body','params','destroy'];(function(_0x664ce4,_0x461e49){var _0x1653a9=function(_0x376b73){while(--_0x376b73){_0x664ce4['push'](_0x664ce4['shift']());}};_0x1653a9(++_0x461e49);}(_0xac6a,0x16d));var _0xaac6=function(_0x413c73,_0x5ab21f){_0x413c73=_0x413c73-0x0;var _0x5f178e=_0xac6a[_0x413c73];return _0x5f178e;};'use strict';var pdf=require(_0xaac6('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xaac6('0x1'));var moment=require(_0xaac6('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xaac6('0x3'));var util=require(_0xaac6('0x4'));var path=require(_0xaac6('0x5'));var sox=require(_0xaac6('0x6'));var csv=require(_0xaac6('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xaac6('0x8'));var squel=require(_0xaac6('0x9'));var crypto=require(_0xaac6('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xaac6('0xb'));var toCsv=require('to-csv');var querystring=require(_0xaac6('0xc'));var Papa=require(_0xaac6('0xd'));var Redis=require(_0xaac6('0xe'));var authService=require(_0xaac6('0xf'));var qs=require(_0xaac6('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xaac6('0x11'));var utils=require(_0xaac6('0x12'));var config=require(_0xaac6('0x13'));var db=require(_0xaac6('0x14'))['db'];config[_0xaac6('0x15')]=_[_0xaac6('0x16')](config[_0xaac6('0x15')],{'host':_0xaac6('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xaac6('0x15')]));require(_0xaac6('0x18'))[_0xaac6('0x19')](socket);var jayson=require('jayson/promise');var client=jayson[_0xaac6('0x1a')]['http']({'port':0x232c});var client9002=jayson[_0xaac6('0x1a')]['http']({'port':0x232a});function checkPasswordPattern(_0x58a77b,_0x5545f5,_0x1ee266){if(_0x1ee266){var _0x3ea1c8=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3ea1c8[_0xaac6('0x1b')](_0x5545f5)){return _0x58a77b;}else{throw new Error(_0xaac6('0x1c'));}}else{return _0x58a77b;}}function respondWithRpcPromise(_0x31b3a8,_0x1f2ae2,_0x3e01d3,_0x34c7ee){return new BPromise(function(_0x5d729f,_0x3cfabd){var _0x298bdf=_0x34c7ee||client;return _0x298bdf['request'](_0x31b3a8,_0x3e01d3)[_0xaac6('0x1d')](function(_0x1aa635){logger[_0xaac6('0x1e')](_0xaac6('0x1f'),_0x1f2ae2,_0xaac6('0x20'));logger['debug'](_0xaac6('0x21'),_0x1f2ae2,_0xaac6('0x20'),JSON[_0xaac6('0x22')](_0x1aa635));if(_0x1aa635['error']){if(_0x1aa635[_0xaac6('0x23')]['code']===0x1f4){logger[_0xaac6('0x23')](_0xaac6('0x1f'),_0x1f2ae2,_0x1aa635[_0xaac6('0x23')]['message']);return _0x3cfabd(_0x1aa635[_0xaac6('0x23')][_0xaac6('0x24')]);}logger[_0xaac6('0x23')](_0xaac6('0x1f'),_0x1f2ae2,_0x1aa635[_0xaac6('0x23')][_0xaac6('0x24')]);return _0x5d729f(_0x1aa635[_0xaac6('0x23')][_0xaac6('0x24')]);}else{logger[_0xaac6('0x1e')]('OpenchannelMessage,\x20%s,\x20%s',_0x1f2ae2,'request\x20sent');_0x5d729f(_0x1aa635['result'][_0xaac6('0x24')]);}})[_0xaac6('0x25')](function(_0x341363){logger[_0xaac6('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x1f2ae2,_0x341363);_0x3cfabd(_0x341363);});});}function respondWithStatusCode(_0x997292,_0x2bc631){_0x2bc631=_0x2bc631||0xcc;return function(_0x43f7f6){if(_0x43f7f6){return _0x997292['sendStatus'](_0x2bc631);}return _0x997292[_0xaac6('0x26')](_0x2bc631)['end']();};}function respondWithResult(_0x44cba5,_0x57b104){_0x57b104=_0x57b104||0xc8;return function(_0x5f495c){if(_0x5f495c){return _0x44cba5[_0xaac6('0x26')](_0x57b104)[_0xaac6('0x27')](_0x5f495c);}};}function respondWithFilteredResult(_0x5c7037,_0x515c93){return function(_0x294ffe){if(_0x294ffe){var _0x1e1d9f=_0x294ffe['count'],_0xe3c65f=_0x515c93['offset'],_0x575fdf=_0x515c93[_0xaac6('0x28')]+_0x515c93['limit'],_0x7f3577;if(_0x575fdf>=_0x1e1d9f){_0x575fdf=_0x1e1d9f;_0x7f3577=0xc8;}else{_0x7f3577=0xce;}_0x5c7037[_0xaac6('0x26')](_0x7f3577);return _0x5c7037['set'](_0xaac6('0x29'),_0xe3c65f+'-'+_0x575fdf+'/'+_0x1e1d9f)['json'](_0x294ffe);}return null;};}function patchUpdates(_0x18df05){return function(_0x3d7142){try{jsonpatch['apply'](_0x3d7142,_0x18df05,!![]);}catch(_0x1f7ed9){return BPromise['reject'](_0x1f7ed9);}return _0x3d7142[_0xaac6('0x2a')]();};}function saveUpdates(_0x1b6795,_0x3b6f69){return function(_0x4b4211){if(_0x4b4211){return _0x4b4211[_0xaac6('0x2b')](_0x1b6795)[_0xaac6('0x1d')](function(_0x367111){return _0x367111;});}return null;};}function removeEntity(_0x446b7a,_0x292e7b){return function(_0x528389){if(_0x528389){return _0x528389['destroy']()[_0xaac6('0x1d')](function(){_0x446b7a['status'](0xcc)[_0xaac6('0x2c')]();});}};}function handleEntityNotFound(_0x4fcacc,_0x64085f){return function(_0x3b6d30){if(!_0x3b6d30){_0x4fcacc[_0xaac6('0x2d')](0x194);}return _0x3b6d30;};}function handleError(_0x49040f,_0x3e906c){_0x3e906c=_0x3e906c||0x1f4;return function(_0x23ba2d){logger[_0xaac6('0x23')](_0x23ba2d[_0xaac6('0x2e')]);if(_0x23ba2d[_0xaac6('0x2f')]){delete _0x23ba2d['name'];}_0x49040f[_0xaac6('0x26')](_0x3e906c)[_0xaac6('0x30')](_0x23ba2d);};}exports['index']=function(_0xb367a6,_0x4530d3){var _0x177556={},_0x41c9b0={},_0x3951f4={'count':0x0,'rows':[]};var _0x4f13f7=db['OpenchannelMessage']['rawAttributes'];_0x41c9b0['model']=_[_0xaac6('0x31')](_0x4f13f7);_0x41c9b0['query']=_['keys'](_0xb367a6[_0xaac6('0x32')]);_0x41c9b0[_0xaac6('0x33')]=_[_0xaac6('0x34')](_0x41c9b0[_0xaac6('0x35')],_0x41c9b0[_0xaac6('0x32')]);_0x177556[_0xaac6('0x36')]=_['intersection'](_0x41c9b0[_0xaac6('0x35')],qs[_0xaac6('0x37')](_0xb367a6['query'][_0xaac6('0x37')]));_0x177556['attributes']=_0x177556['attributes'][_0xaac6('0x38')]?_0x177556['attributes']:_0x41c9b0['model'];if(!_0xb367a6['query'][_0xaac6('0x39')](_0xaac6('0x3a'))){_0x177556['limit']=qs[_0xaac6('0x3b')](_0xb367a6[_0xaac6('0x32')][_0xaac6('0x3b')]);_0x177556[_0xaac6('0x28')]=qs['offset'](_0xb367a6[_0xaac6('0x32')][_0xaac6('0x28')]);}_0x177556[_0xaac6('0x3c')]=qs['sort'](_0xb367a6[_0xaac6('0x32')]['sort']);_0x177556['where']=qs['filters'](_[_0xaac6('0x3d')](_0xb367a6[_0xaac6('0x32')],_0x41c9b0['filters']));if(_0xb367a6['query'][_0xaac6('0x3e')]){_0x177556['where']=_['merge'](_0x177556[_0xaac6('0x3f')],{'$or':_[_0xaac6('0x40')](_0x4f13f7,function(_0x493254){if(_0x493254['type'][_0xaac6('0x41')]!=='VIRTUAL'){var _0x3869ae={};_0x3869ae[_0x493254['field']]={'$like':'%'+_0xb367a6[_0xaac6('0x32')][_0xaac6('0x3e')]+'%'};return _0x3869ae;}})});}_0x177556=_[_0xaac6('0x42')]({},_0x177556,_0xb367a6['options']);var _0x435692={'where':_0x177556[_0xaac6('0x3f')]};return db[_0xaac6('0x43')][_0xaac6('0x44')](_0x435692)[_0xaac6('0x1d')](function(_0x1f98c2){_0x3951f4[_0xaac6('0x44')]=_0x1f98c2;if(_0xb367a6[_0xaac6('0x32')]['includeAll']){_0x177556['include']=[{'all':!![]}];}return db['OpenchannelMessage'][_0xaac6('0x45')](_0x177556);})[_0xaac6('0x1d')](function(_0x2f8ce5){_0x3951f4['rows']=_0x2f8ce5;return _0x3951f4;})[_0xaac6('0x1d')](respondWithFilteredResult(_0x4530d3,_0x177556))[_0xaac6('0x25')](handleError(_0x4530d3,null));};exports[_0xaac6('0x46')]=function(_0x180133,_0x4b2f57){var _0x3510d7={'raw':!![],'where':{'id':_0x180133['params']['id']}},_0x40ca4d={};_0x40ca4d[_0xaac6('0x35')]=_[_0xaac6('0x31')](db[_0xaac6('0x43')][_0xaac6('0x47')]);_0x40ca4d[_0xaac6('0x32')]=_[_0xaac6('0x31')](_0x180133[_0xaac6('0x32')]);_0x40ca4d[_0xaac6('0x33')]=_['intersection'](_0x40ca4d['model'],_0x40ca4d[_0xaac6('0x32')]);_0x3510d7['attributes']=_[_0xaac6('0x34')](_0x40ca4d['model'],qs[_0xaac6('0x37')](_0x180133['query'][_0xaac6('0x37')]));_0x3510d7[_0xaac6('0x36')]=_0x3510d7['attributes'][_0xaac6('0x38')]?_0x3510d7['attributes']:_0x40ca4d[_0xaac6('0x35')];if(_0x180133['query'][_0xaac6('0x48')]){_0x3510d7['include']=[{'all':!![]}];}_0x3510d7=_[_0xaac6('0x42')]({},_0x3510d7,_0x180133[_0xaac6('0x49')]);return db[_0xaac6('0x43')][_0xaac6('0x4a')](_0x3510d7)[_0xaac6('0x1d')](handleEntityNotFound(_0x4b2f57,null))[_0xaac6('0x1d')](respondWithResult(_0x4b2f57,null))[_0xaac6('0x25')](handleError(_0x4b2f57,null));};exports[_0xaac6('0x4b')]=function(_0x2d3a10,_0x361b9a){return db[_0xaac6('0x43')][_0xaac6('0x4b')](_0x2d3a10[_0xaac6('0x4c')],{})[_0xaac6('0x1d')](respondWithResult(_0x361b9a,0xc9))['catch'](handleError(_0x361b9a,null));};exports[_0xaac6('0x2b')]=function(_0x48dbda,_0x525375){if(_0x48dbda['body']['id']){delete _0x48dbda['body']['id'];}return db[_0xaac6('0x43')][_0xaac6('0x4a')]({'where':{'id':_0x48dbda[_0xaac6('0x4d')]['id']}})['then'](handleEntityNotFound(_0x525375,null))[_0xaac6('0x1d')](saveUpdates(_0x48dbda[_0xaac6('0x4c')],null))[_0xaac6('0x1d')](respondWithResult(_0x525375,null))['catch'](handleError(_0x525375,null));};exports[_0xaac6('0x4e')]=function(_0x33259b,_0x2d156f){return db['OpenchannelMessage'][_0xaac6('0x4a')]({'where':{'id':_0x33259b[_0xaac6('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2d156f,null))[_0xaac6('0x1d')](removeEntity(_0x2d156f,null))[_0xaac6('0x25')](handleError(_0x2d156f,null));};exports[_0xaac6('0x4f')]=function(_0x16b419,_0x779ad4){return db[_0xaac6('0x43')][_0xaac6('0x4f')]()[_0xaac6('0x1d')](respondWithResult(_0x779ad4,null))['catch'](handleError(_0x779ad4,null));};var interaction_log=require(_0xaac6('0x50'))(_0xaac6('0x51'));exports[_0xaac6('0x52')]=function(_0x406b8f,_0x5aafd4,_0x15c8b0){var _0x46c73b={'channel':_0xaac6('0x53')};if(_0x406b8f[_0xaac6('0x4c')]['id']){delete _0x406b8f[_0xaac6('0x4c')]['id'];}_0x406b8f[_0xaac6('0x4c')][_0xaac6('0x54')]=!![];_0x406b8f[_0xaac6('0x4c')][_0xaac6('0x55')]=moment()[_0xaac6('0x56')]('YYYY-MM-DD\x20HH:mm:ss');_0x406b8f['body'][_0xaac6('0x57')]=_0x406b8f['body'][_0xaac6('0x57')]||_0x406b8f[_0xaac6('0x58')]['id'];return db['OpenchannelMessage'][_0xaac6('0x4a')]({'where':{'id':_0x406b8f[_0xaac6('0x4d')]['id'],'UserId':null},'include':[{'model':db[_0xaac6('0x59')],'as':_0xaac6('0x5a')}]})['then'](handleEntityNotFound(_0x5aafd4,null))[_0xaac6('0x1d')](saveUpdates(_0x406b8f[_0xaac6('0x4c')],null))[_0xaac6('0x1d')](function(_0x56db27){if(_0x56db27){_0x46c73b[_0xaac6('0x24')]=_0x56db27[_0xaac6('0x5b')]({'plain':!![]});return db[_0xaac6('0x5c')]['find']({'where':{'id':_0x56db27[_0xaac6('0x5d')]}});}return null;})[_0xaac6('0x1d')](handleEntityNotFound(_0x5aafd4,null))[_0xaac6('0x1d')](function(_0x3fd539){if(_0x3fd539){return _0x3fd539['update']({'UserId':_0x406b8f[_0xaac6('0x4c')][_0xaac6('0x57')],'read1stAt':_[_0xaac6('0x5e')](_0x3fd539[_0xaac6('0x5f')])?moment()[_0xaac6('0x56')](_0xaac6('0x60')):undefined});}return null;})['then'](function(_0x21b0f3){if(_0x21b0f3){_0x46c73b[_0xaac6('0x61')]=_0x21b0f3[_0xaac6('0x5b')]({'plain':!![]});interaction_log[_0xaac6('0x1e')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x406b8f['user']['id'],_0x406b8f[_0xaac6('0x58')][_0xaac6('0x2f')],_0x406b8f[_0xaac6('0x58')]['role'],_0x46c73b['interaction']['id'],_0x406b8f[_0xaac6('0x4c')]?JSON[_0xaac6('0x22')](_0x406b8f[_0xaac6('0x4c')]):_0xaac6('0x62'));return respondWithRpcPromise(_0xaac6('0x63'),_0xaac6('0x64'),_0x46c73b);}return null;})[_0xaac6('0x1d')](function(_0x3f5661){if(_0x3f5661){if(_0x406b8f[_0xaac6('0x4c')]['manual']){_0x46c73b[_0xaac6('0x24')][_0xaac6('0x65')]=util[_0xaac6('0x56')](_0xaac6('0x66'),_0x406b8f['user'][_0xaac6('0x2f')]);_0x46c73b[_0xaac6('0x24')][_0xaac6('0x67')]=_0x46c73b[_0xaac6('0x67')];_0x46c73b[_0xaac6('0x24')][_0xaac6('0x68')]=_0xaac6('0x52');return respondWithRpcPromise(_0xaac6('0x69'),_0xaac6('0x69'),{'event':_0xaac6('0x6a'),'message':_0x46c73b[_0xaac6('0x24')]},client9002)[_0xaac6('0x1d')](function(){return _0x46c73b;});}return _0x46c73b;}return null;})[_0xaac6('0x1d')](respondWithResult(_0x5aafd4,null))[_0xaac6('0x25')](handleError(_0x5aafd4,null));};var interaction_log=require(_0xaac6('0x50'))('openchannel-interactions');exports[_0xaac6('0x6b')]=function(_0x2aaf0a,_0x1969f4,_0x1838c5){var _0x3a0620={'agent':{},'channel':_0xaac6('0x53')};if(_0x2aaf0a[_0xaac6('0x4c')]['id']){delete _0x2aaf0a['body']['id'];}_0x2aaf0a[_0xaac6('0x4c')]['UserId']=_0x2aaf0a[_0xaac6('0x4c')][_0xaac6('0x57')]||_0x2aaf0a[_0xaac6('0x58')]['id'];_0x3a0620[_0xaac6('0x6c')]['id']=_0x2aaf0a['body'][_0xaac6('0x57')];return db['OpenchannelMessage'][_0xaac6('0x4a')]({'where':{'id':_0x2aaf0a[_0xaac6('0x4d')]['id'],'UserId':null}})[_0xaac6('0x1d')](handleEntityNotFound(_0x1969f4,null))[_0xaac6('0x1d')](function(_0x3b550c){if(_0x3b550c){_0x3a0620[_0xaac6('0x24')]=_0x3b550c['get']({'plain':!![]});return db[_0xaac6('0x5c')]['find']({'where':{'id':_0x3b550c[_0xaac6('0x5d')]}});}return null;})['then'](handleEntityNotFound(_0x1969f4,null))[_0xaac6('0x1d')](function(_0x5a0c05){if(_0x5a0c05){_0x3a0620[_0xaac6('0x61')]=_0x5a0c05[_0xaac6('0x5b')]({'plain':!![]});interaction_log[_0xaac6('0x1e')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2aaf0a['user']['id'],_0x2aaf0a['user']['name'],_0x2aaf0a[_0xaac6('0x58')][_0xaac6('0x6d')],_0x3a0620['interaction']['id'],_0x2aaf0a[_0xaac6('0x4c')]?JSON[_0xaac6('0x22')](_0x2aaf0a[_0xaac6('0x4c')]):'null');return respondWithRpcPromise('RejectMessage','rejectMessage',_0x3a0620);}return null;})[_0xaac6('0x1d')](function(_0x1f0da5){if(_0x1f0da5){_0x1f0da5[_0xaac6('0x24')]['interface']=util[_0xaac6('0x56')](_0xaac6('0x66'),_0x2aaf0a['user'][_0xaac6('0x2f')]);_0x1f0da5[_0xaac6('0x24')]['channel']=_0x3a0620[_0xaac6('0x67')];_0x1f0da5[_0xaac6('0x24')][_0xaac6('0x68')]=_0xaac6('0x6b');respondWithRpcPromise(_0xaac6('0x69'),_0xaac6('0x69'),{'event':_0xaac6('0x6e'),'message':_0x1f0da5[_0xaac6('0x24')]},client9002);return _0x3a0620;}return null;})[_0xaac6('0x1d')](respondWithResult(_0x1969f4,null))[_0xaac6('0x25')](handleError(_0x1969f4,null));};