93ec0a5ea0a6baf887f56a99c4b4fbebe071a74c
[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 _0x769a=['intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelMessage','count','findAll','rows','show','find','create','update','body','params','describe','openchannel-interactions','openchannel','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','get','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','accept','EventManager','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','event','rejectmessage','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults','localhost','./openchannelMessage.socket','register','jayson/promise','client','http','test','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','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','catch','sendStatus','status','end','offset','limit','json','apply','reject','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters'];(function(_0x1abda2,_0x5c6fb2){var _0x430586=function(_0x4dd3ec){while(--_0x4dd3ec){_0x1abda2['push'](_0x1abda2['shift']());}};_0x430586(++_0x5c6fb2);}(_0x769a,0x19c));var _0xa769=function(_0x5c6022,_0x5cd10b){_0x5c6022=_0x5c6022-0x0;var _0x4ab5af=_0x769a[_0x5c6022];return _0x4ab5af;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xa769('0x0'));var rimraf=require(_0xa769('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa769('0x2'));var rp=require(_0xa769('0x3'));var moment=require(_0xa769('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa769('0x5'));var util=require('util');var path=require(_0xa769('0x6'));var sox=require('sox');var csv=require(_0xa769('0x7'));var ejs=require(_0xa769('0x8'));var fs=require('fs');var _=require(_0xa769('0x9'));var squel=require(_0xa769('0xa'));var crypto=require(_0xa769('0xb'));var jsforce=require(_0xa769('0xc'));var deskjs=require(_0xa769('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa769('0xe'));var as=require(_0xa769('0xf'));var hardwareService=require(_0xa769('0x10'));var logger=require(_0xa769('0x11'))('api');var utils=require(_0xa769('0x12'));var config=require(_0xa769('0x13'));var db=require('../../mysqldb')['db'];config[_0xa769('0x14')]=_[_0xa769('0x15')](config[_0xa769('0x14')],{'host':_0xa769('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa769('0x14')]));require(_0xa769('0x17'))[_0xa769('0x18')](socket);var jayson=require(_0xa769('0x19'));var client=jayson[_0xa769('0x1a')]['http']({'port':0x232c});var client9002=jayson['client'][_0xa769('0x1b')]({'port':0x232a});function checkPasswordPattern(_0x1b9672,_0x8097bf,_0x2b40a3){if(_0x2b40a3){var _0x145130=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x145130[_0xa769('0x1c')](_0x8097bf)){return _0x1b9672;}else{throw new db[(_0xa769('0x1d'))][(_0xa769('0x1e'))](_0xa769('0x1f'));}}else{return _0x1b9672;}}function respondWithRpcPromise(_0x1ca85c,_0x382848,_0x55bf57,_0x30dd1f){return new BPromise(function(_0x57d797,_0x5cdc5f){var _0x51ab9f=_0x30dd1f||client;return _0x51ab9f[_0xa769('0x20')](_0x1ca85c,_0x55bf57)[_0xa769('0x21')](function(_0x3b5456){logger[_0xa769('0x22')](_0xa769('0x23'),_0x382848,_0xa769('0x24'));logger['debug'](_0xa769('0x25'),_0x382848,_0xa769('0x24'),JSON[_0xa769('0x26')](_0x3b5456));if(_0x3b5456['error']){if(_0x3b5456['error'][_0xa769('0x27')]===0x1f4){logger[_0xa769('0x28')](_0xa769('0x23'),_0x382848,_0x3b5456['error']['message']);return _0x5cdc5f(_0x3b5456[_0xa769('0x28')][_0xa769('0x29')]);}logger['error'](_0xa769('0x23'),_0x382848,_0x3b5456[_0xa769('0x28')][_0xa769('0x29')]);return _0x57d797(_0x3b5456[_0xa769('0x28')][_0xa769('0x29')]);}else{logger['info'](_0xa769('0x23'),_0x382848,_0xa769('0x24'));_0x57d797(_0x3b5456['result'][_0xa769('0x29')]);}})[_0xa769('0x2a')](function(_0x2801c9){logger[_0xa769('0x28')](_0xa769('0x23'),_0x382848,_0x2801c9);_0x5cdc5f(_0x2801c9);});});}function respondWithStatusCode(_0x3affa6,_0x5417ef){_0x5417ef=_0x5417ef||0xcc;return function(_0x315e92){if(_0x315e92){return _0x3affa6[_0xa769('0x2b')](_0x5417ef);}return _0x3affa6[_0xa769('0x2c')](_0x5417ef)[_0xa769('0x2d')]();};}function respondWithResult(_0x2f1dfe,_0x7cfcee){_0x7cfcee=_0x7cfcee||0xc8;return function(_0x537f9c){if(_0x537f9c){return _0x2f1dfe[_0xa769('0x2c')](_0x7cfcee)['json'](_0x537f9c);}};}function respondWithFilteredResult(_0x222c3e,_0x7d5deb){return function(_0x24d214){if(_0x24d214){var _0x3a30d1=_0x24d214['count'],_0x4da0ce=_0x7d5deb[_0xa769('0x2e')],_0x1e6e36=_0x7d5deb[_0xa769('0x2e')]+_0x7d5deb[_0xa769('0x2f')],_0x92f648;if(_0x1e6e36>=_0x3a30d1){_0x1e6e36=_0x3a30d1;_0x92f648=0xc8;}else{_0x92f648=0xce;}_0x222c3e[_0xa769('0x2c')](_0x92f648);return _0x222c3e['set']('Content-Range',_0x4da0ce+'-'+_0x1e6e36+'/'+_0x3a30d1)[_0xa769('0x30')](_0x24d214);}return null;};}function patchUpdates(_0x2e5dcd){return function(_0x1e2d41){try{jsonpatch[_0xa769('0x31')](_0x1e2d41,_0x2e5dcd,!![]);}catch(_0x412f39){return BPromise[_0xa769('0x32')](_0x412f39);}return _0x1e2d41['save']();};}function saveUpdates(_0xe615e0,_0x311769){return function(_0x382e16){if(_0x382e16){return _0x382e16['update'](_0xe615e0)['then'](function(_0x31620e){return _0x31620e;});}return null;};}function removeEntity(_0x3a8ffa,_0x4e857b){return function(_0x163361){if(_0x163361){return _0x163361[_0xa769('0x33')]()[_0xa769('0x21')](function(){_0x3a8ffa[_0xa769('0x2c')](0xcc)[_0xa769('0x2d')]();});}};}function handleEntityNotFound(_0x3efd81,_0x2fe7e5){return function(_0x40358c){if(!_0x40358c){_0x3efd81['sendStatus'](0x194);}return _0x40358c;};}function handleError(_0x55ca4f,_0x4084eb){_0x4084eb=_0x4084eb||0x1f4;return function(_0x1ab55f){logger[_0xa769('0x28')](_0x1ab55f[_0xa769('0x34')]);if(_0x1ab55f[_0xa769('0x35')]){delete _0x1ab55f[_0xa769('0x35')];}_0x55ca4f['status'](_0x4084eb)['send'](_0x1ab55f);};}exports[_0xa769('0x36')]=function(_0x4ed294,_0x23e7cf){var _0x41c709={},_0x50f36f={},_0x579eeb={'count':0x0,'rows':[]};var _0x50c9a5=_[_0xa769('0x37')](db['OpenchannelMessage'][_0xa769('0x38')],function(_0x5de360){return{'name':_0x5de360[_0xa769('0x39')],'type':_0x5de360[_0xa769('0x3a')][_0xa769('0x3b')]};});_0x50f36f[_0xa769('0x3c')]=_['map'](_0x50c9a5,'name');_0x50f36f['query']=_[_0xa769('0x3d')](_0x4ed294[_0xa769('0x3e')]);_0x50f36f[_0xa769('0x3f')]=_[_0xa769('0x40')](_0x50f36f[_0xa769('0x3c')],_0x50f36f[_0xa769('0x3e')]);_0x41c709[_0xa769('0x41')]=_[_0xa769('0x40')](_0x50f36f[_0xa769('0x3c')],qs['fields'](_0x4ed294[_0xa769('0x3e')][_0xa769('0x42')]));_0x41c709[_0xa769('0x41')]=_0x41c709[_0xa769('0x41')][_0xa769('0x43')]?_0x41c709[_0xa769('0x41')]:_0x50f36f[_0xa769('0x3c')];if(!_0x4ed294[_0xa769('0x3e')][_0xa769('0x44')](_0xa769('0x45'))){_0x41c709['limit']=qs['limit'](_0x4ed294[_0xa769('0x3e')][_0xa769('0x2f')]);_0x41c709[_0xa769('0x2e')]=qs[_0xa769('0x2e')](_0x4ed294[_0xa769('0x3e')][_0xa769('0x2e')]);}_0x41c709[_0xa769('0x46')]=qs[_0xa769('0x47')](_0x4ed294[_0xa769('0x3e')][_0xa769('0x47')]);_0x41c709[_0xa769('0x48')]=qs[_0xa769('0x3f')](_[_0xa769('0x49')](_0x4ed294[_0xa769('0x3e')],_0x50f36f['filters']),_0x50c9a5);if(_0x4ed294[_0xa769('0x3e')][_0xa769('0x4a')]){_0x41c709[_0xa769('0x48')]=_[_0xa769('0x4b')](_0x41c709[_0xa769('0x48')],{'$or':_[_0xa769('0x37')](_0x50c9a5,function(_0x453270){if(_0x453270[_0xa769('0x3a')]!==_0xa769('0x4c')){var _0x20847d={};_0x20847d[_0x453270[_0xa769('0x35')]]={'$like':'%'+_0x4ed294[_0xa769('0x3e')][_0xa769('0x4a')]+'%'};return _0x20847d;}})});}_0x41c709=_[_0xa769('0x4b')]({},_0x41c709,_0x4ed294[_0xa769('0x4d')]);var _0x39c2e5={'where':_0x41c709['where']};return db[_0xa769('0x4e')]['count'](_0x39c2e5)[_0xa769('0x21')](function(_0x4ed76d){_0x579eeb[_0xa769('0x4f')]=_0x4ed76d;if(_0x4ed294[_0xa769('0x3e')]['includeAll']){_0x41c709['include']=[{'all':!![]}];}return db[_0xa769('0x4e')][_0xa769('0x50')](_0x41c709);})[_0xa769('0x21')](function(_0x5a97ca){_0x579eeb[_0xa769('0x51')]=_0x5a97ca;return _0x579eeb;})[_0xa769('0x21')](respondWithFilteredResult(_0x23e7cf,_0x41c709))['catch'](handleError(_0x23e7cf,null));};exports[_0xa769('0x52')]=function(_0x225b9c,_0x4cc569){var _0x5d4534={'raw':!![],'where':{'id':_0x225b9c['params']['id']}},_0x2eef6e={};_0x2eef6e[_0xa769('0x3c')]=_['keys'](db[_0xa769('0x4e')][_0xa769('0x38')]);_0x2eef6e[_0xa769('0x3e')]=_[_0xa769('0x3d')](_0x225b9c['query']);_0x2eef6e['filters']=_[_0xa769('0x40')](_0x2eef6e[_0xa769('0x3c')],_0x2eef6e[_0xa769('0x3e')]);_0x5d4534[_0xa769('0x41')]=_['intersection'](_0x2eef6e['model'],qs[_0xa769('0x42')](_0x225b9c[_0xa769('0x3e')][_0xa769('0x42')]));_0x5d4534[_0xa769('0x41')]=_0x5d4534[_0xa769('0x41')][_0xa769('0x43')]?_0x5d4534['attributes']:_0x2eef6e[_0xa769('0x3c')];if(_0x225b9c[_0xa769('0x3e')]['includeAll']){_0x5d4534['include']=[{'all':!![]}];}_0x5d4534=_[_0xa769('0x4b')]({},_0x5d4534,_0x225b9c[_0xa769('0x4d')]);return db[_0xa769('0x4e')][_0xa769('0x53')](_0x5d4534)[_0xa769('0x21')](handleEntityNotFound(_0x4cc569,null))[_0xa769('0x21')](respondWithResult(_0x4cc569,null))[_0xa769('0x2a')](handleError(_0x4cc569,null));};exports[_0xa769('0x54')]=function(_0x167192,_0x31b179){return db[_0xa769('0x4e')]['create'](_0x167192['body'],{})[_0xa769('0x21')](respondWithResult(_0x31b179,0xc9))['catch'](handleError(_0x31b179,null));};exports[_0xa769('0x55')]=function(_0x4d2197,_0x4d8216){if(_0x4d2197[_0xa769('0x56')]['id']){delete _0x4d2197[_0xa769('0x56')]['id'];}return db[_0xa769('0x4e')][_0xa769('0x53')]({'where':{'id':_0x4d2197[_0xa769('0x57')]['id']}})[_0xa769('0x21')](handleEntityNotFound(_0x4d8216,null))[_0xa769('0x21')](saveUpdates(_0x4d2197[_0xa769('0x56')],null))[_0xa769('0x21')](respondWithResult(_0x4d8216,null))[_0xa769('0x2a')](handleError(_0x4d8216,null));};exports[_0xa769('0x33')]=function(_0x487a24,_0x48215f){return db[_0xa769('0x4e')]['find']({'where':{'id':_0x487a24[_0xa769('0x57')]['id']}})[_0xa769('0x21')](handleEntityNotFound(_0x48215f,null))[_0xa769('0x21')](removeEntity(_0x48215f,null))['catch'](handleError(_0x48215f,null));};exports[_0xa769('0x58')]=function(_0x28055e,_0x17b007){return db[_0xa769('0x4e')][_0xa769('0x58')]()[_0xa769('0x21')](respondWithResult(_0x17b007,null))[_0xa769('0x2a')](handleError(_0x17b007,null));};var interaction_log=require(_0xa769('0x11'))(_0xa769('0x59'));exports['accept']=function(_0x440ef2,_0x46ac86,_0x3c59b9){var _0x33c380={'channel':_0xa769('0x5a')};if(_0x440ef2[_0xa769('0x56')]['id']){delete _0x440ef2[_0xa769('0x56')]['id'];}_0x440ef2[_0xa769('0x56')]['read']=!![];_0x440ef2['body'][_0xa769('0x5b')]=moment()[_0xa769('0x5c')](_0xa769('0x5d'));_0x440ef2['body'][_0xa769('0x5e')]=_0x440ef2['body']['UserId']||_0x440ef2[_0xa769('0x5f')]['id'];return db['OpenchannelMessage'][_0xa769('0x53')]({'where':{'id':_0x440ef2[_0xa769('0x57')]['id'],'UserId':null},'include':[{'model':db[_0xa769('0x60')],'as':_0xa769('0x61')}]})[_0xa769('0x21')](handleEntityNotFound(_0x46ac86,null))[_0xa769('0x21')](saveUpdates(_0x440ef2[_0xa769('0x56')],null))['then'](function(_0x54c7ca){if(_0x54c7ca){_0x33c380[_0xa769('0x29')]=_0x54c7ca['get']({'plain':!![]});return db[_0xa769('0x62')][_0xa769('0x53')]({'where':{'id':_0x54c7ca[_0xa769('0x63')]}});}return null;})[_0xa769('0x21')](handleEntityNotFound(_0x46ac86,null))[_0xa769('0x21')](function(_0x4df7bb){if(_0x4df7bb){return _0x4df7bb[_0xa769('0x55')]({'UserId':_0x440ef2[_0xa769('0x56')][_0xa769('0x5e')],'read1stAt':_[_0xa769('0x64')](_0x4df7bb[_0xa769('0x65')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x5ae8a5){if(_0x5ae8a5){_0x33c380[_0xa769('0x66')]=_0x5ae8a5[_0xa769('0x67')]({'plain':!![]});interaction_log[_0xa769('0x22')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x440ef2[_0xa769('0x5f')]['id'],_0x440ef2[_0xa769('0x5f')]['name'],_0x440ef2[_0xa769('0x5f')]['role'],_0x33c380[_0xa769('0x66')]['id'],_0x440ef2[_0xa769('0x56')]?JSON[_0xa769('0x26')](_0x440ef2[_0xa769('0x56')]):_0xa769('0x68'));return respondWithRpcPromise(_0xa769('0x69'),_0xa769('0x6a'),_0x33c380);}return null;})[_0xa769('0x21')](function(_0x39bb2d){if(_0x39bb2d){if(_0x440ef2['body'][_0xa769('0x6b')]){_0x33c380['message'][_0xa769('0x6c')]=util['format'](_0xa769('0x6d'),_0x440ef2[_0xa769('0x5f')][_0xa769('0x35')]);_0x33c380['message']['channel']=_0x33c380[_0xa769('0x6e')];_0x33c380['message']['event']=_0xa769('0x6f');return respondWithRpcPromise(_0xa769('0x70'),_0xa769('0x70'),{'event':'acceptmessage','message':_0x33c380[_0xa769('0x29')]},client9002)[_0xa769('0x21')](function(){return _0x33c380;});}return _0x33c380;}return null;})[_0xa769('0x21')](respondWithResult(_0x46ac86,null))['catch'](handleError(_0x46ac86,null));};var interaction_log=require(_0xa769('0x11'))(_0xa769('0x59'));exports[_0xa769('0x32')]=function(_0x23f6da,_0x47e587,_0x564aca){var _0x2da0b1={'agent':{},'channel':_0xa769('0x5a')};if(_0x23f6da[_0xa769('0x56')]['id']){delete _0x23f6da[_0xa769('0x56')]['id'];}_0x23f6da['body'][_0xa769('0x5e')]=_0x23f6da['body'][_0xa769('0x5e')]||_0x23f6da[_0xa769('0x5f')]['id'];_0x2da0b1[_0xa769('0x71')]['id']=_0x23f6da[_0xa769('0x56')][_0xa769('0x5e')];return db['OpenchannelMessage'][_0xa769('0x53')]({'where':{'id':_0x23f6da[_0xa769('0x57')]['id'],'UserId':null}})[_0xa769('0x21')](handleEntityNotFound(_0x47e587,null))[_0xa769('0x21')](function(_0x59f86b){if(_0x59f86b){_0x2da0b1[_0xa769('0x29')]=_0x59f86b[_0xa769('0x67')]({'plain':!![]});return db[_0xa769('0x62')][_0xa769('0x53')]({'where':{'id':_0x59f86b[_0xa769('0x63')]}});}return null;})[_0xa769('0x21')](handleEntityNotFound(_0x47e587,null))[_0xa769('0x21')](function(_0x5afc53){if(_0x5afc53){_0x2da0b1[_0xa769('0x66')]=_0x5afc53[_0xa769('0x67')]({'plain':!![]});interaction_log['info'](_0xa769('0x72'),_0x23f6da[_0xa769('0x5f')]['id'],_0x23f6da[_0xa769('0x5f')]['name'],_0x23f6da[_0xa769('0x5f')][_0xa769('0x73')],_0x2da0b1[_0xa769('0x66')]['id'],_0x23f6da['body']?JSON[_0xa769('0x26')](_0x23f6da['body']):'null');return respondWithRpcPromise(_0xa769('0x74'),'rejectMessage',_0x2da0b1);}return null;})[_0xa769('0x21')](function(_0x191c48){if(_0x191c48){_0x191c48['message'][_0xa769('0x6c')]=util[_0xa769('0x5c')](_0xa769('0x6d'),_0x23f6da[_0xa769('0x5f')][_0xa769('0x35')]);_0x191c48[_0xa769('0x29')][_0xa769('0x6e')]=_0x2da0b1[_0xa769('0x6e')];_0x191c48[_0xa769('0x29')][_0xa769('0x75')]='reject';respondWithRpcPromise(_0xa769('0x70'),'EventManager',{'event':_0xa769('0x76'),'message':_0x191c48[_0xa769('0x29')]},client9002);return _0x2da0b1;}return null;})[_0xa769('0x21')](respondWithResult(_0x47e587,null))[_0xa769('0x2a')](handleError(_0x47e587,null));};