07a17892ff555706b9aa36f1357fa6d6d1754e16
[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 _0xe815=['AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','acceptmessage','agent','OpenchannelInteraction','RejectMessage','rejectMessage','html-pdf','rimraf','zip-dir','fast-json-patch','moment','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','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','end','status','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','sendStatus','name','map','OpenchannelMessage','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','describe','../../config/logger','openchannel-interactions','openchannel','read','readAt','format','UserId','user','CmContact','get','OpenchannelInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','interaction','null'];(function(_0x148fbf,_0x5594e3){var _0x14ef53=function(_0x3f9093){while(--_0x3f9093){_0x148fbf['push'](_0x148fbf['shift']());}};_0x14ef53(++_0x5594e3);}(_0xe815,0x182));var _0x5e81=function(_0xdec606,_0x3d8081){_0xdec606=_0xdec606-0x0;var _0x1e84da=_0xe815[_0xdec606];return _0x1e84da;};'use strict';var pdf=require(_0x5e81('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x5e81('0x1'));var zipdir=require(_0x5e81('0x2'));var jsonpatch=require(_0x5e81('0x3'));var rp=require('request-promise');var moment=require(_0x5e81('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x5e81('0x5'));var csv=require('to-csv');var ejs=require(_0x5e81('0x6'));var fs=require('fs');var _=require(_0x5e81('0x7'));var squel=require(_0x5e81('0x8'));var crypto=require(_0x5e81('0x9'));var jsforce=require(_0x5e81('0xa'));var deskjs=require(_0x5e81('0xb'));var toCsv=require(_0x5e81('0xc'));var querystring=require(_0x5e81('0xd'));var Papa=require(_0x5e81('0xe'));var Redis=require(_0x5e81('0xf'));var authService=require(_0x5e81('0x10'));var qs=require(_0x5e81('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5e81('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x5e81('0x13'));var config=require(_0x5e81('0x14'));var db=require(_0x5e81('0x15'))['db'];config['redis']=_[_0x5e81('0x16')](config[_0x5e81('0x17')],{'host':_0x5e81('0x18'),'port':0x18eb});var socket=require(_0x5e81('0x19'))(new Redis(config[_0x5e81('0x17')]));require(_0x5e81('0x1a'))[_0x5e81('0x1b')](socket);var jayson=require(_0x5e81('0x1c'));var client=jayson[_0x5e81('0x1d')]['http']({'port':0x232c});var client9002=jayson[_0x5e81('0x1d')][_0x5e81('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x55b396,_0x5435b8,_0x2e1d15){if(_0x2e1d15){var _0x5dfc97=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5dfc97[_0x5e81('0x1f')](_0x5435b8)){return _0x55b396;}else{throw new db[(_0x5e81('0x20'))][(_0x5e81('0x21'))]('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 _0x55b396;}}function respondWithRpcPromise(_0x88246b,_0x40b852,_0x1dc926,_0x4ba811){return new BPromise(function(_0x57e75d,_0x1bf172){var _0x51c07d=_0x4ba811||client;return _0x51c07d[_0x5e81('0x22')](_0x88246b,_0x1dc926)[_0x5e81('0x23')](function(_0x3aadaa){logger[_0x5e81('0x24')](_0x5e81('0x25'),_0x40b852,_0x5e81('0x26'));logger[_0x5e81('0x27')](_0x5e81('0x28'),_0x40b852,_0x5e81('0x26'),JSON[_0x5e81('0x29')](_0x3aadaa));if(_0x3aadaa[_0x5e81('0x2a')]){if(_0x3aadaa['error'][_0x5e81('0x2b')]===0x1f4){logger[_0x5e81('0x2a')]('OpenchannelMessage,\x20%s,\x20%s',_0x40b852,_0x3aadaa[_0x5e81('0x2a')]['message']);return _0x1bf172(_0x3aadaa[_0x5e81('0x2a')][_0x5e81('0x2c')]);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x40b852,_0x3aadaa['error'][_0x5e81('0x2c')]);return _0x57e75d(_0x3aadaa[_0x5e81('0x2a')][_0x5e81('0x2c')]);}else{logger[_0x5e81('0x24')](_0x5e81('0x25'),_0x40b852,_0x5e81('0x26'));_0x57e75d(_0x3aadaa[_0x5e81('0x2d')][_0x5e81('0x2c')]);}})['catch'](function(_0x52d991){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x40b852,_0x52d991);_0x1bf172(_0x52d991);});});}function respondWithStatusCode(_0x3d753a,_0x626da6){_0x626da6=_0x626da6||0xcc;return function(_0x64ff0b){if(_0x64ff0b){return _0x3d753a['sendStatus'](_0x626da6);}return _0x3d753a['status'](_0x626da6)[_0x5e81('0x2e')]();};}function respondWithResult(_0x4f2f9a,_0xd42556){_0xd42556=_0xd42556||0xc8;return function(_0x1d9665){if(_0x1d9665){return _0x4f2f9a[_0x5e81('0x2f')](_0xd42556)[_0x5e81('0x30')](_0x1d9665);}};}function respondWithFilteredResult(_0x31393c,_0x487014){return function(_0x29e5d7){if(_0x29e5d7){var _0x52d844=_0x29e5d7[_0x5e81('0x31')],_0x1a0ee3=_0x487014[_0x5e81('0x32')],_0x32cd0e=_0x487014[_0x5e81('0x32')]+_0x487014[_0x5e81('0x33')],_0x12ea9e;if(_0x32cd0e>=_0x52d844){_0x32cd0e=_0x52d844;_0x12ea9e=0xc8;}else{_0x12ea9e=0xce;}_0x31393c[_0x5e81('0x2f')](_0x12ea9e);return _0x31393c[_0x5e81('0x34')](_0x5e81('0x35'),_0x1a0ee3+'-'+_0x32cd0e+'/'+_0x52d844)[_0x5e81('0x30')](_0x29e5d7);}return null;};}function patchUpdates(_0xe98b13){return function(_0x1b65b0){try{jsonpatch[_0x5e81('0x36')](_0x1b65b0,_0xe98b13,!![]);}catch(_0x2f6445){return BPromise[_0x5e81('0x37')](_0x2f6445);}return _0x1b65b0['save']();};}function saveUpdates(_0x321975,_0x2973de){return function(_0x4e1705){if(_0x4e1705){return _0x4e1705[_0x5e81('0x38')](_0x321975)['then'](function(_0x5f37a0){return _0x5f37a0;});}return null;};}function removeEntity(_0x276f6c,_0x2d3c66){return function(_0x12eaaa){if(_0x12eaaa){return _0x12eaaa[_0x5e81('0x39')]()[_0x5e81('0x23')](function(){_0x276f6c[_0x5e81('0x2f')](0xcc)[_0x5e81('0x2e')]();});}};}function handleEntityNotFound(_0x521696,_0x44ea3d){return function(_0xcb182b){if(!_0xcb182b){_0x521696[_0x5e81('0x3a')](0x194);}return _0xcb182b;};}function handleError(_0x5bd3e7,_0x50a415){_0x50a415=_0x50a415||0x1f4;return function(_0x387d03){logger[_0x5e81('0x2a')](_0x387d03['stack']);if(_0x387d03[_0x5e81('0x3b')]){delete _0x387d03[_0x5e81('0x3b')];}_0x5bd3e7['status'](_0x50a415)['send'](_0x387d03);};}exports['index']=function(_0xb415d4,_0x4b18b2){var _0x1847c1={},_0x5027f9={},_0x189b80={'count':0x0,'rows':[]};var _0x468632=_[_0x5e81('0x3c')](db[_0x5e81('0x3d')][_0x5e81('0x3e')],function(_0x2aa075){return{'name':_0x2aa075['fieldName'],'type':_0x2aa075[_0x5e81('0x3f')][_0x5e81('0x40')]};});_0x5027f9[_0x5e81('0x41')]=_[_0x5e81('0x3c')](_0x468632,_0x5e81('0x3b'));_0x5027f9[_0x5e81('0x42')]=_[_0x5e81('0x43')](_0xb415d4[_0x5e81('0x42')]);_0x5027f9[_0x5e81('0x44')]=_[_0x5e81('0x45')](_0x5027f9['model'],_0x5027f9[_0x5e81('0x42')]);_0x1847c1[_0x5e81('0x46')]=_['intersection'](_0x5027f9['model'],qs[_0x5e81('0x47')](_0xb415d4['query'][_0x5e81('0x47')]));_0x1847c1[_0x5e81('0x46')]=_0x1847c1[_0x5e81('0x46')][_0x5e81('0x48')]?_0x1847c1[_0x5e81('0x46')]:_0x5027f9['model'];if(!_0xb415d4['query'][_0x5e81('0x49')](_0x5e81('0x4a'))){_0x1847c1['limit']=qs[_0x5e81('0x33')](_0xb415d4['query'][_0x5e81('0x33')]);_0x1847c1['offset']=qs[_0x5e81('0x32')](_0xb415d4[_0x5e81('0x42')][_0x5e81('0x32')]);}_0x1847c1[_0x5e81('0x4b')]=qs[_0x5e81('0x4c')](_0xb415d4['query']['sort']);_0x1847c1[_0x5e81('0x4d')]=qs['filters'](_[_0x5e81('0x4e')](_0xb415d4[_0x5e81('0x42')],_0x5027f9[_0x5e81('0x44')]));if(_0xb415d4[_0x5e81('0x42')][_0x5e81('0x4f')]){_0x1847c1[_0x5e81('0x4d')]=_['merge'](_0x1847c1['where'],{'$or':_[_0x5e81('0x3c')](_0x468632,function(_0x21ef3a){if(_0x21ef3a[_0x5e81('0x3f')]!==_0x5e81('0x50')){var _0x459b6f={};_0x459b6f[_0x21ef3a['name']]={'$like':'%'+_0xb415d4[_0x5e81('0x42')][_0x5e81('0x4f')]+'%'};return _0x459b6f;}})});}_0x1847c1=_[_0x5e81('0x51')]({},_0x1847c1,_0xb415d4[_0x5e81('0x52')]);var _0x56370e={'where':_0x1847c1[_0x5e81('0x4d')]};return db[_0x5e81('0x3d')][_0x5e81('0x31')](_0x56370e)['then'](function(_0x1acd9e){_0x189b80[_0x5e81('0x31')]=_0x1acd9e;if(_0xb415d4['query'][_0x5e81('0x53')]){_0x1847c1[_0x5e81('0x54')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x5e81('0x55')](_0x1847c1);})[_0x5e81('0x23')](function(_0x535fc8){_0x189b80[_0x5e81('0x56')]=_0x535fc8;return _0x189b80;})['then'](respondWithFilteredResult(_0x4b18b2,_0x1847c1))[_0x5e81('0x57')](handleError(_0x4b18b2,null));};exports['show']=function(_0x26a1de,_0x406c41){var _0x34678f={'raw':!![],'where':{'id':_0x26a1de[_0x5e81('0x58')]['id']}},_0x4030be={};_0x4030be[_0x5e81('0x41')]=_[_0x5e81('0x43')](db[_0x5e81('0x3d')]['rawAttributes']);_0x4030be['query']=_[_0x5e81('0x43')](_0x26a1de[_0x5e81('0x42')]);_0x4030be['filters']=_[_0x5e81('0x45')](_0x4030be[_0x5e81('0x41')],_0x4030be[_0x5e81('0x42')]);_0x34678f[_0x5e81('0x46')]=_[_0x5e81('0x45')](_0x4030be[_0x5e81('0x41')],qs[_0x5e81('0x47')](_0x26a1de['query'][_0x5e81('0x47')]));_0x34678f[_0x5e81('0x46')]=_0x34678f[_0x5e81('0x46')][_0x5e81('0x48')]?_0x34678f[_0x5e81('0x46')]:_0x4030be[_0x5e81('0x41')];if(_0x26a1de['query'][_0x5e81('0x53')]){_0x34678f[_0x5e81('0x54')]=[{'all':!![]}];}_0x34678f=_['merge']({},_0x34678f,_0x26a1de['options']);return db[_0x5e81('0x3d')][_0x5e81('0x59')](_0x34678f)[_0x5e81('0x23')](handleEntityNotFound(_0x406c41,null))[_0x5e81('0x23')](respondWithResult(_0x406c41,null))[_0x5e81('0x57')](handleError(_0x406c41,null));};exports[_0x5e81('0x5a')]=function(_0x596a37,_0x5b9a62){return db[_0x5e81('0x3d')][_0x5e81('0x5a')](_0x596a37[_0x5e81('0x5b')],{})[_0x5e81('0x23')](respondWithResult(_0x5b9a62,0xc9))['catch'](handleError(_0x5b9a62,null));};exports[_0x5e81('0x38')]=function(_0x5a50cc,_0x5f34e5){if(_0x5a50cc['body']['id']){delete _0x5a50cc[_0x5e81('0x5b')]['id'];}return db['OpenchannelMessage'][_0x5e81('0x59')]({'where':{'id':_0x5a50cc[_0x5e81('0x58')]['id']}})[_0x5e81('0x23')](handleEntityNotFound(_0x5f34e5,null))[_0x5e81('0x23')](saveUpdates(_0x5a50cc['body'],null))[_0x5e81('0x23')](respondWithResult(_0x5f34e5,null))[_0x5e81('0x57')](handleError(_0x5f34e5,null));};exports[_0x5e81('0x39')]=function(_0x59855d,_0x1c3dab){return db['OpenchannelMessage'][_0x5e81('0x59')]({'where':{'id':_0x59855d[_0x5e81('0x58')]['id']}})[_0x5e81('0x23')](handleEntityNotFound(_0x1c3dab,null))[_0x5e81('0x23')](removeEntity(_0x1c3dab,null))[_0x5e81('0x57')](handleError(_0x1c3dab,null));};exports[_0x5e81('0x5c')]=function(_0x27ad7b,_0x5cd89e){return db['OpenchannelMessage']['describe']()[_0x5e81('0x23')](respondWithResult(_0x5cd89e,null))['catch'](handleError(_0x5cd89e,null));};var interaction_log=require(_0x5e81('0x5d'))(_0x5e81('0x5e'));exports['accept']=function(_0x4bc549,_0x5cfbff,_0x2835b8){var _0xadfadf={'channel':_0x5e81('0x5f')};if(_0x4bc549[_0x5e81('0x5b')]['id']){delete _0x4bc549[_0x5e81('0x5b')]['id'];}_0x4bc549[_0x5e81('0x5b')][_0x5e81('0x60')]=!![];_0x4bc549[_0x5e81('0x5b')][_0x5e81('0x61')]=moment()[_0x5e81('0x62')]('YYYY-MM-DD\x20HH:mm:ss');_0x4bc549[_0x5e81('0x5b')][_0x5e81('0x63')]=_0x4bc549[_0x5e81('0x5b')]['UserId']||_0x4bc549[_0x5e81('0x64')]['id'];return db[_0x5e81('0x3d')]['find']({'where':{'id':_0x4bc549[_0x5e81('0x58')]['id'],'UserId':null},'include':[{'model':db[_0x5e81('0x65')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x5cfbff,null))[_0x5e81('0x23')](saveUpdates(_0x4bc549[_0x5e81('0x5b')],null))[_0x5e81('0x23')](function(_0x2e91c0){if(_0x2e91c0){_0xadfadf['message']=_0x2e91c0[_0x5e81('0x66')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x2e91c0[_0x5e81('0x67')]}});}return null;})[_0x5e81('0x23')](handleEntityNotFound(_0x5cfbff,null))[_0x5e81('0x23')](function(_0x48081f){if(_0x48081f){return _0x48081f[_0x5e81('0x38')]({'UserId':_0x4bc549[_0x5e81('0x5b')][_0x5e81('0x63')],'read1stAt':_[_0x5e81('0x68')](_0x48081f[_0x5e81('0x69')])?moment()[_0x5e81('0x62')](_0x5e81('0x6a')):undefined});}return null;})[_0x5e81('0x23')](function(_0x43969f){if(_0x43969f){_0xadfadf['interaction']=_0x43969f[_0x5e81('0x66')]({'plain':!![]});interaction_log['info'](_0x5e81('0x6b'),_0x4bc549[_0x5e81('0x64')]['id'],_0x4bc549[_0x5e81('0x64')][_0x5e81('0x3b')],_0x4bc549[_0x5e81('0x64')]['role'],_0xadfadf[_0x5e81('0x6c')]['id'],_0x4bc549['body']?JSON[_0x5e81('0x29')](_0x4bc549['body']):_0x5e81('0x6d'));return respondWithRpcPromise(_0x5e81('0x6e'),_0x5e81('0x6f'),_0xadfadf);}return null;})[_0x5e81('0x23')](function(_0xee5cde){if(_0xee5cde){if(_0x4bc549['body'][_0x5e81('0x70')]){_0xadfadf[_0x5e81('0x2c')][_0x5e81('0x71')]=util['format'](_0x5e81('0x72'),_0x4bc549['user'][_0x5e81('0x3b')]);_0xadfadf[_0x5e81('0x2c')]['channel']=_0xadfadf[_0x5e81('0x73')];_0xadfadf[_0x5e81('0x2c')][_0x5e81('0x74')]=_0x5e81('0x75');return respondWithRpcPromise(_0x5e81('0x76'),_0x5e81('0x76'),{'event':_0x5e81('0x77'),'message':_0xadfadf[_0x5e81('0x2c')]},client9002)[_0x5e81('0x23')](function(){return _0xadfadf;});}return _0xadfadf;}return null;})['then'](respondWithResult(_0x5cfbff,null))['catch'](handleError(_0x5cfbff,null));};var interaction_log=require(_0x5e81('0x5d'))('openchannel-interactions');exports[_0x5e81('0x37')]=function(_0x238003,_0xb60efc,_0x5f14c9){var _0x32dc39={'agent':{},'channel':_0x5e81('0x5f')};if(_0x238003[_0x5e81('0x5b')]['id']){delete _0x238003[_0x5e81('0x5b')]['id'];}_0x238003[_0x5e81('0x5b')][_0x5e81('0x63')]=_0x238003['body'][_0x5e81('0x63')]||_0x238003[_0x5e81('0x64')]['id'];_0x32dc39[_0x5e81('0x78')]['id']=_0x238003['body']['UserId'];return db[_0x5e81('0x3d')]['find']({'where':{'id':_0x238003[_0x5e81('0x58')]['id'],'UserId':null}})[_0x5e81('0x23')](handleEntityNotFound(_0xb60efc,null))['then'](function(_0x56455f){if(_0x56455f){_0x32dc39[_0x5e81('0x2c')]=_0x56455f[_0x5e81('0x66')]({'plain':!![]});return db[_0x5e81('0x79')][_0x5e81('0x59')]({'where':{'id':_0x56455f[_0x5e81('0x67')]}});}return null;})['then'](handleEntityNotFound(_0xb60efc,null))['then'](function(_0x36fd3f){if(_0x36fd3f){_0x32dc39[_0x5e81('0x6c')]=_0x36fd3f[_0x5e81('0x66')]({'plain':!![]});interaction_log[_0x5e81('0x24')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x238003[_0x5e81('0x64')]['id'],_0x238003[_0x5e81('0x64')][_0x5e81('0x3b')],_0x238003['user']['role'],_0x32dc39['interaction']['id'],_0x238003['body']?JSON['stringify'](_0x238003[_0x5e81('0x5b')]):_0x5e81('0x6d'));return respondWithRpcPromise(_0x5e81('0x7a'),_0x5e81('0x7b'),_0x32dc39);}return null;})[_0x5e81('0x23')](function(_0x3545ce){if(_0x3545ce){_0x3545ce[_0x5e81('0x2c')][_0x5e81('0x71')]=util[_0x5e81('0x62')](_0x5e81('0x72'),_0x238003[_0x5e81('0x64')][_0x5e81('0x3b')]);_0x3545ce[_0x5e81('0x2c')][_0x5e81('0x73')]=_0x32dc39['channel'];_0x3545ce[_0x5e81('0x2c')][_0x5e81('0x74')]=_0x5e81('0x37');respondWithRpcPromise(_0x5e81('0x76'),'EventManager',{'event':'rejectmessage','message':_0x3545ce[_0x5e81('0x2c')]},client9002);return _0x32dc39;}return null;})[_0x5e81('0x23')](respondWithResult(_0xb60efc,null))['catch'](handleError(_0xb60efc,null));};