ef1cb7eece498d24840c56c1dc7c63f5fbc25295
[motion2.git] / server / api / faxInteraction / faxInteraction.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 _0x1925=['unlinkSync','zip-dir','moment','util','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./faxInteraction.socket','register','sendStatus','status','json','offset','undefined','count','limit','then','destroy','end','name','send','index','FaxInteraction','rawAttributes','type','getOptions','findAll','fax','user','catch','show','keys','query','intersection','model','attributes','fields','length','includeAll','merge','find','create','body','update','params','describe','FaxMessage','addMessage','ids','findOne','filters','hasOwnProperty','sort','where','pick','FaxInteractionId','map','filter','$gte','split','format','options','include','addTags','setTags','omit','spread','Tag','color','emit','faxInteractionTags:save','removeTags','download','unix','toString','join','root','server','files','attachments','transcript-%d-%s.zip','push','Attachment','Messages','createdAt','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','err'];(function(_0x3ca27f,_0x4552b8){var _0x313cdb=function(_0xcf2b12){while(--_0xcf2b12){_0x3ca27f['push'](_0x3ca27f['shift']());}};_0x313cdb(++_0x4552b8);}(_0x1925,0x12d));var _0x5192=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0x1925[_0x387777];return _0x3f84c0;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0x5192('0x0'));var moment=require(_0x5192('0x1'));var BPromise=require('bluebird');var util=require(_0x5192('0x2'));var path=require('path');var fs=require('fs');var _=require(_0x5192('0x3'));var Redis=require('ioredis');var interaction=require('../../components/interaction/service');var qs=require(_0x5192('0x4'));var logger=require(_0x5192('0x5'))(_0x5192('0x6'));var config=require(_0x5192('0x7'));var db=require(_0x5192('0x8'))['db'];config[_0x5192('0x9')]=_[_0x5192('0xa')](config[_0x5192('0x9')],{'host':_0x5192('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x5192('0xc'))[_0x5192('0xd')](socket);function respondWithStatusCode(_0x393054,_0x556dc6){_0x556dc6=_0x556dc6||0xcc;return function(_0x184396){if(_0x184396){return _0x393054[_0x5192('0xe')](_0x556dc6);}return _0x393054[_0x5192('0xf')](_0x556dc6)['end']();};}function respondWithResult(_0x30c0a4,_0x27b11e){_0x27b11e=_0x27b11e||0xc8;return function(_0x3377c4){if(_0x3377c4){return _0x30c0a4['status'](_0x27b11e)[_0x5192('0x10')](_0x3377c4);}};}function respondWithFilteredResult(_0x16b966,_0x21618b){return function(_0x37bc8d){if(_0x37bc8d){var _0x462c4b=typeof _0x21618b[_0x5192('0x11')]===_0x5192('0x12')&&typeof _0x21618b['limit']===_0x5192('0x12');var _0x1a1937=_0x37bc8d['count'];var _0xa4394f=_0x462c4b?0x0:_0x21618b['offset'];var _0x24ec41=_0x462c4b?_0x37bc8d[_0x5192('0x13')]:_0x21618b[_0x5192('0x11')]+_0x21618b[_0x5192('0x14')];var _0x125476;if(_0x24ec41>=_0x1a1937){_0x24ec41=_0x1a1937;_0x125476=0xc8;}else{_0x125476=0xce;}_0x16b966[_0x5192('0xf')](_0x125476);return _0x16b966['set']('Content-Range',_0xa4394f+'-'+_0x24ec41+'/'+_0x1a1937)[_0x5192('0x10')](_0x37bc8d);}return null;};}function saveUpdates(_0x30e9a0){return function(_0x115dac){if(_0x115dac){return _0x115dac['update'](_0x30e9a0)[_0x5192('0x15')](function(_0x45ac8b){return _0x45ac8b;});}return null;};}function removeEntity(_0x42a2ff){return function(_0x41046b){if(_0x41046b){return _0x41046b[_0x5192('0x16')]()[_0x5192('0x15')](function(){_0x42a2ff[_0x5192('0xf')](0xcc)[_0x5192('0x17')]();});}};}function handleEntityNotFound(_0x2b8dc4){return function(_0x3288f1){if(!_0x3288f1){_0x2b8dc4['sendStatus'](0x194);}return _0x3288f1;};}function handleError(_0x543c0c,_0x1aa3a9){_0x1aa3a9=_0x1aa3a9||0x1f4;return function(_0x45a7d7){logger['error'](_0x45a7d7['stack']);if(_0x45a7d7['name']){delete _0x45a7d7[_0x5192('0x18')];}_0x543c0c[_0x5192('0xf')](_0x1aa3a9)[_0x5192('0x19')](_0x45a7d7);};}exports[_0x5192('0x1a')]=function(_0x13d641,_0x332e6a){var _0x7e064f={};var _0x13a430=_['map'](db[_0x5192('0x1b')][_0x5192('0x1c')],function(_0x3830a5){return{'name':_0x3830a5['fieldName'],'type':_0x3830a5[_0x5192('0x1d')]['key']};});_0x7e064f=qs[_0x5192('0x1e')](_0x13a430,_0x13d641);return interaction[_0x5192('0x1f')](_0x5192('0x20'),_0x13d641['query'],_0x13d641[_0x5192('0x21')],_0x7e064f,_0x13a430)[_0x5192('0x15')](respondWithFilteredResult(_0x332e6a,_0x7e064f))[_0x5192('0x22')](handleError(_0x332e6a,null));};exports[_0x5192('0x23')]=function(_0x9a690c,_0x270a78){var _0x275549={'raw':![],'where':{'id':_0x9a690c['params']['id']}},_0x10cd81={};_0x10cd81['model']=_[_0x5192('0x24')](db['FaxInteraction'][_0x5192('0x1c')]);_0x10cd81[_0x5192('0x25')]=_[_0x5192('0x24')](_0x9a690c[_0x5192('0x25')]);_0x10cd81['filters']=_[_0x5192('0x26')](_0x10cd81[_0x5192('0x27')],_0x10cd81[_0x5192('0x25')]);_0x275549[_0x5192('0x28')]=_['intersection'](_0x10cd81[_0x5192('0x27')],qs[_0x5192('0x29')](_0x9a690c[_0x5192('0x25')][_0x5192('0x29')]));_0x275549[_0x5192('0x28')]=_0x275549['attributes'][_0x5192('0x2a')]?_0x275549[_0x5192('0x28')]:_0x10cd81[_0x5192('0x27')];if(_0x9a690c['query'][_0x5192('0x2b')]){_0x275549['include']=[{'all':!![]}];}_0x275549=_[_0x5192('0x2c')]({},_0x275549,_0x9a690c['options']);return db[_0x5192('0x1b')][_0x5192('0x2d')](_0x275549)[_0x5192('0x15')](handleEntityNotFound(_0x270a78,null))[_0x5192('0x15')](respondWithResult(_0x270a78,null))['catch'](handleError(_0x270a78,null));};exports[_0x5192('0x2e')]=function(_0x444513,_0x22e506){return db['FaxInteraction'][_0x5192('0x2e')](_0x444513[_0x5192('0x2f')],{})['then'](respondWithResult(_0x22e506,0xc9))['catch'](handleError(_0x22e506,null));};exports[_0x5192('0x30')]=function(_0xf22a0e,_0x4e3f8a){if(_0xf22a0e['body']['id']){delete _0xf22a0e[_0x5192('0x2f')]['id'];}return db[_0x5192('0x1b')][_0x5192('0x2d')]({'where':{'id':_0xf22a0e[_0x5192('0x31')]['id']}})['then'](handleEntityNotFound(_0x4e3f8a,null))[_0x5192('0x15')](saveUpdates(_0xf22a0e[_0x5192('0x2f')],null))[_0x5192('0x15')](respondWithResult(_0x4e3f8a,null))[_0x5192('0x22')](handleError(_0x4e3f8a,null));};exports['destroy']=function(_0x9b6f62,_0x1ec1fb){return db[_0x5192('0x1b')]['find']({'where':{'id':_0x9b6f62[_0x5192('0x31')]['id']}})[_0x5192('0x15')](handleEntityNotFound(_0x1ec1fb,null))[_0x5192('0x15')](removeEntity(_0x1ec1fb,null))[_0x5192('0x22')](handleError(_0x1ec1fb,null));};exports['describe']=function(_0x1aa7d7,_0x5d23bd){return db[_0x5192('0x1b')][_0x5192('0x32')]()[_0x5192('0x15')](respondWithResult(_0x5d23bd,null))[_0x5192('0x22')](handleError(_0x5d23bd,null));};exports['addMessage']=function(_0x247afe,_0x12defd){return db[_0x5192('0x33')][_0x5192('0x2d')]({'where':{'id':_0x247afe[_0x5192('0x31')]['id']}})[_0x5192('0x15')](handleEntityNotFound(_0x12defd,null))[_0x5192('0x15')](function(_0x12c7ea){if(_0x12c7ea){return _0x12c7ea[_0x5192('0x34')](_0x247afe[_0x5192('0x2f')][_0x5192('0x35')],_['omit'](_0x247afe[_0x5192('0x2f')],[_0x5192('0x35'),'id'])||{});}})['then'](respondWithResult(_0x12defd,null))[_0x5192('0x22')](handleError(_0x12defd,null));};exports['getMessages']=function(_0x10733a,_0x53d3d5){var _0x1f42c8={'raw':![],'where':{}};var _0x5f2f26={};var _0x42ac50={'count':0x0,'rows':[]};return db[_0x5192('0x1b')][_0x5192('0x36')]({'where':{'id':_0x10733a[_0x5192('0x31')]['id']}})[_0x5192('0x15')](handleEntityNotFound(_0x53d3d5,null))[_0x5192('0x15')](function(_0x3a09c8){if(_0x3a09c8){_0x5f2f26['model']=_['keys'](db['FaxMessage'][_0x5192('0x1c')]);_0x5f2f26[_0x5192('0x25')]=_[_0x5192('0x24')](_0x10733a[_0x5192('0x25')]);_0x5f2f26[_0x5192('0x37')]=_[_0x5192('0x26')](_0x5f2f26['model'],_0x5f2f26[_0x5192('0x25')]);_0x1f42c8[_0x5192('0x28')]=_[_0x5192('0x26')](_0x5f2f26[_0x5192('0x27')],qs[_0x5192('0x29')](_0x10733a[_0x5192('0x25')][_0x5192('0x29')]));_0x1f42c8[_0x5192('0x28')]=_0x1f42c8[_0x5192('0x28')][_0x5192('0x2a')]?_0x1f42c8[_0x5192('0x28')]:_0x5f2f26['model'];if(!_0x10733a['query'][_0x5192('0x38')]('nolimit')){_0x1f42c8[_0x5192('0x14')]=qs[_0x5192('0x14')](_0x10733a[_0x5192('0x25')]['limit']);_0x1f42c8[_0x5192('0x11')]=qs[_0x5192('0x11')](_0x10733a['query'][_0x5192('0x11')]);}_0x1f42c8['order']=qs[_0x5192('0x39')](_0x10733a[_0x5192('0x25')]['sort']);_0x1f42c8[_0x5192('0x3a')]=qs[_0x5192('0x37')](_[_0x5192('0x3b')](_0x10733a[_0x5192('0x25')],_0x5f2f26[_0x5192('0x37')]));_0x1f42c8['where'][_0x5192('0x3c')]=_0x3a09c8['id'];if(_0x10733a[_0x5192('0x25')]['filter']){_0x1f42c8[_0x5192('0x3a')]=_['merge'](_0x1f42c8[_0x5192('0x3a')],{'$or':_[_0x5192('0x3d')](_0x1f42c8[_0x5192('0x28')],function(_0x273f5c){var _0x4f2ace={};_0x4f2ace[_0x273f5c]={'$like':'%'+_0x10733a[_0x5192('0x25')][_0x5192('0x3e')]+'%'};return _0x4f2ace;})});}if(_0x10733a[_0x5192('0x25')][_0x5192('0x3f')]){var _0x1d4ef0=_0x10733a['query'][_0x5192('0x3f')][_0x5192('0x40')](',');var _0x525a1e={};_0x525a1e[_0x1d4ef0[0x0]]={'$gte':moment(_0x1d4ef0[0x1])[_0x5192('0x41')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1f42c8[_0x5192('0x3a')]=_['merge'](_0x1f42c8['where'],_0x525a1e);}_0x1f42c8=_[_0x5192('0x2c')]({},_0x1f42c8,_0x10733a[_0x5192('0x42')]);return db[_0x5192('0x33')][_0x5192('0x13')]({'where':_0x1f42c8[_0x5192('0x3a')]})[_0x5192('0x15')](function(_0x2fbc7b){_0x42ac50[_0x5192('0x13')]=_0x2fbc7b;if(_0x10733a['query'][_0x5192('0x2b')]){_0x1f42c8[_0x5192('0x43')]=[{'all':!![]}];}return db[_0x5192('0x33')]['findAll'](_0x1f42c8);})[_0x5192('0x15')](function(_0x1abde8){_0x42ac50['rows']=_0x1abde8;return _0x42ac50;});}})[_0x5192('0x15')](respondWithFilteredResult(_0x53d3d5,_0x1f42c8))[_0x5192('0x22')](handleError(_0x53d3d5,null));};exports[_0x5192('0x44')]=function(_0x543a4c,_0x545a25){return db[_0x5192('0x1b')][_0x5192('0x2d')]({'where':{'id':_0x543a4c[_0x5192('0x31')]['id']}})[_0x5192('0x15')](handleEntityNotFound(_0x545a25,null))['then'](function(_0x518ed0){if(_0x518ed0){return _0x518ed0[_0x5192('0x45')](_0x543a4c['body'][_0x5192('0x35')],_[_0x5192('0x46')](_0x543a4c[_0x5192('0x2f')],['ids','id'])||{})[_0x5192('0x47')](function(){return db[_0x5192('0x48')][_0x5192('0x1f')]({'attributes':['id',_0x5192('0x18'),_0x5192('0x49')],'where':{'id':_0x543a4c[_0x5192('0x2f')][_0x5192('0x35')]}});})[_0x5192('0x15')](function(_0x38182b){socket[_0x5192('0x4a')](_0x5192('0x4b'),{'id':Number(_0x543a4c['params']['id']),'tags':_0x38182b||[]});return{'id':Number(_0x543a4c[_0x5192('0x31')]['id']),'tags':_0x38182b||[]};});}})[_0x5192('0x15')](respondWithResult(_0x545a25,null))[_0x5192('0x22')](handleError(_0x545a25,null));};exports[_0x5192('0x4c')]=function(_0x46d08b,_0x4b20e5){return db[_0x5192('0x1b')][_0x5192('0x2d')]({'where':{'id':_0x46d08b['params']['id']}})[_0x5192('0x15')](handleEntityNotFound(_0x4b20e5,null))[_0x5192('0x15')](function(_0x895a37){if(_0x895a37){return _0x895a37[_0x5192('0x4c')](_0x46d08b[_0x5192('0x25')][_0x5192('0x35')]);}})[_0x5192('0x15')](respondWithStatusCode(_0x4b20e5,null))['catch'](handleError(_0x4b20e5,null));};exports[_0x5192('0x4d')]=function(_0x317fe9,_0x9c1a13){var _0x1b9fd6=moment()[_0x5192('0x4e')]()[_0x5192('0x4f')]();var _0x47f7e9=path[_0x5192('0x50')](config[_0x5192('0x51')],_0x5192('0x52'),_0x5192('0x53'),'tmp');var _0x5b2915=path[_0x5192('0x50')](config[_0x5192('0x51')],'server',_0x5192('0x53'),_0x5192('0x54'));var _0x42f24a=path['join'](_0x47f7e9,_0x1b9fd6);var _0x283948=util['format'](_0x5192('0x55'),_0x317fe9[_0x5192('0x31')]['id'],_0x1b9fd6);var _0x2b1dbf=path[_0x5192('0x50')](_0x47f7e9,_0x283948);var _0x200b84=[];_0x200b84[_0x5192('0x56')]({'model':db[_0x5192('0x57')],'as':_0x5192('0x57'),'raw':!![]});var _0x119fe0=[{'model':db[_0x5192('0x33')],'as':_0x5192('0x58'),'attributes':['id','body',_0x5192('0x59')],'include':_0x200b84}];return db[_0x5192('0x1b')][_0x5192('0x2d')]({'where':{'id':_0x317fe9['params']['id']},'include':_0x119fe0})[_0x5192('0x15')](handleEntityNotFound(_0x9c1a13,null))[_0x5192('0x15')](function(_0xd1ba47){if(_0xd1ba47&&_0xd1ba47['Messages']){var _0x2becd7=_0xd1ba47[_0x5192('0x5a')]({'plain':!![]});fs[_0x5192('0x5b')](_0x42f24a);for(var _0x44fee3=0x0;_0x44fee3<_0x2becd7[_0x5192('0x58')][_0x5192('0x2a')];_0x44fee3++){var _0x500b98=_0x2becd7[_0x5192('0x58')][_0x44fee3][_0x5192('0x57')];if(_0x500b98){var _0x1d4e97=path['join'](_0x5b2915,_0x500b98[_0x5192('0x5c')]);if(fs[_0x5192('0x5d')](_0x1d4e97)){fs[_0x5192('0x5e')](_0x1d4e97)[_0x5192('0x5f')](fs[_0x5192('0x60')](path['join'](_0x42f24a,_0x500b98[_0x5192('0x5c')])));}}}return BPromise[_0x5192('0x61')]()[_0x5192('0x15')](function(){return new BPromise(function(_0x4e372b,_0x3d1439){zipdir(_0x42f24a,{'saveTo':_0x2b1dbf},function(_0x2b80af,_0x52bc52){if(_0x2b80af)return _0x3d1439(_0x2b80af);return _0x4e372b(_0x52bc52);});})['then'](function(){return new BPromise(function(_0x1e9e6e,_0x575a77){rimraf(_0x42f24a,function(_0x45095d){if(_0x45095d)_0x575a77(_0x45095d);return _0x1e9e6e();});});})[_0x5192('0x15')](function(){return _0x9c1a13[_0x5192('0x4d')](_0x2b1dbf,_0x283948,function(_0x203256){if(_0x203256){console['log'](_0x5192('0x62'),_0x203256);}else{fs[_0x5192('0x63')](_0x2b1dbf);}});});});}else{return _0x9c1a13[_0x5192('0xe')](0xc8);}})[_0x5192('0x22')](handleError(_0x9c1a13,null));};