Built motion from commit (unavailable).|2.4.18
[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 _0xb638=['manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','UserId','agent','stringify','null','RejectMessage','rejectMessage','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','http','client','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','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','OpenchannelMessage,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','name','index','OpenchannelMessage','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','show','params','keys','find','create','body','describe','openchannel-interactions','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','AcceptMessage','acceptMessage'];(function(_0xc694f7,_0x3c2fea){var _0x44428b=function(_0x19a0d1){while(--_0x19a0d1){_0xc694f7['push'](_0xc694f7['shift']());}};_0x44428b(++_0x3c2fea);}(_0xb638,0x89));var _0x8b63=function(_0x4fd555,_0x36294b){_0x4fd555=_0x4fd555-0x0;var _0xbebac=_0xb638[_0x4fd555];return _0xbebac;};'use strict';var pdf=require(_0x8b63('0x0'));var emlformat=require(_0x8b63('0x1'));var rimraf=require(_0x8b63('0x2'));var zipdir=require(_0x8b63('0x3'));var jsonpatch=require(_0x8b63('0x4'));var rp=require(_0x8b63('0x5'));var moment=require(_0x8b63('0x6'));var BPromise=require(_0x8b63('0x7'));var Mustache=require('mustache');var util=require(_0x8b63('0x8'));var path=require(_0x8b63('0x9'));var sox=require(_0x8b63('0xa'));var csv=require(_0x8b63('0xb'));var ejs=require(_0x8b63('0xc'));var fs=require('fs');var _=require(_0x8b63('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8b63('0xe'));var deskjs=require(_0x8b63('0xf'));var toCsv=require(_0x8b63('0xb'));var querystring=require(_0x8b63('0x10'));var Papa=require(_0x8b63('0x11'));var Redis=require('ioredis');var authService=require(_0x8b63('0x12'));var qs=require(_0x8b63('0x13'));var as=require(_0x8b63('0x14'));var hardwareService=require(_0x8b63('0x15'));var logger=require(_0x8b63('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x8b63('0x17'))['db'];config[_0x8b63('0x18')]=_[_0x8b63('0x19')](config[_0x8b63('0x18')],{'host':_0x8b63('0x1a'),'port':0x18eb});var socket=require(_0x8b63('0x1b'))(new Redis(config[_0x8b63('0x18')]));require(_0x8b63('0x1c'))[_0x8b63('0x1d')](socket);var jayson=require(_0x8b63('0x1e'));var client=jayson['client'][_0x8b63('0x1f')]({'port':0x232c});var client9002=jayson[_0x8b63('0x20')][_0x8b63('0x1f')]({'port':0x232a});function checkPasswordPattern(_0x757827,_0x4ca3af,_0x716a48){if(_0x716a48){var _0x577ac4=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x577ac4['test'](_0x4ca3af)){return _0x757827;}else{throw new db['Sequelize']['ValidationError'](_0x8b63('0x21'));}}else{return _0x757827;}}function respondWithRpcPromise(_0xb9fe2d,_0x567849,_0x36e74a,_0x47deef){return new BPromise(function(_0xffd7a,_0x547fd7){var _0x48eabf=_0x47deef||client;return _0x48eabf['request'](_0xb9fe2d,_0x36e74a)[_0x8b63('0x22')](function(_0x8d1de9){logger[_0x8b63('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x567849,_0x8b63('0x24'));logger[_0x8b63('0x25')](_0x8b63('0x26'),_0x567849,_0x8b63('0x24'),JSON['stringify'](_0x8d1de9));if(_0x8d1de9['error']){if(_0x8d1de9[_0x8b63('0x27')][_0x8b63('0x28')]===0x1f4){logger['error'](_0x8b63('0x29'),_0x567849,_0x8d1de9[_0x8b63('0x27')][_0x8b63('0x2a')]);return _0x547fd7(_0x8d1de9['error'][_0x8b63('0x2a')]);}logger[_0x8b63('0x27')](_0x8b63('0x29'),_0x567849,_0x8d1de9[_0x8b63('0x27')][_0x8b63('0x2a')]);return _0xffd7a(_0x8d1de9[_0x8b63('0x27')][_0x8b63('0x2a')]);}else{logger['info'](_0x8b63('0x29'),_0x567849,_0x8b63('0x24'));_0xffd7a(_0x8d1de9[_0x8b63('0x2b')][_0x8b63('0x2a')]);}})[_0x8b63('0x2c')](function(_0x23e339){logger[_0x8b63('0x27')]('OpenchannelMessage,\x20%s,\x20%s',_0x567849,_0x23e339);_0x547fd7(_0x23e339);});});}function respondWithStatusCode(_0x2c224f,_0x51fc70){_0x51fc70=_0x51fc70||0xcc;return function(_0x2a4439){if(_0x2a4439){return _0x2c224f[_0x8b63('0x2d')](_0x51fc70);}return _0x2c224f[_0x8b63('0x2e')](_0x51fc70)[_0x8b63('0x2f')]();};}function respondWithResult(_0x5962d8,_0x299acc){_0x299acc=_0x299acc||0xc8;return function(_0x5244be){if(_0x5244be){return _0x5962d8['status'](_0x299acc)[_0x8b63('0x30')](_0x5244be);}};}function respondWithFilteredResult(_0x308922,_0x2539c2){return function(_0x2e185a){if(_0x2e185a){var _0x1a254c=_0x2e185a[_0x8b63('0x31')],_0x15712e=_0x2539c2[_0x8b63('0x32')],_0x4b5f9f=_0x2539c2[_0x8b63('0x32')]+_0x2539c2[_0x8b63('0x33')],_0x4138e5;if(_0x4b5f9f>=_0x1a254c){_0x4b5f9f=_0x1a254c;_0x4138e5=0xc8;}else{_0x4138e5=0xce;}_0x308922['status'](_0x4138e5);return _0x308922[_0x8b63('0x34')](_0x8b63('0x35'),_0x15712e+'-'+_0x4b5f9f+'/'+_0x1a254c)[_0x8b63('0x30')](_0x2e185a);}return null;};}function patchUpdates(_0x572356){return function(_0x291c7e){try{jsonpatch[_0x8b63('0x36')](_0x291c7e,_0x572356,!![]);}catch(_0x2152be){return BPromise[_0x8b63('0x37')](_0x2152be);}return _0x291c7e['save']();};}function saveUpdates(_0x840ff1,_0x364a89){return function(_0x12044b){if(_0x12044b){return _0x12044b[_0x8b63('0x38')](_0x840ff1)[_0x8b63('0x22')](function(_0x49c967){return _0x49c967;});}return null;};}function removeEntity(_0x39c4af,_0xefe664){return function(_0x46cf99){if(_0x46cf99){return _0x46cf99[_0x8b63('0x39')]()[_0x8b63('0x22')](function(){_0x39c4af[_0x8b63('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d1335,_0x2cc33c){return function(_0x8df566){if(!_0x8df566){_0x3d1335['sendStatus'](0x194);}return _0x8df566;};}function handleError(_0x542f1e,_0xb7e33){_0xb7e33=_0xb7e33||0x1f4;return function(_0x152f51){logger[_0x8b63('0x27')](_0x152f51['stack']);if(_0x152f51[_0x8b63('0x3a')]){delete _0x152f51['name'];}_0x542f1e['status'](_0xb7e33)['send'](_0x152f51);};}exports[_0x8b63('0x3b')]=function(_0x12908f,_0x181a19){var _0x3fe735={},_0x3ed46a={},_0x118f84={'count':0x0,'rows':[]};var _0x1d92a1=_['map'](db[_0x8b63('0x3c')]['rawAttributes'],function(_0x2e4709){return{'name':_0x2e4709[_0x8b63('0x3d')],'type':_0x2e4709[_0x8b63('0x3e')][_0x8b63('0x3f')]};});_0x3ed46a[_0x8b63('0x40')]=_['map'](_0x1d92a1,_0x8b63('0x3a'));_0x3ed46a[_0x8b63('0x41')]=_['keys'](_0x12908f[_0x8b63('0x41')]);_0x3ed46a[_0x8b63('0x42')]=_[_0x8b63('0x43')](_0x3ed46a[_0x8b63('0x40')],_0x3ed46a[_0x8b63('0x41')]);_0x3fe735['attributes']=_[_0x8b63('0x43')](_0x3ed46a[_0x8b63('0x40')],qs[_0x8b63('0x44')](_0x12908f[_0x8b63('0x41')][_0x8b63('0x44')]));_0x3fe735[_0x8b63('0x45')]=_0x3fe735['attributes'][_0x8b63('0x46')]?_0x3fe735[_0x8b63('0x45')]:_0x3ed46a[_0x8b63('0x40')];if(!_0x12908f[_0x8b63('0x41')][_0x8b63('0x47')](_0x8b63('0x48'))){_0x3fe735[_0x8b63('0x33')]=qs[_0x8b63('0x33')](_0x12908f[_0x8b63('0x41')][_0x8b63('0x33')]);_0x3fe735['offset']=qs[_0x8b63('0x32')](_0x12908f[_0x8b63('0x41')][_0x8b63('0x32')]);}_0x3fe735['order']=qs[_0x8b63('0x49')](_0x12908f[_0x8b63('0x41')][_0x8b63('0x49')]);_0x3fe735[_0x8b63('0x4a')]=qs[_0x8b63('0x42')](_[_0x8b63('0x4b')](_0x12908f[_0x8b63('0x41')],_0x3ed46a[_0x8b63('0x42')]));if(_0x12908f[_0x8b63('0x41')]['filter']){_0x3fe735[_0x8b63('0x4a')]=_[_0x8b63('0x4c')](_0x3fe735[_0x8b63('0x4a')],{'$or':_['map'](_0x1d92a1,function(_0x35d8c7){if(_0x35d8c7[_0x8b63('0x3e')]!==_0x8b63('0x4d')){var _0x228910={};_0x228910[_0x35d8c7[_0x8b63('0x3a')]]={'$like':'%'+_0x12908f['query'][_0x8b63('0x4e')]+'%'};return _0x228910;}})});}_0x3fe735=_[_0x8b63('0x4c')]({},_0x3fe735,_0x12908f[_0x8b63('0x4f')]);var _0x414c4e={'where':_0x3fe735[_0x8b63('0x4a')]};return db[_0x8b63('0x3c')][_0x8b63('0x31')](_0x414c4e)[_0x8b63('0x22')](function(_0x4c0737){_0x118f84['count']=_0x4c0737;if(_0x12908f[_0x8b63('0x41')][_0x8b63('0x50')]){_0x3fe735[_0x8b63('0x51')]=[{'all':!![]}];}return db[_0x8b63('0x3c')]['findAll'](_0x3fe735);})[_0x8b63('0x22')](function(_0x4661aa){_0x118f84[_0x8b63('0x52')]=_0x4661aa;return _0x118f84;})[_0x8b63('0x22')](respondWithFilteredResult(_0x181a19,_0x3fe735))['catch'](handleError(_0x181a19,null));};exports[_0x8b63('0x53')]=function(_0x4966d8,_0x212557){var _0x33d464={'raw':!![],'where':{'id':_0x4966d8[_0x8b63('0x54')]['id']}},_0x3af4a0={};_0x3af4a0[_0x8b63('0x40')]=_[_0x8b63('0x55')](db[_0x8b63('0x3c')]['rawAttributes']);_0x3af4a0[_0x8b63('0x41')]=_[_0x8b63('0x55')](_0x4966d8[_0x8b63('0x41')]);_0x3af4a0[_0x8b63('0x42')]=_[_0x8b63('0x43')](_0x3af4a0['model'],_0x3af4a0[_0x8b63('0x41')]);_0x33d464['attributes']=_[_0x8b63('0x43')](_0x3af4a0[_0x8b63('0x40')],qs[_0x8b63('0x44')](_0x4966d8[_0x8b63('0x41')][_0x8b63('0x44')]));_0x33d464[_0x8b63('0x45')]=_0x33d464[_0x8b63('0x45')][_0x8b63('0x46')]?_0x33d464[_0x8b63('0x45')]:_0x3af4a0[_0x8b63('0x40')];if(_0x4966d8[_0x8b63('0x41')][_0x8b63('0x50')]){_0x33d464[_0x8b63('0x51')]=[{'all':!![]}];}_0x33d464=_['merge']({},_0x33d464,_0x4966d8[_0x8b63('0x4f')]);return db[_0x8b63('0x3c')][_0x8b63('0x56')](_0x33d464)[_0x8b63('0x22')](handleEntityNotFound(_0x212557,null))[_0x8b63('0x22')](respondWithResult(_0x212557,null))[_0x8b63('0x2c')](handleError(_0x212557,null));};exports[_0x8b63('0x57')]=function(_0x4dfd42,_0x42d4d0){return db[_0x8b63('0x3c')]['create'](_0x4dfd42['body'],{})['then'](respondWithResult(_0x42d4d0,0xc9))['catch'](handleError(_0x42d4d0,null));};exports[_0x8b63('0x38')]=function(_0x59ad7b,_0x59880f){if(_0x59ad7b[_0x8b63('0x58')]['id']){delete _0x59ad7b[_0x8b63('0x58')]['id'];}return db[_0x8b63('0x3c')][_0x8b63('0x56')]({'where':{'id':_0x59ad7b['params']['id']}})['then'](handleEntityNotFound(_0x59880f,null))[_0x8b63('0x22')](saveUpdates(_0x59ad7b[_0x8b63('0x58')],null))['then'](respondWithResult(_0x59880f,null))[_0x8b63('0x2c')](handleError(_0x59880f,null));};exports[_0x8b63('0x39')]=function(_0x4e08ef,_0x7fd85e){return db[_0x8b63('0x3c')]['find']({'where':{'id':_0x4e08ef[_0x8b63('0x54')]['id']}})['then'](handleEntityNotFound(_0x7fd85e,null))[_0x8b63('0x22')](removeEntity(_0x7fd85e,null))['catch'](handleError(_0x7fd85e,null));};exports[_0x8b63('0x59')]=function(_0x14b36f,_0x194cb3){return db[_0x8b63('0x3c')][_0x8b63('0x59')]()[_0x8b63('0x22')](respondWithResult(_0x194cb3,null))[_0x8b63('0x2c')](handleError(_0x194cb3,null));};var interaction_log=require('../../config/logger')(_0x8b63('0x5a'));exports[_0x8b63('0x5b')]=function(_0x5314e0,_0x3e0119,_0x5b22ca){var _0x4ab37f={'channel':_0x8b63('0x5c')};if(_0x5314e0[_0x8b63('0x58')]['id']){delete _0x5314e0[_0x8b63('0x58')]['id'];}_0x5314e0[_0x8b63('0x58')][_0x8b63('0x5d')]=!![];_0x5314e0[_0x8b63('0x58')][_0x8b63('0x5e')]=moment()[_0x8b63('0x5f')](_0x8b63('0x60'));_0x5314e0[_0x8b63('0x58')]['UserId']=_0x5314e0['body']['UserId']||_0x5314e0['user']['id'];return db[_0x8b63('0x3c')][_0x8b63('0x56')]({'where':{'id':_0x5314e0[_0x8b63('0x54')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0x8b63('0x61')}]})[_0x8b63('0x22')](handleEntityNotFound(_0x3e0119,null))[_0x8b63('0x22')](saveUpdates(_0x5314e0[_0x8b63('0x58')],null))[_0x8b63('0x22')](function(_0x3a3e10){if(_0x3a3e10){_0x4ab37f['message']=_0x3a3e10[_0x8b63('0x62')]({'plain':!![]});return db[_0x8b63('0x63')][_0x8b63('0x56')]({'where':{'id':_0x3a3e10[_0x8b63('0x64')]}});}return null;})[_0x8b63('0x22')](handleEntityNotFound(_0x3e0119,null))[_0x8b63('0x22')](function(_0x54d1c7){if(_0x54d1c7){return _0x54d1c7[_0x8b63('0x38')]({'UserId':_0x5314e0[_0x8b63('0x58')]['UserId'],'read1stAt':_[_0x8b63('0x65')](_0x54d1c7[_0x8b63('0x66')])?moment()[_0x8b63('0x5f')](_0x8b63('0x60')):undefined});}return null;})[_0x8b63('0x22')](function(_0x15b2bd){if(_0x15b2bd){_0x4ab37f['interaction']=_0x15b2bd['get']({'plain':!![]});interaction_log[_0x8b63('0x23')](_0x8b63('0x67'),_0x5314e0[_0x8b63('0x68')]['id'],_0x5314e0[_0x8b63('0x68')][_0x8b63('0x3a')],_0x5314e0['user'][_0x8b63('0x69')],_0x4ab37f[_0x8b63('0x6a')]['id'],_0x5314e0[_0x8b63('0x58')]?JSON['stringify'](_0x5314e0[_0x8b63('0x58')]):'null');return respondWithRpcPromise(_0x8b63('0x6b'),_0x8b63('0x6c'),_0x4ab37f);}return null;})[_0x8b63('0x22')](function(_0x579d22){if(_0x579d22){if(_0x5314e0[_0x8b63('0x58')][_0x8b63('0x6d')]){_0x4ab37f[_0x8b63('0x2a')][_0x8b63('0x6e')]=util['format'](_0x8b63('0x6f'),_0x5314e0[_0x8b63('0x68')][_0x8b63('0x3a')]);_0x4ab37f[_0x8b63('0x2a')][_0x8b63('0x70')]=_0x4ab37f['channel'];_0x4ab37f[_0x8b63('0x2a')][_0x8b63('0x71')]=_0x8b63('0x5b');return respondWithRpcPromise(_0x8b63('0x72'),_0x8b63('0x72'),{'event':_0x8b63('0x73'),'message':_0x4ab37f[_0x8b63('0x2a')]},client9002)['then'](function(){return _0x4ab37f;});}return _0x4ab37f;}return null;})['then'](respondWithResult(_0x3e0119,null))['catch'](handleError(_0x3e0119,null));};var interaction_log=require(_0x8b63('0x16'))(_0x8b63('0x5a'));exports[_0x8b63('0x37')]=function(_0x56bb1f,_0x3c057b,_0x3a7441){var _0x309b48={'agent':{},'channel':_0x8b63('0x5c')};if(_0x56bb1f['body']['id']){delete _0x56bb1f[_0x8b63('0x58')]['id'];}_0x56bb1f[_0x8b63('0x58')][_0x8b63('0x74')]=_0x56bb1f['body'][_0x8b63('0x74')]||_0x56bb1f[_0x8b63('0x68')]['id'];_0x309b48[_0x8b63('0x75')]['id']=_0x56bb1f[_0x8b63('0x58')][_0x8b63('0x74')];return db['OpenchannelMessage'][_0x8b63('0x56')]({'where':{'id':_0x56bb1f['params']['id'],'UserId':null}})[_0x8b63('0x22')](handleEntityNotFound(_0x3c057b,null))[_0x8b63('0x22')](function(_0xd6d877){if(_0xd6d877){_0x309b48[_0x8b63('0x2a')]=_0xd6d877[_0x8b63('0x62')]({'plain':!![]});return db[_0x8b63('0x63')]['find']({'where':{'id':_0xd6d877[_0x8b63('0x64')]}});}return null;})[_0x8b63('0x22')](handleEntityNotFound(_0x3c057b,null))[_0x8b63('0x22')](function(_0x3e2634){if(_0x3e2634){_0x309b48[_0x8b63('0x6a')]=_0x3e2634[_0x8b63('0x62')]({'plain':!![]});interaction_log[_0x8b63('0x23')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x56bb1f[_0x8b63('0x68')]['id'],_0x56bb1f[_0x8b63('0x68')][_0x8b63('0x3a')],_0x56bb1f[_0x8b63('0x68')][_0x8b63('0x69')],_0x309b48['interaction']['id'],_0x56bb1f[_0x8b63('0x58')]?JSON[_0x8b63('0x76')](_0x56bb1f[_0x8b63('0x58')]):_0x8b63('0x77'));return respondWithRpcPromise(_0x8b63('0x78'),_0x8b63('0x79'),_0x309b48);}return null;})[_0x8b63('0x22')](function(_0x5ae87a){if(_0x5ae87a){_0x5ae87a[_0x8b63('0x2a')][_0x8b63('0x6e')]=util['format'](_0x8b63('0x6f'),_0x56bb1f['user']['name']);_0x5ae87a[_0x8b63('0x2a')]['channel']=_0x309b48[_0x8b63('0x70')];_0x5ae87a['message'][_0x8b63('0x71')]='reject';respondWithRpcPromise(_0x8b63('0x72'),_0x8b63('0x72'),{'event':_0x8b63('0x7a'),'message':_0x5ae87a[_0x8b63('0x2a')]},client9002);return _0x309b48;}return null;})[_0x8b63('0x22')](respondWithResult(_0x3c057b,null))[_0x8b63('0x2c')](handleError(_0x3c057b,null));};