Built motion from commit 0d14f64c.|2.6.34
[motion2.git] / server / api / faxMessage / faxMessage.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 _0xc235=['../../config/logger','../../config/environment','defaults','redis','localhost','socket.io-emitter','./faxMessage.socket','register','jayson/promise','http','fax-interactions','request','info','request\x20sent','error','FaxMessage,\x20%s,\x20%s','message','catch','json','offset','undefined','limit','count','status','set','Content-Range','update','then','end','sendStatus','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','FaxMessage','includeAll','include','find','body','params','describe','accept','acceptMessage','fax','UserId','user','agent','FaxInteraction','interaction','get','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','rejectMessage','ContactId','sequelize','contact','email','internal','interface','format','SIP/%s','channel','motionChannel','event','reject','EventManager','rejectmessage','create','CmContact','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','isNil','basename','root','server','files','attachments','download','util','path','ioredis','../../components/interaction/service','../../components/parsers/qs'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc235,0xcf));var _0x5c23=function(_0x151188,_0x2e00b5){_0x151188=_0x151188-0x0;var _0xf86c2b=_0xc235[_0x151188];return _0xf86c2b;};'use strict';var util=require(_0x5c23('0x0'));var path=require(_0x5c23('0x1'));var _=require('lodash');var Redis=require(_0x5c23('0x2'));var interactionService=require(_0x5c23('0x3'));var qs=require(_0x5c23('0x4'));var logger=require(_0x5c23('0x5'))('api');var config=require(_0x5c23('0x6'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x5c23('0x7')](config[_0x5c23('0x8')],{'host':_0x5c23('0x9'),'port':0x18eb});var socket=require(_0x5c23('0xa'))(new Redis(config[_0x5c23('0x8')]));require(_0x5c23('0xb'))[_0x5c23('0xc')](socket);var jayson=require(_0x5c23('0xd'));var client=jayson['client'][_0x5c23('0xe')]({'port':0x232c});var client9002=jayson['client'][_0x5c23('0xe')]({'port':0x232a});var interaction_log=require(_0x5c23('0x5'))(_0x5c23('0xf'));function respondWithRpcPromise(_0x10af18,_0x2c0466,_0x10b953,_0x10e85b){return new Promise(function(_0x55a832,_0x208c38){var _0x51acaf=_0x10e85b||client;return _0x51acaf[_0x5c23('0x10')](_0x10af18,_0x10b953)['then'](function(_0x4381be){logger[_0x5c23('0x11')]('FaxMessage,\x20%s,\x20%s',_0x2c0466,_0x5c23('0x12'));logger['debug']('FaxMessage,\x20%s,\x20%s,\x20%s',_0x2c0466,'request\x20sent',JSON['stringify'](_0x4381be));if(_0x4381be[_0x5c23('0x13')]){if(_0x4381be[_0x5c23('0x13')]['code']===0x1f4){logger['error'](_0x5c23('0x14'),_0x2c0466,_0x4381be[_0x5c23('0x13')][_0x5c23('0x15')]);return _0x208c38(_0x4381be[_0x5c23('0x13')][_0x5c23('0x15')]);}logger['error']('FaxMessage,\x20%s,\x20%s',_0x2c0466,_0x4381be[_0x5c23('0x13')][_0x5c23('0x15')]);return _0x55a832(_0x4381be[_0x5c23('0x13')][_0x5c23('0x15')]);}else{logger[_0x5c23('0x11')](_0x5c23('0x14'),_0x2c0466,_0x5c23('0x12'));_0x55a832(_0x4381be['result']['message']);}})[_0x5c23('0x16')](function(_0x183120){logger['error'](_0x5c23('0x14'),_0x2c0466,_0x183120);_0x208c38(_0x183120);});});}function respondWithResult(_0x1d61f3,_0x1b87c6){_0x1b87c6=_0x1b87c6||0xc8;return function(_0x1f5fd3){if(_0x1f5fd3){return _0x1d61f3['status'](_0x1b87c6)[_0x5c23('0x17')](_0x1f5fd3);}};}function respondWithFilteredResult(_0x24cffc,_0x55a7ed){return function(_0x1b7b7c){if(_0x1b7b7c){var _0x12d53c=typeof _0x55a7ed[_0x5c23('0x18')]===_0x5c23('0x19')&&typeof _0x55a7ed[_0x5c23('0x1a')]==='undefined';var _0x2ef657=_0x1b7b7c['count'];var _0x3abcc3=_0x12d53c?0x0:_0x55a7ed[_0x5c23('0x18')];var _0x390618=_0x12d53c?_0x1b7b7c[_0x5c23('0x1b')]:_0x55a7ed[_0x5c23('0x18')]+_0x55a7ed[_0x5c23('0x1a')];var _0x291263;if(_0x390618>=_0x2ef657){_0x390618=_0x2ef657;_0x291263=0xc8;}else{_0x291263=0xce;}_0x24cffc[_0x5c23('0x1c')](_0x291263);return _0x24cffc[_0x5c23('0x1d')](_0x5c23('0x1e'),_0x3abcc3+'-'+_0x390618+'/'+_0x2ef657)[_0x5c23('0x17')](_0x1b7b7c);}return null;};}function saveUpdates(_0xf32d9d){return function(_0x4a3021){if(_0x4a3021){return _0x4a3021[_0x5c23('0x1f')](_0xf32d9d)[_0x5c23('0x20')](function(_0x10770e){return _0x10770e;});}return null;};}function removeEntity(_0x45d9c5){return function(_0x542be8){if(_0x542be8){return _0x542be8['destroy']()['then'](function(){_0x45d9c5[_0x5c23('0x1c')](0xcc)[_0x5c23('0x21')]();});}};}function handleEntityNotFound(_0x46c4ff){return function(_0x2b7d8b){if(!_0x2b7d8b){_0x46c4ff[_0x5c23('0x22')](0x194);}return _0x2b7d8b;};}function handleError(_0x1057ce,_0x4049dd){_0x4049dd=_0x4049dd||0x1f4;return function(_0x535781){logger[_0x5c23('0x13')](_0x535781['stack']);if(_0x535781[_0x5c23('0x23')]){delete _0x535781['name'];}_0x1057ce[_0x5c23('0x1c')](_0x4049dd)['send'](_0x535781);};}exports[_0x5c23('0x24')]=function(_0x3953ef,_0x376169){var _0x46aba1={},_0x3d7856={},_0x23a706={'count':0x0,'rows':[]};var _0x49a0b7=_[_0x5c23('0x25')](db['FaxMessage'][_0x5c23('0x26')],function(_0x21a855){return{'name':_0x21a855[_0x5c23('0x27')],'type':_0x21a855[_0x5c23('0x28')][_0x5c23('0x29')]};});_0x3d7856[_0x5c23('0x2a')]=_[_0x5c23('0x25')](_0x49a0b7,_0x5c23('0x23'));_0x3d7856[_0x5c23('0x2b')]=_[_0x5c23('0x2c')](_0x3953ef[_0x5c23('0x2b')]);_0x3d7856[_0x5c23('0x2d')]=_[_0x5c23('0x2e')](_0x3d7856[_0x5c23('0x2a')],_0x3d7856['query']);_0x46aba1[_0x5c23('0x2f')]=_['intersection'](_0x3d7856[_0x5c23('0x2a')],qs[_0x5c23('0x30')](_0x3953ef[_0x5c23('0x2b')][_0x5c23('0x30')]));_0x46aba1['attributes']=_0x46aba1[_0x5c23('0x2f')][_0x5c23('0x31')]?_0x46aba1[_0x5c23('0x2f')]:_0x3d7856[_0x5c23('0x2a')];if(!_0x3953ef['query'][_0x5c23('0x32')]('nolimit')){_0x46aba1['limit']=qs[_0x5c23('0x1a')](_0x3953ef[_0x5c23('0x2b')][_0x5c23('0x1a')]);_0x46aba1[_0x5c23('0x18')]=qs[_0x5c23('0x18')](_0x3953ef['query'][_0x5c23('0x18')]);}_0x46aba1[_0x5c23('0x33')]=qs[_0x5c23('0x34')](_0x3953ef[_0x5c23('0x2b')][_0x5c23('0x34')]);_0x46aba1[_0x5c23('0x35')]=qs[_0x5c23('0x2d')](_[_0x5c23('0x36')](_0x3953ef[_0x5c23('0x2b')],_0x3d7856[_0x5c23('0x2d')]),_0x49a0b7);if(_0x3953ef[_0x5c23('0x2b')][_0x5c23('0x37')]){_0x46aba1[_0x5c23('0x35')]=_[_0x5c23('0x38')](_0x46aba1[_0x5c23('0x35')],{'$or':_[_0x5c23('0x25')](_0x49a0b7,function(_0x1c72a6){if(_0x1c72a6[_0x5c23('0x28')]!==_0x5c23('0x39')){var _0x10c0ad={};_0x10c0ad[_0x1c72a6[_0x5c23('0x23')]]={'$like':'%'+_0x3953ef[_0x5c23('0x2b')]['filter']+'%'};return _0x10c0ad;}})});}_0x46aba1=_[_0x5c23('0x38')]({},_0x46aba1,_0x3953ef[_0x5c23('0x3a')]);var _0x28f94a={'where':_0x46aba1[_0x5c23('0x35')]};return db[_0x5c23('0x3b')][_0x5c23('0x1b')](_0x28f94a)[_0x5c23('0x20')](function(_0x193438){_0x23a706[_0x5c23('0x1b')]=_0x193438;if(_0x3953ef['query'][_0x5c23('0x3c')]){_0x46aba1[_0x5c23('0x3d')]=[{'all':!![]}];}return db[_0x5c23('0x3b')]['findAll'](_0x46aba1);})[_0x5c23('0x20')](function(_0x19f2b3){_0x23a706['rows']=_0x19f2b3;return _0x23a706;})['then'](respondWithFilteredResult(_0x376169,_0x46aba1))[_0x5c23('0x16')](handleError(_0x376169,null));};exports['show']=function(_0x5875d9,_0x358a2d){var _0x2363bb={'raw':!![],'where':{'id':_0x5875d9['params']['id']}},_0x355225={};_0x355225[_0x5c23('0x2a')]=_[_0x5c23('0x2c')](db[_0x5c23('0x3b')]['rawAttributes']);_0x355225['query']=_[_0x5c23('0x2c')](_0x5875d9[_0x5c23('0x2b')]);_0x355225[_0x5c23('0x2d')]=_[_0x5c23('0x2e')](_0x355225[_0x5c23('0x2a')],_0x355225[_0x5c23('0x2b')]);_0x2363bb['attributes']=_[_0x5c23('0x2e')](_0x355225[_0x5c23('0x2a')],qs[_0x5c23('0x30')](_0x5875d9['query'][_0x5c23('0x30')]));_0x2363bb[_0x5c23('0x2f')]=_0x2363bb['attributes'][_0x5c23('0x31')]?_0x2363bb[_0x5c23('0x2f')]:_0x355225[_0x5c23('0x2a')];if(_0x5875d9[_0x5c23('0x2b')][_0x5c23('0x3c')]){_0x2363bb[_0x5c23('0x3d')]=[{'all':!![]}];}_0x2363bb=_[_0x5c23('0x38')]({},_0x2363bb,_0x5875d9[_0x5c23('0x3a')]);return db[_0x5c23('0x3b')][_0x5c23('0x3e')](_0x2363bb)[_0x5c23('0x20')](handleEntityNotFound(_0x358a2d,null))['then'](respondWithResult(_0x358a2d,null))[_0x5c23('0x16')](handleError(_0x358a2d,null));};exports[_0x5c23('0x1f')]=function(_0x2b5a75,_0x384731){if(_0x2b5a75[_0x5c23('0x3f')]['id']){delete _0x2b5a75['body']['id'];}return db[_0x5c23('0x3b')]['find']({'where':{'id':_0x2b5a75[_0x5c23('0x40')]['id']}})['then'](handleEntityNotFound(_0x384731,null))[_0x5c23('0x20')](saveUpdates(_0x2b5a75[_0x5c23('0x3f')],null))[_0x5c23('0x20')](respondWithResult(_0x384731,null))[_0x5c23('0x16')](handleError(_0x384731,null));};exports['destroy']=function(_0x831afd,_0x231b6c){return db[_0x5c23('0x3b')][_0x5c23('0x3e')]({'where':{'id':_0x831afd[_0x5c23('0x40')]['id']}})['then'](handleEntityNotFound(_0x231b6c,null))[_0x5c23('0x20')](removeEntity(_0x231b6c,null))[_0x5c23('0x16')](handleError(_0x231b6c,null));};exports[_0x5c23('0x41')]=function(_0x2650de,_0x1afd72){return db[_0x5c23('0x3b')][_0x5c23('0x41')]()[_0x5c23('0x20')](respondWithResult(_0x1afd72,null))[_0x5c23('0x16')](handleError(_0x1afd72,null));};exports[_0x5c23('0x42')]=function(_0x1b941e,_0x30df09){var _0x12fd19='sms';return interactionService[_0x5c23('0x43')](_0x1b941e,_0x12fd19)[_0x5c23('0x20')](respondWithResult(_0x30df09,null))[_0x5c23('0x16')](handleError(_0x30df09,null));};exports[_0x5c23('0x42')]=function(_0x40ce2a,_0x4343f7){var _0x48bfae=_0x5c23('0x44');return interactionService[_0x5c23('0x43')](_0x40ce2a,_0x48bfae)[_0x5c23('0x20')](respondWithResult(_0x4343f7,null))[_0x5c23('0x16')](handleError(_0x4343f7,null));};exports['reject']=function(_0x503559,_0x1e3baf){var _0x2a0353={'agent':{},'channel':_0x5c23('0x44')};if(_0x503559[_0x5c23('0x3f')]['id']){delete _0x503559['body']['id'];}_0x503559[_0x5c23('0x3f')][_0x5c23('0x45')]=_0x503559['body']['UserId']||_0x503559[_0x5c23('0x46')]['id'];_0x2a0353[_0x5c23('0x47')]['id']=_0x503559['body']['UserId'];return db['FaxMessage'][_0x5c23('0x3e')]({'where':{'id':_0x503559['params']['id'],'UserId':null}})[_0x5c23('0x20')](handleEntityNotFound(_0x1e3baf,null))[_0x5c23('0x20')](function(_0x546ac7){if(_0x546ac7){_0x2a0353['message']=_0x546ac7['get']({'plain':!![]});return db[_0x5c23('0x48')][_0x5c23('0x3e')]({'where':{'id':_0x546ac7['FaxInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x1e3baf,null))[_0x5c23('0x20')](function(_0x46ba4f){if(_0x46ba4f){_0x2a0353[_0x5c23('0x49')]=_0x46ba4f[_0x5c23('0x4a')]({'plain':!![]});interaction_log[_0x5c23('0x11')](_0x5c23('0x4b'),_0x503559['user']['id'],_0x503559[_0x5c23('0x46')][_0x5c23('0x23')],_0x503559['user'][_0x5c23('0x4c')],_0x2a0353[_0x5c23('0x49')]['id'],_0x503559[_0x5c23('0x3f')]?JSON['stringify'](_0x503559[_0x5c23('0x3f')]):'null');return respondWithRpcPromise('RejectMessage',_0x5c23('0x4d'),_0x2a0353);}return null;})[_0x5c23('0x20')](function(_0x592e07){var _0x598cea='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x592e07[_0x5c23('0x15')][_0x5c23('0x4e')];return db[_0x5c23('0x4f')][_0x5c23('0x2b')](_0x598cea,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]})[_0x5c23('0x20')](function(_0x4bcb69){return _0x4bcb69;});})['then'](function(_0x266480){if(_0x266480){_0x2a0353['message'][_0x5c23('0x50')]=_0x266480[0x0];if(!_0x503559[_0x5c23('0x3f')][_0x5c23('0x45')])return;return db['User'][_0x5c23('0x3e')]({'where':{'id':_0x503559[_0x5c23('0x3f')][_0x5c23('0x45')],'role':_0x5c23('0x47')},'attributes':['id',_0x5c23('0x23'),'fullname',_0x5c23('0x51'),_0x5c23('0x52')],'raw':!![]});}return null;})[_0x5c23('0x20')](function(_0x5dc7d5){if(!_0x5dc7d5)return null;_0x2a0353[_0x5c23('0x15')][_0x5c23('0x47')]=_0x5dc7d5;return _0x2a0353;})[_0x5c23('0x20')](function(_0x3d6a5a){if(_0x3d6a5a){_0x3d6a5a[_0x5c23('0x15')][_0x5c23('0x53')]=util[_0x5c23('0x54')](_0x5c23('0x55'),_0x503559['user'][_0x5c23('0x23')]);_0x3d6a5a[_0x5c23('0x15')][_0x5c23('0x56')]=_0x2a0353[_0x5c23('0x56')];_0x3d6a5a[_0x5c23('0x15')][_0x5c23('0x57')]=_0x2a0353[_0x5c23('0x56')];_0x3d6a5a['message'][_0x5c23('0x58')]=_0x5c23('0x59');respondWithRpcPromise(_0x5c23('0x5a'),_0x5c23('0x5a'),{'event':_0x5c23('0x5b'),'message':_0x3d6a5a[_0x5c23('0x15')]},client9002);return _0x2a0353;}return null;})[_0x5c23('0x20')](respondWithResult(_0x1e3baf,null))[_0x5c23('0x16')](handleError(_0x1e3baf,null));};exports[_0x5c23('0x5c')]=function(_0x153466,_0x1831f1){var _0x3687eb;return db['FaxMessage'][_0x5c23('0x5c')](_0x153466[_0x5c23('0x3f')],{})['then'](function(_0x396196){_0x3687eb=_0x396196;return db[_0x5c23('0x5d')][_0x5c23('0x5e')]({'where':{'id':_0x3687eb[_0x5c23('0x4e')]}});})[_0x5c23('0x20')](function(_0x489609){if(_['isNil'](_0x489609)){return;}else{_0x3687eb[_0x5c23('0x44')]=_0x489609[_0x5c23('0x44')];return db[_0x5c23('0x5f')]['findOne']({'where':{'id':_0x3687eb[_0x5c23('0x60')]}});}})[_0x5c23('0x20')](function(_0x521320){return respondWithRpcPromise(_0x5c23('0x61'),_0x5c23('0x61'),{'FaxAccountId':_['isNil'](_0x153466[_0x5c23('0x3f')])?undefined:_0x153466[_0x5c23('0x3f')][_0x5c23('0x62')],'path':_[_0x5c23('0x63')](_0x521320)?undefined:util[_0x5c23('0x54')]('/var/opt/motion2/server/files/attachments/%s',_0x521320[_0x5c23('0x64')]),'fax':_[_0x5c23('0x63')](_0x3687eb[_0x5c23('0x44')])?undefined:_0x3687eb[_0x5c23('0x44')],'AttachmentId':_0x3687eb['AttachmentId']},client9002);})[_0x5c23('0x20')](respondWithResult(_0x1831f1,0xc9))[_0x5c23('0x16')](handleError(_0x1831f1,null));};exports['download']=function(_0x2d1170,_0x39d1cd){var _0x3462c6=path['join'](config[_0x5c23('0x65')],_0x5c23('0x66'),_0x5c23('0x67'),_0x5c23('0x68'));return db['FaxMessage'][_0x5c23('0x3e')]({'where':{'id':_0x2d1170[_0x5c23('0x40')]['id']},'include':[{'model':db['Attachment'],'as':_0x5c23('0x5f')}]})[_0x5c23('0x20')](handleEntityNotFound(_0x39d1cd,null))[_0x5c23('0x20')](function(_0x72177a){if(_0x72177a){return _0x39d1cd[_0x5c23('0x69')](path['join'](_0x3462c6,_0x72177a[_0x5c23('0x5f')][_0x5c23('0x64')]));}})[_0x5c23('0x16')](handleError(_0x39d1cd,null));};