Built motion from commit (unavailable).|2.5.2
[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 _0x402a=['role','interaction','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','acceptmessage','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','html-pdf','eml-format','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','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','info','OpenchannelMessage,\x20%s,\x20%s','OpenchannelMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','name','send','OpenchannelMessage','fieldName','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','includeAll','include','findAll','rows','show','params','rawAttributes','options','find','create','body','describe','openchannel-interactions','openchannel','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','update','read1stAt','format','user'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x402a,0x1f0));var _0xa402=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x402a[_0x5b644e];return _0x49c6bf;};'use strict';var pdf=require(_0xa402('0x0'));var emlformat=require(_0xa402('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa402('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa402('0x3'));var moment=require(_0xa402('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa402('0x5'));var util=require('util');var path=require(_0xa402('0x6'));var sox=require(_0xa402('0x7'));var csv=require(_0xa402('0x8'));var ejs=require(_0xa402('0x9'));var fs=require('fs');var _=require(_0xa402('0xa'));var squel=require(_0xa402('0xb'));var crypto=require(_0xa402('0xc'));var jsforce=require(_0xa402('0xd'));var deskjs=require(_0xa402('0xe'));var toCsv=require(_0xa402('0x8'));var querystring=require(_0xa402('0xf'));var Papa=require('papaparse');var Redis=require(_0xa402('0x10'));var authService=require(_0xa402('0x11'));var qs=require(_0xa402('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa402('0x13'));var logger=require(_0xa402('0x14'))(_0xa402('0x15'));var utils=require(_0xa402('0x16'));var config=require(_0xa402('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xa402('0x18'))(new Redis(config['redis']));require(_0xa402('0x19'))[_0xa402('0x1a')](socket);var jayson=require(_0xa402('0x1b'));var client=jayson[_0xa402('0x1c')][_0xa402('0x1d')]({'port':0x232c});var client9002=jayson[_0xa402('0x1c')][_0xa402('0x1d')]({'port':0x232a});function checkPasswordPattern(_0x14cf1f,_0x44ad8e,_0x23b5f6){if(_0x23b5f6){var _0x2466dc=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2466dc['test'](_0x44ad8e)){return _0x14cf1f;}else{throw new db['Sequelize'][(_0xa402('0x1e'))](_0xa402('0x1f'));}}else{return _0x14cf1f;}}function respondWithRpcPromise(_0xc5ae81,_0x1063ac,_0x580043,_0x3c45a5){return new BPromise(function(_0x3d0aa3,_0x2ed0c9){var _0x26d506=_0x3c45a5||client;return _0x26d506[_0xa402('0x20')](_0xc5ae81,_0x580043)['then'](function(_0x5e61a8){logger[_0xa402('0x21')](_0xa402('0x22'),_0x1063ac,'request\x20sent');logger['debug'](_0xa402('0x23'),_0x1063ac,_0xa402('0x24'),JSON[_0xa402('0x25')](_0x5e61a8));if(_0x5e61a8[_0xa402('0x26')]){if(_0x5e61a8[_0xa402('0x26')][_0xa402('0x27')]===0x1f4){logger[_0xa402('0x26')](_0xa402('0x22'),_0x1063ac,_0x5e61a8[_0xa402('0x26')][_0xa402('0x28')]);return _0x2ed0c9(_0x5e61a8[_0xa402('0x26')][_0xa402('0x28')]);}logger[_0xa402('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x1063ac,_0x5e61a8['error'][_0xa402('0x28')]);return _0x3d0aa3(_0x5e61a8['error'][_0xa402('0x28')]);}else{logger[_0xa402('0x21')](_0xa402('0x22'),_0x1063ac,_0xa402('0x24'));_0x3d0aa3(_0x5e61a8[_0xa402('0x29')][_0xa402('0x28')]);}})[_0xa402('0x2a')](function(_0x2f3a2f){logger[_0xa402('0x26')](_0xa402('0x22'),_0x1063ac,_0x2f3a2f);_0x2ed0c9(_0x2f3a2f);});});}function respondWithStatusCode(_0x1cdf5e,_0x3a7294){_0x3a7294=_0x3a7294||0xcc;return function(_0x332765){if(_0x332765){return _0x1cdf5e[_0xa402('0x2b')](_0x3a7294);}return _0x1cdf5e['status'](_0x3a7294)[_0xa402('0x2c')]();};}function respondWithResult(_0x5de559,_0x27b92c){_0x27b92c=_0x27b92c||0xc8;return function(_0x4bac31){if(_0x4bac31){return _0x5de559[_0xa402('0x2d')](_0x27b92c)[_0xa402('0x2e')](_0x4bac31);}};}function respondWithFilteredResult(_0x16f60d,_0x4c28a5){return function(_0x20a67c){if(_0x20a67c){var _0x262bfd=_0x20a67c[_0xa402('0x2f')],_0x55c65a=_0x4c28a5['offset'],_0x11b733=_0x4c28a5[_0xa402('0x30')]+_0x4c28a5[_0xa402('0x31')],_0x4cab94;if(_0x11b733>=_0x262bfd){_0x11b733=_0x262bfd;_0x4cab94=0xc8;}else{_0x4cab94=0xce;}_0x16f60d[_0xa402('0x2d')](_0x4cab94);return _0x16f60d[_0xa402('0x32')](_0xa402('0x33'),_0x55c65a+'-'+_0x11b733+'/'+_0x262bfd)[_0xa402('0x2e')](_0x20a67c);}return null;};}function patchUpdates(_0x3bbf8d){return function(_0x310ea6){try{jsonpatch[_0xa402('0x34')](_0x310ea6,_0x3bbf8d,!![]);}catch(_0x10ec1c){return BPromise[_0xa402('0x35')](_0x10ec1c);}return _0x310ea6[_0xa402('0x36')]();};}function saveUpdates(_0x56e01b,_0x5b186d){return function(_0x19a928){if(_0x19a928){return _0x19a928['update'](_0x56e01b)[_0xa402('0x37')](function(_0x4a0de5){return _0x4a0de5;});}return null;};}function removeEntity(_0x5040d2,_0x35f556){return function(_0x45f8b2){if(_0x45f8b2){return _0x45f8b2[_0xa402('0x38')]()['then'](function(){_0x5040d2[_0xa402('0x2d')](0xcc)[_0xa402('0x2c')]();});}};}function handleEntityNotFound(_0x290959,_0x3b394c){return function(_0x3269cf){if(!_0x3269cf){_0x290959['sendStatus'](0x194);}return _0x3269cf;};}function handleError(_0x5a2195,_0x1572de){_0x1572de=_0x1572de||0x1f4;return function(_0x4acd55){logger[_0xa402('0x26')](_0x4acd55['stack']);if(_0x4acd55[_0xa402('0x39')]){delete _0x4acd55['name'];}_0x5a2195[_0xa402('0x2d')](_0x1572de)[_0xa402('0x3a')](_0x4acd55);};}exports['index']=function(_0x3aff6c,_0xbef4b3){var _0x51d517={},_0x14e81b={},_0x5a4c60={'count':0x0,'rows':[]};var _0x28b295=_['map'](db[_0xa402('0x3b')]['rawAttributes'],function(_0xd5ae83){return{'name':_0xd5ae83[_0xa402('0x3c')],'type':_0xd5ae83['type']['key']};});_0x14e81b['model']=_[_0xa402('0x3d')](_0x28b295,_0xa402('0x39'));_0x14e81b[_0xa402('0x3e')]=_[_0xa402('0x3f')](_0x3aff6c['query']);_0x14e81b[_0xa402('0x40')]=_[_0xa402('0x41')](_0x14e81b[_0xa402('0x42')],_0x14e81b[_0xa402('0x3e')]);_0x51d517[_0xa402('0x43')]=_[_0xa402('0x41')](_0x14e81b[_0xa402('0x42')],qs[_0xa402('0x44')](_0x3aff6c[_0xa402('0x3e')]['fields']));_0x51d517[_0xa402('0x43')]=_0x51d517[_0xa402('0x43')][_0xa402('0x45')]?_0x51d517[_0xa402('0x43')]:_0x14e81b[_0xa402('0x42')];if(!_0x3aff6c[_0xa402('0x3e')]['hasOwnProperty'](_0xa402('0x46'))){_0x51d517[_0xa402('0x31')]=qs[_0xa402('0x31')](_0x3aff6c[_0xa402('0x3e')][_0xa402('0x31')]);_0x51d517['offset']=qs[_0xa402('0x30')](_0x3aff6c[_0xa402('0x3e')][_0xa402('0x30')]);}_0x51d517[_0xa402('0x47')]=qs[_0xa402('0x48')](_0x3aff6c['query'][_0xa402('0x48')]);_0x51d517['where']=qs['filters'](_[_0xa402('0x49')](_0x3aff6c[_0xa402('0x3e')],_0x14e81b[_0xa402('0x40')]),_0x28b295);if(_0x3aff6c[_0xa402('0x3e')][_0xa402('0x4a')]){_0x51d517[_0xa402('0x4b')]=_[_0xa402('0x4c')](_0x51d517['where'],{'$or':_[_0xa402('0x3d')](_0x28b295,function(_0x1fc731){if(_0x1fc731[_0xa402('0x4d')]!==_0xa402('0x4e')){var _0x29e880={};_0x29e880[_0x1fc731[_0xa402('0x39')]]={'$like':'%'+_0x3aff6c[_0xa402('0x3e')][_0xa402('0x4a')]+'%'};return _0x29e880;}})});}_0x51d517=_[_0xa402('0x4c')]({},_0x51d517,_0x3aff6c['options']);var _0x13e4fe={'where':_0x51d517[_0xa402('0x4b')]};return db['OpenchannelMessage'][_0xa402('0x2f')](_0x13e4fe)[_0xa402('0x37')](function(_0x71ee0d){_0x5a4c60['count']=_0x71ee0d;if(_0x3aff6c[_0xa402('0x3e')][_0xa402('0x4f')]){_0x51d517[_0xa402('0x50')]=[{'all':!![]}];}return db[_0xa402('0x3b')][_0xa402('0x51')](_0x51d517);})['then'](function(_0x5ee839){_0x5a4c60[_0xa402('0x52')]=_0x5ee839;return _0x5a4c60;})['then'](respondWithFilteredResult(_0xbef4b3,_0x51d517))[_0xa402('0x2a')](handleError(_0xbef4b3,null));};exports[_0xa402('0x53')]=function(_0x2b5436,_0x3c5482){var _0xa9d7be={'raw':!![],'where':{'id':_0x2b5436[_0xa402('0x54')]['id']}},_0x4813aa={};_0x4813aa[_0xa402('0x42')]=_[_0xa402('0x3f')](db[_0xa402('0x3b')][_0xa402('0x55')]);_0x4813aa[_0xa402('0x3e')]=_['keys'](_0x2b5436[_0xa402('0x3e')]);_0x4813aa[_0xa402('0x40')]=_['intersection'](_0x4813aa[_0xa402('0x42')],_0x4813aa[_0xa402('0x3e')]);_0xa9d7be['attributes']=_['intersection'](_0x4813aa[_0xa402('0x42')],qs[_0xa402('0x44')](_0x2b5436[_0xa402('0x3e')][_0xa402('0x44')]));_0xa9d7be[_0xa402('0x43')]=_0xa9d7be[_0xa402('0x43')][_0xa402('0x45')]?_0xa9d7be['attributes']:_0x4813aa['model'];if(_0x2b5436[_0xa402('0x3e')]['includeAll']){_0xa9d7be[_0xa402('0x50')]=[{'all':!![]}];}_0xa9d7be=_[_0xa402('0x4c')]({},_0xa9d7be,_0x2b5436[_0xa402('0x56')]);return db[_0xa402('0x3b')][_0xa402('0x57')](_0xa9d7be)[_0xa402('0x37')](handleEntityNotFound(_0x3c5482,null))[_0xa402('0x37')](respondWithResult(_0x3c5482,null))[_0xa402('0x2a')](handleError(_0x3c5482,null));};exports[_0xa402('0x58')]=function(_0x2152f5,_0x52cbd3){return db[_0xa402('0x3b')]['create'](_0x2152f5['body'],{})[_0xa402('0x37')](respondWithResult(_0x52cbd3,0xc9))[_0xa402('0x2a')](handleError(_0x52cbd3,null));};exports['update']=function(_0x373feb,_0x395865){if(_0x373feb['body']['id']){delete _0x373feb[_0xa402('0x59')]['id'];}return db[_0xa402('0x3b')][_0xa402('0x57')]({'where':{'id':_0x373feb[_0xa402('0x54')]['id']}})[_0xa402('0x37')](handleEntityNotFound(_0x395865,null))[_0xa402('0x37')](saveUpdates(_0x373feb[_0xa402('0x59')],null))[_0xa402('0x37')](respondWithResult(_0x395865,null))['catch'](handleError(_0x395865,null));};exports['destroy']=function(_0x2a7269,_0x541e7f){return db[_0xa402('0x3b')][_0xa402('0x57')]({'where':{'id':_0x2a7269[_0xa402('0x54')]['id']}})[_0xa402('0x37')](handleEntityNotFound(_0x541e7f,null))[_0xa402('0x37')](removeEntity(_0x541e7f,null))[_0xa402('0x2a')](handleError(_0x541e7f,null));};exports[_0xa402('0x5a')]=function(_0x20ebe0,_0x175aae){return db[_0xa402('0x3b')][_0xa402('0x5a')]()[_0xa402('0x37')](respondWithResult(_0x175aae,null))[_0xa402('0x2a')](handleError(_0x175aae,null));};var interaction_log=require(_0xa402('0x14'))(_0xa402('0x5b'));exports['accept']=function(_0x4bfc31,_0x4f3d74,_0x401a99){var _0x577fbb={'channel':_0xa402('0x5c')};if(_0x4bfc31[_0xa402('0x59')]['id']){delete _0x4bfc31[_0xa402('0x59')]['id'];}_0x4bfc31['body']['read']=!![];_0x4bfc31['body']['readAt']=moment()['format'](_0xa402('0x5d'));_0x4bfc31[_0xa402('0x59')][_0xa402('0x5e')]=_0x4bfc31[_0xa402('0x59')][_0xa402('0x5e')]||_0x4bfc31['user']['id'];return db[_0xa402('0x3b')][_0xa402('0x57')]({'where':{'id':_0x4bfc31['params']['id'],'UserId':null},'include':[{'model':db[_0xa402('0x5f')],'as':_0xa402('0x60')}]})['then'](handleEntityNotFound(_0x4f3d74,null))['then'](saveUpdates(_0x4bfc31[_0xa402('0x59')],null))[_0xa402('0x37')](function(_0x4445a8){if(_0x4445a8){_0x577fbb[_0xa402('0x28')]=_0x4445a8[_0xa402('0x61')]({'plain':!![]});return db[_0xa402('0x62')][_0xa402('0x57')]({'where':{'id':_0x4445a8[_0xa402('0x63')]}});}return null;})[_0xa402('0x37')](handleEntityNotFound(_0x4f3d74,null))[_0xa402('0x37')](function(_0x13fca9){if(_0x13fca9){return _0x13fca9[_0xa402('0x64')]({'UserId':_0x4bfc31[_0xa402('0x59')][_0xa402('0x5e')],'read1stAt':_['isNil'](_0x13fca9[_0xa402('0x65')])?moment()[_0xa402('0x66')](_0xa402('0x5d')):undefined});}return null;})[_0xa402('0x37')](function(_0x1ebed8){if(_0x1ebed8){_0x577fbb['interaction']=_0x1ebed8['get']({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4bfc31[_0xa402('0x67')]['id'],_0x4bfc31[_0xa402('0x67')][_0xa402('0x39')],_0x4bfc31[_0xa402('0x67')][_0xa402('0x68')],_0x577fbb[_0xa402('0x69')]['id'],_0x4bfc31[_0xa402('0x59')]?JSON['stringify'](_0x4bfc31[_0xa402('0x59')]):'null');return respondWithRpcPromise(_0xa402('0x6a'),_0xa402('0x6b'),_0x577fbb);}return null;})['then'](function(_0x2d1251){if(_0x2d1251){if(_0x4bfc31[_0xa402('0x59')][_0xa402('0x6c')]){_0x577fbb[_0xa402('0x28')][_0xa402('0x6d')]=util[_0xa402('0x66')](_0xa402('0x6e'),_0x4bfc31[_0xa402('0x67')][_0xa402('0x39')]);_0x577fbb[_0xa402('0x28')][_0xa402('0x6f')]=_0x577fbb[_0xa402('0x6f')];_0x577fbb[_0xa402('0x28')][_0xa402('0x70')]=_0xa402('0x71');return respondWithRpcPromise(_0xa402('0x72'),_0xa402('0x72'),{'event':_0xa402('0x73'),'message':_0x577fbb[_0xa402('0x28')]},client9002)[_0xa402('0x37')](function(){return _0x577fbb;});}return _0x577fbb;}return null;})[_0xa402('0x37')](respondWithResult(_0x4f3d74,null))[_0xa402('0x2a')](handleError(_0x4f3d74,null));};var interaction_log=require(_0xa402('0x14'))('openchannel-interactions');exports['reject']=function(_0x5d6534,_0x4e6796,_0xfdba7a){var _0x5091e8={'agent':{},'channel':'openchannel'};if(_0x5d6534[_0xa402('0x59')]['id']){delete _0x5d6534[_0xa402('0x59')]['id'];}_0x5d6534['body']['UserId']=_0x5d6534[_0xa402('0x59')][_0xa402('0x5e')]||_0x5d6534['user']['id'];_0x5091e8['agent']['id']=_0x5d6534[_0xa402('0x59')][_0xa402('0x5e')];return db[_0xa402('0x3b')][_0xa402('0x57')]({'where':{'id':_0x5d6534[_0xa402('0x54')]['id'],'UserId':null}})[_0xa402('0x37')](handleEntityNotFound(_0x4e6796,null))['then'](function(_0x4fb994){if(_0x4fb994){_0x5091e8[_0xa402('0x28')]=_0x4fb994[_0xa402('0x61')]({'plain':!![]});return db[_0xa402('0x62')][_0xa402('0x57')]({'where':{'id':_0x4fb994['OpenchannelInteractionId']}});}return null;})[_0xa402('0x37')](handleEntityNotFound(_0x4e6796,null))[_0xa402('0x37')](function(_0x2a9c79){if(_0x2a9c79){_0x5091e8[_0xa402('0x69')]=_0x2a9c79[_0xa402('0x61')]({'plain':!![]});interaction_log[_0xa402('0x21')](_0xa402('0x74'),_0x5d6534[_0xa402('0x67')]['id'],_0x5d6534[_0xa402('0x67')][_0xa402('0x39')],_0x5d6534[_0xa402('0x67')][_0xa402('0x68')],_0x5091e8['interaction']['id'],_0x5d6534['body']?JSON[_0xa402('0x25')](_0x5d6534[_0xa402('0x59')]):_0xa402('0x75'));return respondWithRpcPromise(_0xa402('0x76'),_0xa402('0x77'),_0x5091e8);}return null;})[_0xa402('0x37')](function(_0x179d7d){if(_0x179d7d){_0x179d7d[_0xa402('0x28')]['interface']=util[_0xa402('0x66')](_0xa402('0x6e'),_0x5d6534['user'][_0xa402('0x39')]);_0x179d7d[_0xa402('0x28')][_0xa402('0x6f')]=_0x5091e8[_0xa402('0x6f')];_0x179d7d[_0xa402('0x28')][_0xa402('0x70')]=_0xa402('0x35');respondWithRpcPromise(_0xa402('0x72'),_0xa402('0x72'),{'event':'rejectmessage','message':_0x179d7d['message']},client9002);return _0x5091e8;}return null;})['then'](respondWithResult(_0x4e6796,null))['catch'](handleError(_0x4e6796,null));};