Built motion from commit (unavailable).|2.5.14
[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 _0x3a60=['length','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','FaxMessage','includeAll','include','findAll','rows','catch','show','params','keys','find','body','fax-interactions','accept','fax','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','get','FaxInteraction','FaxInteractionId','isNil','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','AcceptMessage','acceptMessage','manual','interface','channel','EventManager','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','SIP/%s','event','findOne','Attachment','AttachmentId','SendFax','/var/opt/motion2/server/files/attachments/%s','download','root','server','attachments','join','basename','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','./faxMessage.socket','register','jayson/promise','http','request','then','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','end','status','json','count','offset','limit','Content-Range','reject','update','destroy','sendStatus','stack','name','send','index','map','type','model','query','attributes','intersection','fields'];(function(_0x1a08ad,_0x21d209){var _0x521649=function(_0x1794e7){while(--_0x1794e7){_0x1a08ad['push'](_0x1a08ad['shift']());}};_0x521649(++_0x21d209);}(_0x3a60,0x135));var _0x03a6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3a60[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x03a6('0x0'));var emlformat=require(_0x03a6('0x1'));var rimraf=require(_0x03a6('0x2'));var zipdir=require(_0x03a6('0x3'));var jsonpatch=require(_0x03a6('0x4'));var rp=require('request-promise');var moment=require(_0x03a6('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x03a6('0x6'));var util=require('util');var path=require(_0x03a6('0x7'));var sox=require(_0x03a6('0x8'));var csv=require(_0x03a6('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x03a6('0xa'));var squel=require('squel');var crypto=require(_0x03a6('0xb'));var jsforce=require(_0x03a6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x03a6('0x9'));var querystring=require(_0x03a6('0xd'));var Papa=require(_0x03a6('0xe'));var Redis=require(_0x03a6('0xf'));var authService=require(_0x03a6('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x03a6('0x11'));var logger=require(_0x03a6('0x12'))(_0x03a6('0x13'));var utils=require(_0x03a6('0x14'));var config=require(_0x03a6('0x15'));var licenseUtil=require(_0x03a6('0x16'));var db=require('../../mysqldb')['db'];config[_0x03a6('0x17')]=_[_0x03a6('0x18')](config['redis'],{'host':_0x03a6('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x03a6('0x17')]));require(_0x03a6('0x1a'))[_0x03a6('0x1b')](socket);var jayson=require(_0x03a6('0x1c'));var client=jayson['client'][_0x03a6('0x1d')]({'port':0x232c});var client9002=jayson['client'][_0x03a6('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x4394fb,_0x421421,_0x2352a5,_0x12eec9){return new BPromise(function(_0x5a293a,_0x63915a){var _0x5ae403=_0x12eec9||client;return _0x5ae403[_0x03a6('0x1e')](_0x4394fb,_0x2352a5)[_0x03a6('0x1f')](function(_0x450c1c){logger['info'](_0x03a6('0x20'),_0x421421,_0x03a6('0x21'));logger[_0x03a6('0x22')](_0x03a6('0x23'),_0x421421,_0x03a6('0x21'),JSON[_0x03a6('0x24')](_0x450c1c));if(_0x450c1c[_0x03a6('0x25')]){if(_0x450c1c[_0x03a6('0x25')][_0x03a6('0x26')]===0x1f4){logger[_0x03a6('0x25')](_0x03a6('0x20'),_0x421421,_0x450c1c['error']['message']);return _0x63915a(_0x450c1c[_0x03a6('0x25')][_0x03a6('0x27')]);}logger['error'](_0x03a6('0x20'),_0x421421,_0x450c1c['error']['message']);return _0x5a293a(_0x450c1c[_0x03a6('0x25')]['message']);}else{logger[_0x03a6('0x28')]('FaxMessage,\x20%s,\x20%s',_0x421421,_0x03a6('0x21'));_0x5a293a(_0x450c1c['result'][_0x03a6('0x27')]);}})['catch'](function(_0x838c7c){logger[_0x03a6('0x25')]('FaxMessage,\x20%s,\x20%s',_0x421421,_0x838c7c);_0x63915a(_0x838c7c);});});}function respondWithStatusCode(_0x31d19e,_0x1abfdc){_0x1abfdc=_0x1abfdc||0xcc;return function(_0x277d3b){if(_0x277d3b){return _0x31d19e['sendStatus'](_0x1abfdc);}return _0x31d19e['status'](_0x1abfdc)[_0x03a6('0x29')]();};}function respondWithResult(_0x4680e0,_0x120ada){_0x120ada=_0x120ada||0xc8;return function(_0x454c83){if(_0x454c83){return _0x4680e0[_0x03a6('0x2a')](_0x120ada)[_0x03a6('0x2b')](_0x454c83);}};}function respondWithFilteredResult(_0x19a0ae,_0x2ae862){return function(_0x2bf7fa){if(_0x2bf7fa){var _0x4b0dcb=_0x2bf7fa[_0x03a6('0x2c')],_0x42418c=_0x2ae862[_0x03a6('0x2d')],_0x2e5507=_0x2ae862[_0x03a6('0x2d')]+_0x2ae862[_0x03a6('0x2e')],_0x58f666;if(_0x2e5507>=_0x4b0dcb){_0x2e5507=_0x4b0dcb;_0x58f666=0xc8;}else{_0x58f666=0xce;}_0x19a0ae[_0x03a6('0x2a')](_0x58f666);return _0x19a0ae['set'](_0x03a6('0x2f'),_0x42418c+'-'+_0x2e5507+'/'+_0x4b0dcb)['json'](_0x2bf7fa);}return null;};}function patchUpdates(_0x205c8a){return function(_0x3d88b4){try{jsonpatch['apply'](_0x3d88b4,_0x205c8a,!![]);}catch(_0x3ab505){return BPromise[_0x03a6('0x30')](_0x3ab505);}return _0x3d88b4['save']();};}function saveUpdates(_0x4a8d5a,_0x5ba676){return function(_0x2b410d){if(_0x2b410d){return _0x2b410d[_0x03a6('0x31')](_0x4a8d5a)['then'](function(_0x34e9a0){return _0x34e9a0;});}return null;};}function removeEntity(_0x322ebb,_0x28f422){return function(_0x367f4f){if(_0x367f4f){return _0x367f4f[_0x03a6('0x32')]()[_0x03a6('0x1f')](function(){_0x322ebb[_0x03a6('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e0342,_0x3df6a9){return function(_0x528713){if(!_0x528713){_0x1e0342[_0x03a6('0x33')](0x194);}return _0x528713;};}function handleError(_0x26bca8,_0x4ec057){_0x4ec057=_0x4ec057||0x1f4;return function(_0x160761){logger['error'](_0x160761[_0x03a6('0x34')]);if(_0x160761[_0x03a6('0x35')]){delete _0x160761['name'];}_0x26bca8[_0x03a6('0x2a')](_0x4ec057)[_0x03a6('0x36')](_0x160761);};}exports[_0x03a6('0x37')]=function(_0x21aa2d,_0x2a930b){var _0x1ba856={},_0x3ddc70={},_0x18093f={'count':0x0,'rows':[]};var _0x2b31e3=_[_0x03a6('0x38')](db['FaxMessage']['rawAttributes'],function(_0x238e52){return{'name':_0x238e52['fieldName'],'type':_0x238e52[_0x03a6('0x39')]['key']};});_0x3ddc70[_0x03a6('0x3a')]=_['map'](_0x2b31e3,'name');_0x3ddc70['query']=_['keys'](_0x21aa2d[_0x03a6('0x3b')]);_0x3ddc70['filters']=_['intersection'](_0x3ddc70['model'],_0x3ddc70[_0x03a6('0x3b')]);_0x1ba856[_0x03a6('0x3c')]=_[_0x03a6('0x3d')](_0x3ddc70[_0x03a6('0x3a')],qs[_0x03a6('0x3e')](_0x21aa2d[_0x03a6('0x3b')][_0x03a6('0x3e')]));_0x1ba856[_0x03a6('0x3c')]=_0x1ba856[_0x03a6('0x3c')][_0x03a6('0x3f')]?_0x1ba856[_0x03a6('0x3c')]:_0x3ddc70[_0x03a6('0x3a')];if(!_0x21aa2d['query']['hasOwnProperty'](_0x03a6('0x40'))){_0x1ba856[_0x03a6('0x2e')]=qs[_0x03a6('0x2e')](_0x21aa2d[_0x03a6('0x3b')][_0x03a6('0x2e')]);_0x1ba856[_0x03a6('0x2d')]=qs[_0x03a6('0x2d')](_0x21aa2d['query']['offset']);}_0x1ba856[_0x03a6('0x41')]=qs['sort'](_0x21aa2d[_0x03a6('0x3b')][_0x03a6('0x42')]);_0x1ba856['where']=qs[_0x03a6('0x43')](_[_0x03a6('0x44')](_0x21aa2d[_0x03a6('0x3b')],_0x3ddc70[_0x03a6('0x43')]),_0x2b31e3);if(_0x21aa2d['query']['filter']){_0x1ba856[_0x03a6('0x45')]=_[_0x03a6('0x46')](_0x1ba856[_0x03a6('0x45')],{'$or':_['map'](_0x2b31e3,function(_0x570cb4){if(_0x570cb4[_0x03a6('0x39')]!==_0x03a6('0x47')){var _0x5d8683={};_0x5d8683[_0x570cb4[_0x03a6('0x35')]]={'$like':'%'+_0x21aa2d['query'][_0x03a6('0x48')]+'%'};return _0x5d8683;}})});}_0x1ba856=_['merge']({},_0x1ba856,_0x21aa2d[_0x03a6('0x49')]);var _0x15d9c2={'where':_0x1ba856[_0x03a6('0x45')]};return db[_0x03a6('0x4a')]['count'](_0x15d9c2)[_0x03a6('0x1f')](function(_0x43cf93){_0x18093f[_0x03a6('0x2c')]=_0x43cf93;if(_0x21aa2d[_0x03a6('0x3b')][_0x03a6('0x4b')]){_0x1ba856[_0x03a6('0x4c')]=[{'all':!![]}];}return db[_0x03a6('0x4a')][_0x03a6('0x4d')](_0x1ba856);})['then'](function(_0x116dd7){_0x18093f[_0x03a6('0x4e')]=_0x116dd7;return _0x18093f;})['then'](respondWithFilteredResult(_0x2a930b,_0x1ba856))[_0x03a6('0x4f')](handleError(_0x2a930b,null));};exports[_0x03a6('0x50')]=function(_0x175a9d,_0x5dc4d8){var _0x5a0bc5={'raw':!![],'where':{'id':_0x175a9d[_0x03a6('0x51')]['id']}},_0x2a826d={};_0x2a826d[_0x03a6('0x3a')]=_[_0x03a6('0x52')](db[_0x03a6('0x4a')]['rawAttributes']);_0x2a826d[_0x03a6('0x3b')]=_[_0x03a6('0x52')](_0x175a9d[_0x03a6('0x3b')]);_0x2a826d[_0x03a6('0x43')]=_[_0x03a6('0x3d')](_0x2a826d[_0x03a6('0x3a')],_0x2a826d[_0x03a6('0x3b')]);_0x5a0bc5[_0x03a6('0x3c')]=_[_0x03a6('0x3d')](_0x2a826d[_0x03a6('0x3a')],qs[_0x03a6('0x3e')](_0x175a9d[_0x03a6('0x3b')][_0x03a6('0x3e')]));_0x5a0bc5['attributes']=_0x5a0bc5[_0x03a6('0x3c')][_0x03a6('0x3f')]?_0x5a0bc5['attributes']:_0x2a826d[_0x03a6('0x3a')];if(_0x175a9d[_0x03a6('0x3b')][_0x03a6('0x4b')]){_0x5a0bc5['include']=[{'all':!![]}];}_0x5a0bc5=_[_0x03a6('0x46')]({},_0x5a0bc5,_0x175a9d[_0x03a6('0x49')]);return db[_0x03a6('0x4a')][_0x03a6('0x53')](_0x5a0bc5)[_0x03a6('0x1f')](handleEntityNotFound(_0x5dc4d8,null))['then'](respondWithResult(_0x5dc4d8,null))[_0x03a6('0x4f')](handleError(_0x5dc4d8,null));};exports[_0x03a6('0x31')]=function(_0x188c1e,_0x90af6b){if(_0x188c1e[_0x03a6('0x54')]['id']){delete _0x188c1e[_0x03a6('0x54')]['id'];}return db[_0x03a6('0x4a')]['find']({'where':{'id':_0x188c1e[_0x03a6('0x51')]['id']}})[_0x03a6('0x1f')](handleEntityNotFound(_0x90af6b,null))['then'](saveUpdates(_0x188c1e[_0x03a6('0x54')],null))['then'](respondWithResult(_0x90af6b,null))[_0x03a6('0x4f')](handleError(_0x90af6b,null));};exports[_0x03a6('0x32')]=function(_0x3e4a00,_0x404a85){return db['FaxMessage'][_0x03a6('0x53')]({'where':{'id':_0x3e4a00[_0x03a6('0x51')]['id']}})['then'](handleEntityNotFound(_0x404a85,null))[_0x03a6('0x1f')](removeEntity(_0x404a85,null))[_0x03a6('0x4f')](handleError(_0x404a85,null));};exports['describe']=function(_0x2fbefb,_0xad1500){return db[_0x03a6('0x4a')]['describe']()[_0x03a6('0x1f')](respondWithResult(_0xad1500,null))[_0x03a6('0x4f')](handleError(_0xad1500,null));};var interaction_log=require(_0x03a6('0x12'))(_0x03a6('0x55'));exports[_0x03a6('0x56')]=function(_0x123981,_0x468e4e,_0x3ac9de){var _0x4dc408={'channel':_0x03a6('0x57')};if(_0x123981[_0x03a6('0x54')]['id']){delete _0x123981[_0x03a6('0x54')]['id'];}_0x123981[_0x03a6('0x54')][_0x03a6('0x58')]=!![];_0x123981[_0x03a6('0x54')][_0x03a6('0x59')]=moment()[_0x03a6('0x5a')](_0x03a6('0x5b'));_0x123981[_0x03a6('0x54')]['UserId']=_0x123981[_0x03a6('0x54')][_0x03a6('0x5c')]||_0x123981['user']['id'];return db['FaxMessage'][_0x03a6('0x53')]({'where':{'id':_0x123981['params']['id'],'UserId':null},'include':[{'model':db[_0x03a6('0x5d')],'as':'Contact'}]})[_0x03a6('0x1f')](handleEntityNotFound(_0x468e4e,null))[_0x03a6('0x1f')](saveUpdates(_0x123981['body'],null))[_0x03a6('0x1f')](function(_0x289b6d){if(_0x289b6d){_0x4dc408[_0x03a6('0x27')]=_0x289b6d[_0x03a6('0x5e')]({'plain':!![]});return db[_0x03a6('0x5f')]['find']({'where':{'id':_0x289b6d[_0x03a6('0x60')]}});}return null;})['then'](handleEntityNotFound(_0x468e4e,null))[_0x03a6('0x1f')](function(_0x1e1f0a){if(_0x1e1f0a){return _0x1e1f0a[_0x03a6('0x31')]({'UserId':_0x123981['body'][_0x03a6('0x5c')],'read1stAt':_[_0x03a6('0x61')](_0x1e1f0a['read1stAt'])?moment()[_0x03a6('0x5a')](_0x03a6('0x5b')):undefined});}return null;})['then'](function(_0x46bf68){if(_0x46bf68){_0x4dc408[_0x03a6('0x62')]=_0x46bf68[_0x03a6('0x5e')]({'plain':!![]});interaction_log['info'](_0x03a6('0x63'),_0x123981[_0x03a6('0x64')]['id'],_0x123981[_0x03a6('0x64')][_0x03a6('0x35')],_0x123981[_0x03a6('0x64')]['role'],_0x4dc408['interaction']['id'],_0x123981[_0x03a6('0x54')]?JSON[_0x03a6('0x24')](_0x123981[_0x03a6('0x54')]):'null');return respondWithRpcPromise(_0x03a6('0x65'),_0x03a6('0x66'),_0x4dc408);}return null;})[_0x03a6('0x1f')](function(_0x18cdc9){if(_0x18cdc9){if(_0x123981[_0x03a6('0x54')][_0x03a6('0x67')]){_0x4dc408[_0x03a6('0x27')][_0x03a6('0x68')]=util[_0x03a6('0x5a')]('SIP/%s',_0x123981['user'][_0x03a6('0x35')]);_0x4dc408[_0x03a6('0x27')][_0x03a6('0x69')]=_0x4dc408[_0x03a6('0x69')];_0x4dc408['message']['event']=_0x03a6('0x56');return respondWithRpcPromise(_0x03a6('0x6a'),_0x03a6('0x6a'),{'event':'acceptmessage','message':_0x4dc408[_0x03a6('0x27')]},client9002)[_0x03a6('0x1f')](function(){return _0x4dc408;});}return _0x4dc408;}return null;})['then'](respondWithResult(_0x468e4e,null))['catch'](handleError(_0x468e4e,null));};var interaction_log=require(_0x03a6('0x12'))(_0x03a6('0x55'));exports['reject']=function(_0x423244,_0xa722a5,_0x3711d5){var _0x1cd74d={'agent':{},'channel':_0x03a6('0x57')};if(_0x423244[_0x03a6('0x54')]['id']){delete _0x423244[_0x03a6('0x54')]['id'];}_0x423244[_0x03a6('0x54')][_0x03a6('0x5c')]=_0x423244[_0x03a6('0x54')][_0x03a6('0x5c')]||_0x423244['user']['id'];_0x1cd74d['agent']['id']=_0x423244['body'][_0x03a6('0x5c')];return db[_0x03a6('0x4a')]['find']({'where':{'id':_0x423244[_0x03a6('0x51')]['id'],'UserId':null}})[_0x03a6('0x1f')](handleEntityNotFound(_0xa722a5,null))[_0x03a6('0x1f')](function(_0x2a415c){if(_0x2a415c){_0x1cd74d[_0x03a6('0x27')]=_0x2a415c['get']({'plain':!![]});return db[_0x03a6('0x5f')][_0x03a6('0x53')]({'where':{'id':_0x2a415c['FaxInteractionId']}});}return null;})['then'](handleEntityNotFound(_0xa722a5,null))['then'](function(_0x425fa1){if(_0x425fa1){_0x1cd74d['interaction']=_0x425fa1[_0x03a6('0x5e')]({'plain':!![]});interaction_log[_0x03a6('0x28')](_0x03a6('0x6b'),_0x423244[_0x03a6('0x64')]['id'],_0x423244[_0x03a6('0x64')][_0x03a6('0x35')],_0x423244['user'][_0x03a6('0x6c')],_0x1cd74d[_0x03a6('0x62')]['id'],_0x423244['body']?JSON[_0x03a6('0x24')](_0x423244[_0x03a6('0x54')]):'null');return respondWithRpcPromise(_0x03a6('0x6d'),_0x03a6('0x6e'),_0x1cd74d);}return null;})[_0x03a6('0x1f')](function(_0x28f383){if(_0x28f383){_0x28f383[_0x03a6('0x27')]['interface']=util[_0x03a6('0x5a')](_0x03a6('0x6f'),_0x423244[_0x03a6('0x64')][_0x03a6('0x35')]);_0x28f383['message'][_0x03a6('0x69')]=_0x1cd74d[_0x03a6('0x69')];_0x28f383[_0x03a6('0x27')][_0x03a6('0x70')]=_0x03a6('0x30');respondWithRpcPromise(_0x03a6('0x6a'),_0x03a6('0x6a'),{'event':'rejectmessage','message':_0x28f383[_0x03a6('0x27')]},client9002);return _0x1cd74d;}return null;})[_0x03a6('0x1f')](respondWithResult(_0xa722a5,null))['catch'](handleError(_0xa722a5,null));};exports['create']=function(_0x5ae6d9,_0x5d2183){var _0x55ca78;return db['FaxMessage']['create'](_0x5ae6d9[_0x03a6('0x54')],{})['then'](function(_0x5f2180){_0x55ca78=_0x5f2180;return db['CmContact'][_0x03a6('0x71')]({'where':{'id':_0x55ca78['ContactId']}});})['then'](function(_0x525d13){if(_[_0x03a6('0x61')](_0x525d13)){return;}else{_0x55ca78[_0x03a6('0x57')]=_0x525d13['fax'];return db[_0x03a6('0x72')]['findOne']({'where':{'id':_0x55ca78[_0x03a6('0x73')]}});}})[_0x03a6('0x1f')](function(_0x10a686){return respondWithRpcPromise(_0x03a6('0x74'),_0x03a6('0x74'),{'FaxAccountId':_['isNil'](_0x5ae6d9['body'])?undefined:_0x5ae6d9[_0x03a6('0x54')]['FaxAccountId'],'path':_[_0x03a6('0x61')](_0x10a686)?undefined:util['format'](_0x03a6('0x75'),_0x10a686['basename']),'fax':_[_0x03a6('0x61')](_0x55ca78['fax'])?undefined:_0x55ca78[_0x03a6('0x57')],'AttachmentId':_0x55ca78[_0x03a6('0x73')]},client9002);})[_0x03a6('0x1f')](respondWithResult(_0x5d2183,0xc9))['catch'](handleError(_0x5d2183,null));};exports[_0x03a6('0x76')]=function(_0x3514fc,_0x48c6cb){var _0x2dce5f=path['join'](config[_0x03a6('0x77')],_0x03a6('0x78'),'files',_0x03a6('0x79'));return db['FaxMessage'][_0x03a6('0x53')]({'where':{'id':_0x3514fc['params']['id']},'include':[{'model':db['Attachment'],'as':'Attachment'}]})['then'](handleEntityNotFound(_0x48c6cb,null))[_0x03a6('0x1f')](function(_0x11eef8){if(_0x11eef8){return _0x48c6cb[_0x03a6('0x76')](path[_0x03a6('0x7a')](_0x2dce5f,_0x11eef8[_0x03a6('0x72')][_0x03a6('0x7b')]));}})['catch'](handleError(_0x48c6cb,null));};