Built motion from commit b0a9a629.|2.6.33
[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 _0x4825=['offset','limit','undefined','count','set','Content-Range','destroy','end','sendStatus','stack','name','send','index','FaxMessage','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','show','params','options','body','find','describe','accept','acceptMessage','fax','reject','UserId','user','get','FaxInteraction','FaxInteractionId','interaction','null','RejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','contact','agent','fullname','email','internal','interface','format','SIP/%s','channel','motionChannel','rejectmessage','create','findOne','isNil','AttachmentId','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','download','join','root','files','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','jayson/promise','http','client','fax-interactions','request','then','info','debug','FaxMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','status','json'];(function(_0x542e14,_0x5dfd4b){var _0xe3bbb=function(_0x5c2ac7){while(--_0x5c2ac7){_0x542e14['push'](_0x542e14['shift']());}};_0xe3bbb(++_0x5dfd4b);}(_0x4825,0xc2));var _0x5482=function(_0x4c4a92,_0x2f032e){_0x4c4a92=_0x4c4a92-0x0;var _0xdc8bf0=_0x4825[_0x4c4a92];return _0xdc8bf0;};'use strict';var util=require(_0x5482('0x0'));var path=require('path');var _=require(_0x5482('0x1'));var Redis=require(_0x5482('0x2'));var interactionService=require(_0x5482('0x3'));var qs=require(_0x5482('0x4'));var logger=require(_0x5482('0x5'))('api');var config=require(_0x5482('0x6'));var db=require(_0x5482('0x7'))['db'];config[_0x5482('0x8')]=_[_0x5482('0x9')](config[_0x5482('0x8')],{'host':_0x5482('0xa'),'port':0x18eb});var socket=require(_0x5482('0xb'))(new Redis(config['redis']));require(_0x5482('0xc'))['register'](socket);var jayson=require(_0x5482('0xd'));var client=jayson['client'][_0x5482('0xe')]({'port':0x232c});var client9002=jayson[_0x5482('0xf')][_0x5482('0xe')]({'port':0x232a});var interaction_log=require(_0x5482('0x5'))(_0x5482('0x10'));function respondWithRpcPromise(_0x3728e5,_0x45fc2a,_0x130574,_0x28d268){return new Promise(function(_0x33e9e2,_0x12357e){var _0x2dcc65=_0x28d268||client;return _0x2dcc65[_0x5482('0x11')](_0x3728e5,_0x130574)[_0x5482('0x12')](function(_0x5281f3){logger[_0x5482('0x13')]('FaxMessage,\x20%s,\x20%s',_0x45fc2a,'request\x20sent');logger[_0x5482('0x14')](_0x5482('0x15'),_0x45fc2a,_0x5482('0x16'),JSON[_0x5482('0x17')](_0x5281f3));if(_0x5281f3[_0x5482('0x18')]){if(_0x5281f3['error'][_0x5482('0x19')]===0x1f4){logger[_0x5482('0x18')](_0x5482('0x1a'),_0x45fc2a,_0x5281f3[_0x5482('0x18')][_0x5482('0x1b')]);return _0x12357e(_0x5281f3['error'][_0x5482('0x1b')]);}logger[_0x5482('0x18')](_0x5482('0x1a'),_0x45fc2a,_0x5281f3[_0x5482('0x18')]['message']);return _0x33e9e2(_0x5281f3['error']['message']);}else{logger['info'](_0x5482('0x1a'),_0x45fc2a,_0x5482('0x16'));_0x33e9e2(_0x5281f3[_0x5482('0x1c')][_0x5482('0x1b')]);}})[_0x5482('0x1d')](function(_0x26e048){logger['error'](_0x5482('0x1a'),_0x45fc2a,_0x26e048);_0x12357e(_0x26e048);});});}function respondWithResult(_0x279163,_0x3902b1){_0x3902b1=_0x3902b1||0xc8;return function(_0x44d6a8){if(_0x44d6a8){return _0x279163[_0x5482('0x1e')](_0x3902b1)[_0x5482('0x1f')](_0x44d6a8);}};}function respondWithFilteredResult(_0x2eac49,_0x291300){return function(_0x3aa33c){if(_0x3aa33c){var _0x53a7df=typeof _0x291300[_0x5482('0x20')]==='undefined'&&typeof _0x291300[_0x5482('0x21')]===_0x5482('0x22');var _0x197a7a=_0x3aa33c[_0x5482('0x23')];var _0x52b0da=_0x53a7df?0x0:_0x291300[_0x5482('0x20')];var _0x1c4661=_0x53a7df?_0x3aa33c[_0x5482('0x23')]:_0x291300[_0x5482('0x20')]+_0x291300[_0x5482('0x21')];var _0x1e036c;if(_0x1c4661>=_0x197a7a){_0x1c4661=_0x197a7a;_0x1e036c=0xc8;}else{_0x1e036c=0xce;}_0x2eac49[_0x5482('0x1e')](_0x1e036c);return _0x2eac49[_0x5482('0x24')](_0x5482('0x25'),_0x52b0da+'-'+_0x1c4661+'/'+_0x197a7a)['json'](_0x3aa33c);}return null;};}function saveUpdates(_0x1867da){return function(_0x13484e){if(_0x13484e){return _0x13484e['update'](_0x1867da)['then'](function(_0x4b50a7){return _0x4b50a7;});}return null;};}function removeEntity(_0x269b02){return function(_0x3590a7){if(_0x3590a7){return _0x3590a7[_0x5482('0x26')]()['then'](function(){_0x269b02['status'](0xcc)[_0x5482('0x27')]();});}};}function handleEntityNotFound(_0x323275){return function(_0x275aa6){if(!_0x275aa6){_0x323275[_0x5482('0x28')](0x194);}return _0x275aa6;};}function handleError(_0x339aa3,_0x2377f0){_0x2377f0=_0x2377f0||0x1f4;return function(_0x5c7556){logger['error'](_0x5c7556[_0x5482('0x29')]);if(_0x5c7556[_0x5482('0x2a')]){delete _0x5c7556[_0x5482('0x2a')];}_0x339aa3[_0x5482('0x1e')](_0x2377f0)[_0x5482('0x2b')](_0x5c7556);};}exports[_0x5482('0x2c')]=function(_0x256982,_0x3a1ded){var _0xd51ebc={},_0x2fa3b8={},_0xd16adf={'count':0x0,'rows':[]};var _0x7fa7b1=_['map'](db[_0x5482('0x2d')][_0x5482('0x2e')],function(_0x160b9a){return{'name':_0x160b9a[_0x5482('0x2f')],'type':_0x160b9a[_0x5482('0x30')][_0x5482('0x31')]};});_0x2fa3b8[_0x5482('0x32')]=_[_0x5482('0x33')](_0x7fa7b1,_0x5482('0x2a'));_0x2fa3b8[_0x5482('0x34')]=_[_0x5482('0x35')](_0x256982[_0x5482('0x34')]);_0x2fa3b8[_0x5482('0x36')]=_[_0x5482('0x37')](_0x2fa3b8['model'],_0x2fa3b8[_0x5482('0x34')]);_0xd51ebc['attributes']=_[_0x5482('0x37')](_0x2fa3b8['model'],qs[_0x5482('0x38')](_0x256982[_0x5482('0x34')][_0x5482('0x38')]));_0xd51ebc[_0x5482('0x39')]=_0xd51ebc[_0x5482('0x39')]['length']?_0xd51ebc[_0x5482('0x39')]:_0x2fa3b8[_0x5482('0x32')];if(!_0x256982[_0x5482('0x34')][_0x5482('0x3a')]('nolimit')){_0xd51ebc[_0x5482('0x21')]=qs[_0x5482('0x21')](_0x256982['query'][_0x5482('0x21')]);_0xd51ebc[_0x5482('0x20')]=qs['offset'](_0x256982[_0x5482('0x34')][_0x5482('0x20')]);}_0xd51ebc[_0x5482('0x3b')]=qs['sort'](_0x256982[_0x5482('0x34')][_0x5482('0x3c')]);_0xd51ebc[_0x5482('0x3d')]=qs[_0x5482('0x36')](_[_0x5482('0x3e')](_0x256982[_0x5482('0x34')],_0x2fa3b8[_0x5482('0x36')]),_0x7fa7b1);if(_0x256982[_0x5482('0x34')][_0x5482('0x3f')]){_0xd51ebc['where']=_[_0x5482('0x40')](_0xd51ebc[_0x5482('0x3d')],{'$or':_[_0x5482('0x33')](_0x7fa7b1,function(_0x3fabda){if(_0x3fabda[_0x5482('0x30')]!==_0x5482('0x41')){var _0x2dccc3={};_0x2dccc3[_0x3fabda[_0x5482('0x2a')]]={'$like':'%'+_0x256982[_0x5482('0x34')][_0x5482('0x3f')]+'%'};return _0x2dccc3;}})});}_0xd51ebc=_[_0x5482('0x40')]({},_0xd51ebc,_0x256982['options']);var _0x297b34={'where':_0xd51ebc[_0x5482('0x3d')]};return db[_0x5482('0x2d')]['count'](_0x297b34)['then'](function(_0x24079f){_0xd16adf[_0x5482('0x23')]=_0x24079f;if(_0x256982[_0x5482('0x34')][_0x5482('0x42')]){_0xd51ebc[_0x5482('0x43')]=[{'all':!![]}];}return db[_0x5482('0x2d')][_0x5482('0x44')](_0xd51ebc);})[_0x5482('0x12')](function(_0x2b543f){_0xd16adf['rows']=_0x2b543f;return _0xd16adf;})[_0x5482('0x12')](respondWithFilteredResult(_0x3a1ded,_0xd51ebc))[_0x5482('0x1d')](handleError(_0x3a1ded,null));};exports[_0x5482('0x45')]=function(_0x44cb64,_0x17eb2d){var _0xf677a8={'raw':!![],'where':{'id':_0x44cb64[_0x5482('0x46')]['id']}},_0x9082ce={};_0x9082ce[_0x5482('0x32')]=_['keys'](db[_0x5482('0x2d')][_0x5482('0x2e')]);_0x9082ce[_0x5482('0x34')]=_[_0x5482('0x35')](_0x44cb64[_0x5482('0x34')]);_0x9082ce[_0x5482('0x36')]=_[_0x5482('0x37')](_0x9082ce[_0x5482('0x32')],_0x9082ce[_0x5482('0x34')]);_0xf677a8[_0x5482('0x39')]=_[_0x5482('0x37')](_0x9082ce[_0x5482('0x32')],qs[_0x5482('0x38')](_0x44cb64[_0x5482('0x34')]['fields']));_0xf677a8[_0x5482('0x39')]=_0xf677a8['attributes']['length']?_0xf677a8[_0x5482('0x39')]:_0x9082ce[_0x5482('0x32')];if(_0x44cb64[_0x5482('0x34')]['includeAll']){_0xf677a8['include']=[{'all':!![]}];}_0xf677a8=_[_0x5482('0x40')]({},_0xf677a8,_0x44cb64[_0x5482('0x47')]);return db[_0x5482('0x2d')]['find'](_0xf677a8)[_0x5482('0x12')](handleEntityNotFound(_0x17eb2d,null))[_0x5482('0x12')](respondWithResult(_0x17eb2d,null))[_0x5482('0x1d')](handleError(_0x17eb2d,null));};exports['update']=function(_0x210895,_0x3623c6){if(_0x210895[_0x5482('0x48')]['id']){delete _0x210895[_0x5482('0x48')]['id'];}return db['FaxMessage'][_0x5482('0x49')]({'where':{'id':_0x210895[_0x5482('0x46')]['id']}})[_0x5482('0x12')](handleEntityNotFound(_0x3623c6,null))[_0x5482('0x12')](saveUpdates(_0x210895['body'],null))[_0x5482('0x12')](respondWithResult(_0x3623c6,null))['catch'](handleError(_0x3623c6,null));};exports[_0x5482('0x26')]=function(_0x38ca54,_0x15f65a){return db['FaxMessage']['find']({'where':{'id':_0x38ca54[_0x5482('0x46')]['id']}})[_0x5482('0x12')](handleEntityNotFound(_0x15f65a,null))[_0x5482('0x12')](removeEntity(_0x15f65a,null))[_0x5482('0x1d')](handleError(_0x15f65a,null));};exports[_0x5482('0x4a')]=function(_0x1fea49,_0x3c716a){return db['FaxMessage']['describe']()[_0x5482('0x12')](respondWithResult(_0x3c716a,null))[_0x5482('0x1d')](handleError(_0x3c716a,null));};exports[_0x5482('0x4b')]=function(_0x35fc3a,_0x5d635d){var _0xa2f3f6='sms';return interactionService[_0x5482('0x4c')](_0x35fc3a,_0xa2f3f6)['then'](respondWithResult(_0x5d635d,null))[_0x5482('0x1d')](handleError(_0x5d635d,null));};exports['accept']=function(_0x10bc60,_0xd6b4b1){var _0x45f9dc=_0x5482('0x4d');return interactionService[_0x5482('0x4c')](_0x10bc60,_0x45f9dc)[_0x5482('0x12')](respondWithResult(_0xd6b4b1,null))[_0x5482('0x1d')](handleError(_0xd6b4b1,null));};exports[_0x5482('0x4e')]=function(_0x12f3bb,_0x1fb4ef){var _0x2f2c40={'agent':{},'channel':_0x5482('0x4d')};if(_0x12f3bb[_0x5482('0x48')]['id']){delete _0x12f3bb[_0x5482('0x48')]['id'];}_0x12f3bb[_0x5482('0x48')][_0x5482('0x4f')]=_0x12f3bb[_0x5482('0x48')]['UserId']||_0x12f3bb[_0x5482('0x50')]['id'];_0x2f2c40['agent']['id']=_0x12f3bb['body'][_0x5482('0x4f')];return db[_0x5482('0x2d')]['find']({'where':{'id':_0x12f3bb[_0x5482('0x46')]['id'],'UserId':null}})[_0x5482('0x12')](handleEntityNotFound(_0x1fb4ef,null))[_0x5482('0x12')](function(_0x236684){if(_0x236684){_0x2f2c40[_0x5482('0x1b')]=_0x236684[_0x5482('0x51')]({'plain':!![]});return db[_0x5482('0x52')][_0x5482('0x49')]({'where':{'id':_0x236684[_0x5482('0x53')]}});}return null;})[_0x5482('0x12')](handleEntityNotFound(_0x1fb4ef,null))[_0x5482('0x12')](function(_0x3585fe){if(_0x3585fe){_0x2f2c40[_0x5482('0x54')]=_0x3585fe['get']({'plain':!![]});interaction_log[_0x5482('0x13')]('[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x12f3bb[_0x5482('0x50')]['id'],_0x12f3bb[_0x5482('0x50')][_0x5482('0x2a')],_0x12f3bb['user']['role'],_0x2f2c40[_0x5482('0x54')]['id'],_0x12f3bb[_0x5482('0x48')]?JSON[_0x5482('0x17')](_0x12f3bb['body']):_0x5482('0x55'));return respondWithRpcPromise(_0x5482('0x56'),'rejectMessage',_0x2f2c40);}return null;})[_0x5482('0x12')](function(_0x5086ee){var _0x625a92=_0x5482('0x57')+_0x5086ee[_0x5482('0x1b')]['ContactId'];return db[_0x5482('0x58')][_0x5482('0x34')](_0x625a92,{'type':db[_0x5482('0x59')][_0x5482('0x5a')]['SELECT'],'raw':!![]})[_0x5482('0x12')](function(_0x30bb9c){return _0x30bb9c;});})[_0x5482('0x12')](function(_0x3fef66){if(_0x3fef66){_0x2f2c40['message'][_0x5482('0x5b')]=_0x3fef66[0x0];if(!_0x12f3bb[_0x5482('0x48')][_0x5482('0x4f')])return;return db['User'][_0x5482('0x49')]({'where':{'id':_0x12f3bb['body'][_0x5482('0x4f')],'role':_0x5482('0x5c')},'attributes':['id',_0x5482('0x2a'),_0x5482('0x5d'),_0x5482('0x5e'),_0x5482('0x5f')],'raw':!![]});}return null;})[_0x5482('0x12')](function(_0x358607){if(!_0x358607)return null;_0x2f2c40[_0x5482('0x1b')][_0x5482('0x5c')]=_0x358607;return _0x2f2c40;})[_0x5482('0x12')](function(_0x22b28b){if(_0x22b28b){_0x22b28b[_0x5482('0x1b')][_0x5482('0x60')]=util[_0x5482('0x61')](_0x5482('0x62'),_0x12f3bb['user'][_0x5482('0x2a')]);_0x22b28b[_0x5482('0x1b')][_0x5482('0x63')]=_0x2f2c40[_0x5482('0x63')];_0x22b28b['message'][_0x5482('0x64')]=_0x2f2c40[_0x5482('0x63')];_0x22b28b['message']['event']=_0x5482('0x4e');respondWithRpcPromise('EventManager','EventManager',{'event':_0x5482('0x65'),'message':_0x22b28b[_0x5482('0x1b')]},client9002);return _0x2f2c40;}return null;})[_0x5482('0x12')](respondWithResult(_0x1fb4ef,null))[_0x5482('0x1d')](handleError(_0x1fb4ef,null));};exports['create']=function(_0x1516a2,_0x17a5d7){var _0x276dce;return db[_0x5482('0x2d')][_0x5482('0x66')](_0x1516a2[_0x5482('0x48')],{})[_0x5482('0x12')](function(_0x3d2e08){_0x276dce=_0x3d2e08;return db['CmContact'][_0x5482('0x67')]({'where':{'id':_0x276dce['ContactId']}});})[_0x5482('0x12')](function(_0x377dd7){if(_[_0x5482('0x68')](_0x377dd7)){return;}else{_0x276dce[_0x5482('0x4d')]=_0x377dd7[_0x5482('0x4d')];return db['Attachment'][_0x5482('0x67')]({'where':{'id':_0x276dce[_0x5482('0x69')]}});}})[_0x5482('0x12')](function(_0x48d760){return respondWithRpcPromise('SendFax','SendFax',{'FaxAccountId':_[_0x5482('0x68')](_0x1516a2['body'])?undefined:_0x1516a2[_0x5482('0x48')][_0x5482('0x6a')],'path':_[_0x5482('0x68')](_0x48d760)?undefined:util['format'](_0x5482('0x6b'),_0x48d760[_0x5482('0x6c')]),'fax':_['isNil'](_0x276dce['fax'])?undefined:_0x276dce['fax'],'AttachmentId':_0x276dce[_0x5482('0x69')]},client9002);})['then'](respondWithResult(_0x17a5d7,0xc9))[_0x5482('0x1d')](handleError(_0x17a5d7,null));};exports[_0x5482('0x6d')]=function(_0x357364,_0x44b8c8){var _0x345e93=path[_0x5482('0x6e')](config[_0x5482('0x6f')],'server',_0x5482('0x70'),'attachments');return db[_0x5482('0x2d')][_0x5482('0x49')]({'where':{'id':_0x357364[_0x5482('0x46')]['id']},'include':[{'model':db['Attachment'],'as':'Attachment'}]})['then'](handleEntityNotFound(_0x44b8c8,null))[_0x5482('0x12')](function(_0x2d90ec){if(_0x2d90ec){return _0x44b8c8[_0x5482('0x6d')](path[_0x5482('0x6e')](_0x345e93,_0x2d90ec['Attachment'][_0x5482('0x6c')]));}})[_0x5482('0x1d')](handleError(_0x44b8c8,null));};