c0efb7384b3ae3eb491d11f2be6d6454b024a228
[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 _0x2cb3=['../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','jayson/promise','client','http','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','status','json','offset','set','Content-Range','reject','save','update','destroy','sendStatus','name','send','index','map','OpenchannelMessage','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','merge','VIRTUAL','filter','count','includeAll','show','rawAttributes','include','options','find','create','body','describe','openchannel-interactions','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','params','Contact','get','OpenchannelInteractionId','isNil','read1stAt','interaction','stringify','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','EventManager','agent','OpenchannelInteraction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectmessage','html-pdf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x3823a8,_0x46543c){var _0x197333=function(_0x333df1){while(--_0x333df1){_0x3823a8['push'](_0x3823a8['shift']());}};_0x197333(++_0x46543c);}(_0x2cb3,0x65));var _0x32cb=function(_0x319a73,_0x4199e){_0x319a73=_0x319a73-0x0;var _0x1d059e=_0x2cb3[_0x319a73];return _0x1d059e;};'use strict';var pdf=require(_0x32cb('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x32cb('0x1'));var jsonpatch=require(_0x32cb('0x2'));var rp=require(_0x32cb('0x3'));var moment=require('moment');var BPromise=require(_0x32cb('0x4'));var Mustache=require(_0x32cb('0x5'));var util=require(_0x32cb('0x6'));var path=require(_0x32cb('0x7'));var sox=require('sox');var csv=require(_0x32cb('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x32cb('0x9'));var squel=require(_0x32cb('0xa'));var crypto=require(_0x32cb('0xb'));var jsforce=require(_0x32cb('0xc'));var deskjs=require(_0x32cb('0xd'));var toCsv=require(_0x32cb('0x8'));var querystring=require(_0x32cb('0xe'));var Papa=require(_0x32cb('0xf'));var Redis=require(_0x32cb('0x10'));var authService=require(_0x32cb('0x11'));var qs=require(_0x32cb('0x12'));var as=require(_0x32cb('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x32cb('0x14'))(_0x32cb('0x15'));var utils=require(_0x32cb('0x16'));var config=require(_0x32cb('0x17'));var db=require(_0x32cb('0x18'))['db'];config[_0x32cb('0x19')]=_[_0x32cb('0x1a')](config[_0x32cb('0x19')],{'host':_0x32cb('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x32cb('0x19')]));require('./openchannelMessage.socket')['register'](socket);var jayson=require(_0x32cb('0x1c'));var client=jayson[_0x32cb('0x1d')][_0x32cb('0x1e')]({'port':0x232c});var client9002=jayson[_0x32cb('0x1d')][_0x32cb('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x23f48c,_0x452ed8,_0xf80b47){if(_0xf80b47){var _0x10901b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x10901b['test'](_0x452ed8)){return _0x23f48c;}else{throw new db[(_0x32cb('0x1f'))][(_0x32cb('0x20'))](_0x32cb('0x21'));}}else{return _0x23f48c;}}function respondWithRpcPromise(_0x448301,_0x78df27,_0x5e350e,_0x15afda){return new BPromise(function(_0x2074d5,_0x38d038){var _0x5e706f=_0x15afda||client;return _0x5e706f[_0x32cb('0x22')](_0x448301,_0x5e350e)[_0x32cb('0x23')](function(_0x4aa088){logger[_0x32cb('0x24')](_0x32cb('0x25'),_0x78df27,_0x32cb('0x26'));logger[_0x32cb('0x27')](_0x32cb('0x28'),_0x78df27,_0x32cb('0x26'),JSON['stringify'](_0x4aa088));if(_0x4aa088[_0x32cb('0x29')]){if(_0x4aa088[_0x32cb('0x29')][_0x32cb('0x2a')]===0x1f4){logger[_0x32cb('0x29')](_0x32cb('0x25'),_0x78df27,_0x4aa088[_0x32cb('0x29')][_0x32cb('0x2b')]);return _0x38d038(_0x4aa088[_0x32cb('0x29')][_0x32cb('0x2b')]);}logger[_0x32cb('0x29')](_0x32cb('0x25'),_0x78df27,_0x4aa088[_0x32cb('0x29')]['message']);return _0x2074d5(_0x4aa088[_0x32cb('0x29')][_0x32cb('0x2b')]);}else{logger[_0x32cb('0x24')](_0x32cb('0x25'),_0x78df27,_0x32cb('0x26'));_0x2074d5(_0x4aa088[_0x32cb('0x2c')]['message']);}})[_0x32cb('0x2d')](function(_0x3f99f6){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x78df27,_0x3f99f6);_0x38d038(_0x3f99f6);});});}function respondWithStatusCode(_0x3466db,_0x41db5c){_0x41db5c=_0x41db5c||0xcc;return function(_0x10829b){if(_0x10829b){return _0x3466db['sendStatus'](_0x41db5c);}return _0x3466db[_0x32cb('0x2e')](_0x41db5c)['end']();};}function respondWithResult(_0x4c58cb,_0x121e00){_0x121e00=_0x121e00||0xc8;return function(_0x111fa9){if(_0x111fa9){return _0x4c58cb['status'](_0x121e00)[_0x32cb('0x2f')](_0x111fa9);}};}function respondWithFilteredResult(_0x1f1d7d,_0x3a9e19){return function(_0x56988d){if(_0x56988d){var _0x1d326b=_0x56988d['count'],_0xfd58b5=_0x3a9e19['offset'],_0x3b6e0e=_0x3a9e19[_0x32cb('0x30')]+_0x3a9e19['limit'],_0x3fd960;if(_0x3b6e0e>=_0x1d326b){_0x3b6e0e=_0x1d326b;_0x3fd960=0xc8;}else{_0x3fd960=0xce;}_0x1f1d7d[_0x32cb('0x2e')](_0x3fd960);return _0x1f1d7d[_0x32cb('0x31')](_0x32cb('0x32'),_0xfd58b5+'-'+_0x3b6e0e+'/'+_0x1d326b)[_0x32cb('0x2f')](_0x56988d);}return null;};}function patchUpdates(_0x28a8ff){return function(_0x3382bd){try{jsonpatch['apply'](_0x3382bd,_0x28a8ff,!![]);}catch(_0x24c2fd){return BPromise[_0x32cb('0x33')](_0x24c2fd);}return _0x3382bd[_0x32cb('0x34')]();};}function saveUpdates(_0x22ff3b,_0x3707ce){return function(_0x53395c){if(_0x53395c){return _0x53395c[_0x32cb('0x35')](_0x22ff3b)[_0x32cb('0x23')](function(_0x45598b){return _0x45598b;});}return null;};}function removeEntity(_0x272afd,_0x506e59){return function(_0x4878f7){if(_0x4878f7){return _0x4878f7[_0x32cb('0x36')]()[_0x32cb('0x23')](function(){_0x272afd[_0x32cb('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x197ece,_0xe91593){return function(_0x1be12b){if(!_0x1be12b){_0x197ece[_0x32cb('0x37')](0x194);}return _0x1be12b;};}function handleError(_0x23b51c,_0x47d914){_0x47d914=_0x47d914||0x1f4;return function(_0x1b48c5){logger['error'](_0x1b48c5['stack']);if(_0x1b48c5['name']){delete _0x1b48c5[_0x32cb('0x38')];}_0x23b51c[_0x32cb('0x2e')](_0x47d914)[_0x32cb('0x39')](_0x1b48c5);};}exports[_0x32cb('0x3a')]=function(_0x43b289,_0x11e746){var _0x5db641={},_0x358fec={},_0x22e5ae={'count':0x0,'rows':[]};var _0x2b1a07=_[_0x32cb('0x3b')](db[_0x32cb('0x3c')]['rawAttributes'],function(_0x36d73a){return{'name':_0x36d73a['fieldName'],'type':_0x36d73a['type'][_0x32cb('0x3d')]};});_0x358fec[_0x32cb('0x3e')]=_[_0x32cb('0x3b')](_0x2b1a07,_0x32cb('0x38'));_0x358fec[_0x32cb('0x3f')]=_[_0x32cb('0x40')](_0x43b289['query']);_0x358fec[_0x32cb('0x41')]=_[_0x32cb('0x42')](_0x358fec[_0x32cb('0x3e')],_0x358fec[_0x32cb('0x3f')]);_0x5db641[_0x32cb('0x43')]=_['intersection'](_0x358fec[_0x32cb('0x3e')],qs[_0x32cb('0x44')](_0x43b289['query'][_0x32cb('0x44')]));_0x5db641['attributes']=_0x5db641[_0x32cb('0x43')][_0x32cb('0x45')]?_0x5db641[_0x32cb('0x43')]:_0x358fec[_0x32cb('0x3e')];if(!_0x43b289[_0x32cb('0x3f')][_0x32cb('0x46')]('nolimit')){_0x5db641[_0x32cb('0x47')]=qs['limit'](_0x43b289[_0x32cb('0x3f')][_0x32cb('0x47')]);_0x5db641[_0x32cb('0x30')]=qs[_0x32cb('0x30')](_0x43b289['query'][_0x32cb('0x30')]);}_0x5db641[_0x32cb('0x48')]=qs['sort'](_0x43b289['query'][_0x32cb('0x49')]);_0x5db641[_0x32cb('0x4a')]=qs['filters'](_[_0x32cb('0x4b')](_0x43b289[_0x32cb('0x3f')],_0x358fec['filters']),_0x2b1a07);if(_0x43b289[_0x32cb('0x3f')]['filter']){_0x5db641[_0x32cb('0x4a')]=_[_0x32cb('0x4c')](_0x5db641[_0x32cb('0x4a')],{'$or':_[_0x32cb('0x3b')](_0x2b1a07,function(_0x4cf9bb){if(_0x4cf9bb['type']!==_0x32cb('0x4d')){var _0x553648={};_0x553648[_0x4cf9bb[_0x32cb('0x38')]]={'$like':'%'+_0x43b289[_0x32cb('0x3f')][_0x32cb('0x4e')]+'%'};return _0x553648;}})});}_0x5db641=_[_0x32cb('0x4c')]({},_0x5db641,_0x43b289['options']);var _0x5cb976={'where':_0x5db641[_0x32cb('0x4a')]};return db[_0x32cb('0x3c')][_0x32cb('0x4f')](_0x5cb976)['then'](function(_0x24c2cc){_0x22e5ae['count']=_0x24c2cc;if(_0x43b289[_0x32cb('0x3f')][_0x32cb('0x50')]){_0x5db641['include']=[{'all':!![]}];}return db[_0x32cb('0x3c')]['findAll'](_0x5db641);})['then'](function(_0x457658){_0x22e5ae['rows']=_0x457658;return _0x22e5ae;})[_0x32cb('0x23')](respondWithFilteredResult(_0x11e746,_0x5db641))['catch'](handleError(_0x11e746,null));};exports[_0x32cb('0x51')]=function(_0x2220b0,_0x58d887){var _0x5e9d0b={'raw':!![],'where':{'id':_0x2220b0['params']['id']}},_0x21a199={};_0x21a199[_0x32cb('0x3e')]=_['keys'](db[_0x32cb('0x3c')][_0x32cb('0x52')]);_0x21a199['query']=_[_0x32cb('0x40')](_0x2220b0['query']);_0x21a199[_0x32cb('0x41')]=_[_0x32cb('0x42')](_0x21a199['model'],_0x21a199[_0x32cb('0x3f')]);_0x5e9d0b['attributes']=_[_0x32cb('0x42')](_0x21a199[_0x32cb('0x3e')],qs[_0x32cb('0x44')](_0x2220b0[_0x32cb('0x3f')][_0x32cb('0x44')]));_0x5e9d0b[_0x32cb('0x43')]=_0x5e9d0b[_0x32cb('0x43')][_0x32cb('0x45')]?_0x5e9d0b[_0x32cb('0x43')]:_0x21a199[_0x32cb('0x3e')];if(_0x2220b0[_0x32cb('0x3f')][_0x32cb('0x50')]){_0x5e9d0b[_0x32cb('0x53')]=[{'all':!![]}];}_0x5e9d0b=_['merge']({},_0x5e9d0b,_0x2220b0[_0x32cb('0x54')]);return db['OpenchannelMessage'][_0x32cb('0x55')](_0x5e9d0b)[_0x32cb('0x23')](handleEntityNotFound(_0x58d887,null))[_0x32cb('0x23')](respondWithResult(_0x58d887,null))['catch'](handleError(_0x58d887,null));};exports[_0x32cb('0x56')]=function(_0x2a5fd3,_0x554377){return db[_0x32cb('0x3c')][_0x32cb('0x56')](_0x2a5fd3[_0x32cb('0x57')],{})[_0x32cb('0x23')](respondWithResult(_0x554377,0xc9))[_0x32cb('0x2d')](handleError(_0x554377,null));};exports[_0x32cb('0x35')]=function(_0x3d993c,_0x490be5){if(_0x3d993c[_0x32cb('0x57')]['id']){delete _0x3d993c[_0x32cb('0x57')]['id'];}return db[_0x32cb('0x3c')][_0x32cb('0x55')]({'where':{'id':_0x3d993c['params']['id']}})[_0x32cb('0x23')](handleEntityNotFound(_0x490be5,null))['then'](saveUpdates(_0x3d993c[_0x32cb('0x57')],null))['then'](respondWithResult(_0x490be5,null))[_0x32cb('0x2d')](handleError(_0x490be5,null));};exports[_0x32cb('0x36')]=function(_0x2ceb83,_0x56bbc9){return db['OpenchannelMessage']['find']({'where':{'id':_0x2ceb83['params']['id']}})[_0x32cb('0x23')](handleEntityNotFound(_0x56bbc9,null))['then'](removeEntity(_0x56bbc9,null))[_0x32cb('0x2d')](handleError(_0x56bbc9,null));};exports['describe']=function(_0x1394db,_0x103029){return db['OpenchannelMessage'][_0x32cb('0x58')]()['then'](respondWithResult(_0x103029,null))[_0x32cb('0x2d')](handleError(_0x103029,null));};var interaction_log=require(_0x32cb('0x14'))(_0x32cb('0x59'));exports[_0x32cb('0x5a')]=function(_0x4d63b7,_0x4339ff,_0x355511){var _0x5e5dcb={'channel':_0x32cb('0x5b')};if(_0x4d63b7[_0x32cb('0x57')]['id']){delete _0x4d63b7[_0x32cb('0x57')]['id'];}_0x4d63b7[_0x32cb('0x57')][_0x32cb('0x5c')]=!![];_0x4d63b7[_0x32cb('0x57')][_0x32cb('0x5d')]=moment()[_0x32cb('0x5e')](_0x32cb('0x5f'));_0x4d63b7[_0x32cb('0x57')]['UserId']=_0x4d63b7[_0x32cb('0x57')][_0x32cb('0x60')]||_0x4d63b7[_0x32cb('0x61')]['id'];return db[_0x32cb('0x3c')][_0x32cb('0x55')]({'where':{'id':_0x4d63b7[_0x32cb('0x62')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0x32cb('0x63')}]})[_0x32cb('0x23')](handleEntityNotFound(_0x4339ff,null))[_0x32cb('0x23')](saveUpdates(_0x4d63b7[_0x32cb('0x57')],null))[_0x32cb('0x23')](function(_0x2fd166){if(_0x2fd166){_0x5e5dcb[_0x32cb('0x2b')]=_0x2fd166[_0x32cb('0x64')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x2fd166[_0x32cb('0x65')]}});}return null;})[_0x32cb('0x23')](handleEntityNotFound(_0x4339ff,null))[_0x32cb('0x23')](function(_0x47eaf3){if(_0x47eaf3){return _0x47eaf3[_0x32cb('0x35')]({'UserId':_0x4d63b7[_0x32cb('0x57')]['UserId'],'read1stAt':_[_0x32cb('0x66')](_0x47eaf3[_0x32cb('0x67')])?moment()[_0x32cb('0x5e')](_0x32cb('0x5f')):undefined});}return null;})['then'](function(_0x4e7852){if(_0x4e7852){_0x5e5dcb[_0x32cb('0x68')]=_0x4e7852['get']({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4d63b7[_0x32cb('0x61')]['id'],_0x4d63b7[_0x32cb('0x61')][_0x32cb('0x38')],_0x4d63b7['user']['role'],_0x5e5dcb[_0x32cb('0x68')]['id'],_0x4d63b7[_0x32cb('0x57')]?JSON[_0x32cb('0x69')](_0x4d63b7[_0x32cb('0x57')]):_0x32cb('0x6a'));return respondWithRpcPromise(_0x32cb('0x6b'),_0x32cb('0x6c'),_0x5e5dcb);}return null;})['then'](function(_0x1873d9){if(_0x1873d9){if(_0x4d63b7['body'][_0x32cb('0x6d')]){_0x5e5dcb[_0x32cb('0x2b')][_0x32cb('0x6e')]=util[_0x32cb('0x5e')](_0x32cb('0x6f'),_0x4d63b7['user'][_0x32cb('0x38')]);_0x5e5dcb[_0x32cb('0x2b')][_0x32cb('0x70')]=_0x5e5dcb[_0x32cb('0x70')];_0x5e5dcb[_0x32cb('0x2b')]['event']=_0x32cb('0x5a');return respondWithRpcPromise(_0x32cb('0x71'),_0x32cb('0x71'),{'event':'acceptmessage','message':_0x5e5dcb[_0x32cb('0x2b')]},client9002)['then'](function(){return _0x5e5dcb;});}return _0x5e5dcb;}return null;})[_0x32cb('0x23')](respondWithResult(_0x4339ff,null))[_0x32cb('0x2d')](handleError(_0x4339ff,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports[_0x32cb('0x33')]=function(_0x49689c,_0x9c656e,_0x5d5640){var _0x119c7d={'agent':{},'channel':_0x32cb('0x5b')};if(_0x49689c['body']['id']){delete _0x49689c[_0x32cb('0x57')]['id'];}_0x49689c[_0x32cb('0x57')][_0x32cb('0x60')]=_0x49689c[_0x32cb('0x57')][_0x32cb('0x60')]||_0x49689c['user']['id'];_0x119c7d[_0x32cb('0x72')]['id']=_0x49689c[_0x32cb('0x57')][_0x32cb('0x60')];return db[_0x32cb('0x3c')][_0x32cb('0x55')]({'where':{'id':_0x49689c[_0x32cb('0x62')]['id'],'UserId':null}})[_0x32cb('0x23')](handleEntityNotFound(_0x9c656e,null))[_0x32cb('0x23')](function(_0x486a48){if(_0x486a48){_0x119c7d[_0x32cb('0x2b')]=_0x486a48[_0x32cb('0x64')]({'plain':!![]});return db[_0x32cb('0x73')][_0x32cb('0x55')]({'where':{'id':_0x486a48['OpenchannelInteractionId']}});}return null;})[_0x32cb('0x23')](handleEntityNotFound(_0x9c656e,null))[_0x32cb('0x23')](function(_0x1f9fb9){if(_0x1f9fb9){_0x119c7d[_0x32cb('0x68')]=_0x1f9fb9[_0x32cb('0x64')]({'plain':!![]});interaction_log['info'](_0x32cb('0x74'),_0x49689c[_0x32cb('0x61')]['id'],_0x49689c[_0x32cb('0x61')][_0x32cb('0x38')],_0x49689c[_0x32cb('0x61')][_0x32cb('0x75')],_0x119c7d[_0x32cb('0x68')]['id'],_0x49689c[_0x32cb('0x57')]?JSON[_0x32cb('0x69')](_0x49689c[_0x32cb('0x57')]):_0x32cb('0x6a'));return respondWithRpcPromise(_0x32cb('0x76'),'rejectMessage',_0x119c7d);}return null;})[_0x32cb('0x23')](function(_0x31a12d){if(_0x31a12d){_0x31a12d[_0x32cb('0x2b')][_0x32cb('0x6e')]=util[_0x32cb('0x5e')](_0x32cb('0x6f'),_0x49689c['user'][_0x32cb('0x38')]);_0x31a12d[_0x32cb('0x2b')][_0x32cb('0x70')]=_0x119c7d[_0x32cb('0x70')];_0x31a12d['message']['event']='reject';respondWithRpcPromise(_0x32cb('0x71'),_0x32cb('0x71'),{'event':_0x32cb('0x77'),'message':_0x31a12d[_0x32cb('0x2b')]},client9002);return _0x119c7d;}return null;})[_0x32cb('0x23')](respondWithResult(_0x9c656e,null))[_0x32cb('0x2d')](handleError(_0x9c656e,null));};