Built motion from commit da617fac.|2.6.6
[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 _0x36ff=['error','stack','name','send','index','map','FaxInteraction','rawAttributes','fieldName','type','key','getOptions','findAll','fax','user','show','params','model','keys','query','filters','intersection','attributes','fields','length','includeAll','merge','options','find','catch','create','update','body','describe','addMessage','FaxMessage','ids','getMessages','findOne','nolimit','order','sort','pick','where','FaxInteractionId','filter','$gte','format','YYYY-MM-DD\x20HH:mm:ss','include','setTags','omit','spread','Tag','color','faxInteractionTags:save','removeTags','unix','toString','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','Attachment','Messages','createdAt','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','download','unlinkSync','rimraf','zip-dir','bluebird','util','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','end','json','offset','undefined','count','limit','Content-Range','destroy','then','status','sendStatus'];(function(_0x51beba,_0x202d19){var _0x167ee0=function(_0x2d5b21){while(--_0x2d5b21){_0x51beba['push'](_0x51beba['shift']());}};_0x167ee0(++_0x202d19);}(_0x36ff,0xb5));var _0xf36f=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0x36ff[_0x5c351c];return _0x26f3b3;};'use strict';var rimraf=require(_0xf36f('0x0'));var zipdir=require(_0xf36f('0x1'));var moment=require('moment');var BPromise=require(_0xf36f('0x2'));var util=require(_0xf36f('0x3'));var path=require('path');var fs=require('fs');var _=require('lodash');var Redis=require(_0xf36f('0x4'));var interaction=require(_0xf36f('0x5'));var qs=require(_0xf36f('0x6'));var logger=require(_0xf36f('0x7'))(_0xf36f('0x8'));var config=require('../../config/environment');var db=require(_0xf36f('0x9'))['db'];config[_0xf36f('0xa')]=_[_0xf36f('0xb')](config[_0xf36f('0xa')],{'host':_0xf36f('0xc'),'port':0x18eb});var socket=require(_0xf36f('0xd'))(new Redis(config[_0xf36f('0xa')]));require('./faxInteraction.socket')['register'](socket);function respondWithStatusCode(_0x4e24d2,_0x579f58){_0x579f58=_0x579f58||0xcc;return function(_0x1d6c87){if(_0x1d6c87){return _0x4e24d2['sendStatus'](_0x579f58);}return _0x4e24d2['status'](_0x579f58)[_0xf36f('0xe')]();};}function respondWithResult(_0x2a29dc,_0x5584af){_0x5584af=_0x5584af||0xc8;return function(_0x2deabc){if(_0x2deabc){return _0x2a29dc['status'](_0x5584af)[_0xf36f('0xf')](_0x2deabc);}};}function respondWithFilteredResult(_0x253ad2,_0x8aac4b){return function(_0x26bc4){if(_0x26bc4){var _0x5e5533=typeof _0x8aac4b[_0xf36f('0x10')]===_0xf36f('0x11')&&typeof _0x8aac4b['limit']===_0xf36f('0x11');var _0x5828eb=_0x26bc4['count'];var _0x41bd31=_0x5e5533?0x0:_0x8aac4b['offset'];var _0x46e01f=_0x5e5533?_0x26bc4[_0xf36f('0x12')]:_0x8aac4b['offset']+_0x8aac4b[_0xf36f('0x13')];var _0x1d3abe;if(_0x46e01f>=_0x5828eb){_0x46e01f=_0x5828eb;_0x1d3abe=0xc8;}else{_0x1d3abe=0xce;}_0x253ad2['status'](_0x1d3abe);return _0x253ad2['set'](_0xf36f('0x14'),_0x41bd31+'-'+_0x46e01f+'/'+_0x5828eb)[_0xf36f('0xf')](_0x26bc4);}return null;};}function saveUpdates(_0x306d26){return function(_0x52d8c8){if(_0x52d8c8){return _0x52d8c8['update'](_0x306d26)['then'](function(_0x3d713e){return _0x3d713e;});}return null;};}function removeEntity(_0x4140eb){return function(_0x3b1b13){if(_0x3b1b13){return _0x3b1b13[_0xf36f('0x15')]()[_0xf36f('0x16')](function(){_0x4140eb[_0xf36f('0x17')](0xcc)[_0xf36f('0xe')]();});}};}function handleEntityNotFound(_0x410193){return function(_0x3d9992){if(!_0x3d9992){_0x410193[_0xf36f('0x18')](0x194);}return _0x3d9992;};}function handleError(_0x30f396,_0x2f928e){_0x2f928e=_0x2f928e||0x1f4;return function(_0x53a808){logger[_0xf36f('0x19')](_0x53a808[_0xf36f('0x1a')]);if(_0x53a808[_0xf36f('0x1b')]){delete _0x53a808['name'];}_0x30f396[_0xf36f('0x17')](_0x2f928e)[_0xf36f('0x1c')](_0x53a808);};}exports[_0xf36f('0x1d')]=function(_0x4617e7,_0x4326da){var _0x273d67={};var _0x17e6bb=_[_0xf36f('0x1e')](db[_0xf36f('0x1f')][_0xf36f('0x20')],function(_0x4949be){return{'name':_0x4949be[_0xf36f('0x21')],'type':_0x4949be[_0xf36f('0x22')][_0xf36f('0x23')]};});_0x273d67=qs[_0xf36f('0x24')](_0x17e6bb,_0x4617e7);return interaction[_0xf36f('0x25')](_0xf36f('0x26'),_0x4617e7['query'],_0x4617e7[_0xf36f('0x27')],_0x273d67,_0x17e6bb)[_0xf36f('0x16')](respondWithFilteredResult(_0x4326da,_0x273d67))['catch'](handleError(_0x4326da,null));};exports[_0xf36f('0x28')]=function(_0x488e05,_0x312078){var _0x59af2d={'raw':![],'where':{'id':_0x488e05[_0xf36f('0x29')]['id']}},_0x5e9389={};_0x5e9389[_0xf36f('0x2a')]=_[_0xf36f('0x2b')](db[_0xf36f('0x1f')]['rawAttributes']);_0x5e9389['query']=_[_0xf36f('0x2b')](_0x488e05[_0xf36f('0x2c')]);_0x5e9389[_0xf36f('0x2d')]=_[_0xf36f('0x2e')](_0x5e9389['model'],_0x5e9389[_0xf36f('0x2c')]);_0x59af2d[_0xf36f('0x2f')]=_[_0xf36f('0x2e')](_0x5e9389[_0xf36f('0x2a')],qs[_0xf36f('0x30')](_0x488e05[_0xf36f('0x2c')][_0xf36f('0x30')]));_0x59af2d[_0xf36f('0x2f')]=_0x59af2d[_0xf36f('0x2f')][_0xf36f('0x31')]?_0x59af2d['attributes']:_0x5e9389[_0xf36f('0x2a')];if(_0x488e05[_0xf36f('0x2c')][_0xf36f('0x32')]){_0x59af2d['include']=[{'all':!![]}];}_0x59af2d=_[_0xf36f('0x33')]({},_0x59af2d,_0x488e05[_0xf36f('0x34')]);return db['FaxInteraction'][_0xf36f('0x35')](_0x59af2d)[_0xf36f('0x16')](handleEntityNotFound(_0x312078,null))['then'](respondWithResult(_0x312078,null))[_0xf36f('0x36')](handleError(_0x312078,null));};exports[_0xf36f('0x37')]=function(_0xabb1af,_0x5c17c0){return db['FaxInteraction'][_0xf36f('0x37')](_0xabb1af['body'],{})[_0xf36f('0x16')](respondWithResult(_0x5c17c0,0xc9))[_0xf36f('0x36')](handleError(_0x5c17c0,null));};exports[_0xf36f('0x38')]=function(_0x1028f8,_0xdc67ed){if(_0x1028f8[_0xf36f('0x39')]['id']){delete _0x1028f8[_0xf36f('0x39')]['id'];}return db[_0xf36f('0x1f')]['find']({'where':{'id':_0x1028f8[_0xf36f('0x29')]['id']}})[_0xf36f('0x16')](handleEntityNotFound(_0xdc67ed,null))[_0xf36f('0x16')](saveUpdates(_0x1028f8[_0xf36f('0x39')],null))[_0xf36f('0x16')](respondWithResult(_0xdc67ed,null))[_0xf36f('0x36')](handleError(_0xdc67ed,null));};exports[_0xf36f('0x15')]=function(_0x29c64c,_0x5d3668){return db['FaxInteraction'][_0xf36f('0x35')]({'where':{'id':_0x29c64c['params']['id']}})[_0xf36f('0x16')](handleEntityNotFound(_0x5d3668,null))['then'](removeEntity(_0x5d3668,null))['catch'](handleError(_0x5d3668,null));};exports[_0xf36f('0x3a')]=function(_0x986a7d,_0x4226b3){return db[_0xf36f('0x1f')][_0xf36f('0x3a')]()['then'](respondWithResult(_0x4226b3,null))[_0xf36f('0x36')](handleError(_0x4226b3,null));};exports[_0xf36f('0x3b')]=function(_0x12a7b6,_0x584f8a){return db[_0xf36f('0x3c')][_0xf36f('0x35')]({'where':{'id':_0x12a7b6['params']['id']}})['then'](handleEntityNotFound(_0x584f8a,null))[_0xf36f('0x16')](function(_0x150cdb){if(_0x150cdb){return _0x150cdb['addMessage'](_0x12a7b6[_0xf36f('0x39')][_0xf36f('0x3d')],_['omit'](_0x12a7b6[_0xf36f('0x39')],[_0xf36f('0x3d'),'id'])||{});}})[_0xf36f('0x16')](respondWithResult(_0x584f8a,null))[_0xf36f('0x36')](handleError(_0x584f8a,null));};exports[_0xf36f('0x3e')]=function(_0x5119b3,_0x260be0){var _0x257c91={'raw':![],'where':{}};var _0x2b8032={};var _0x469f04={'count':0x0,'rows':[]};return db[_0xf36f('0x1f')][_0xf36f('0x3f')]({'where':{'id':_0x5119b3[_0xf36f('0x29')]['id']}})[_0xf36f('0x16')](handleEntityNotFound(_0x260be0,null))[_0xf36f('0x16')](function(_0x13a64a){if(_0x13a64a){_0x2b8032[_0xf36f('0x2a')]=_[_0xf36f('0x2b')](db[_0xf36f('0x3c')][_0xf36f('0x20')]);_0x2b8032[_0xf36f('0x2c')]=_[_0xf36f('0x2b')](_0x5119b3['query']);_0x2b8032[_0xf36f('0x2d')]=_[_0xf36f('0x2e')](_0x2b8032[_0xf36f('0x2a')],_0x2b8032[_0xf36f('0x2c')]);_0x257c91[_0xf36f('0x2f')]=_[_0xf36f('0x2e')](_0x2b8032[_0xf36f('0x2a')],qs[_0xf36f('0x30')](_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x30')]));_0x257c91[_0xf36f('0x2f')]=_0x257c91[_0xf36f('0x2f')]['length']?_0x257c91[_0xf36f('0x2f')]:_0x2b8032[_0xf36f('0x2a')];if(!_0x5119b3[_0xf36f('0x2c')]['hasOwnProperty'](_0xf36f('0x40'))){_0x257c91[_0xf36f('0x13')]=qs[_0xf36f('0x13')](_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x13')]);_0x257c91['offset']=qs['offset'](_0x5119b3[_0xf36f('0x2c')]['offset']);}_0x257c91[_0xf36f('0x41')]=qs[_0xf36f('0x42')](_0x5119b3['query'][_0xf36f('0x42')]);_0x257c91['where']=qs['filters'](_[_0xf36f('0x43')](_0x5119b3['query'],_0x2b8032['filters']));_0x257c91[_0xf36f('0x44')][_0xf36f('0x45')]=_0x13a64a['id'];if(_0x5119b3[_0xf36f('0x2c')]['filter']){_0x257c91['where']=_[_0xf36f('0x33')](_0x257c91[_0xf36f('0x44')],{'$or':_[_0xf36f('0x1e')](_0x257c91[_0xf36f('0x2f')],function(_0x2112f3){var _0x5d9a41={};_0x5d9a41[_0x2112f3]={'$like':'%'+_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x46')]+'%'};return _0x5d9a41;})});}if(_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x47')]){var _0x3d19cd=_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x47')]['split'](',');var _0x5369d7={};_0x5369d7[_0x3d19cd[0x0]]={'$gte':moment(_0x3d19cd[0x1])[_0xf36f('0x48')](_0xf36f('0x49'))};_0x257c91['where']=_[_0xf36f('0x33')](_0x257c91[_0xf36f('0x44')],_0x5369d7);}_0x257c91=_[_0xf36f('0x33')]({},_0x257c91,_0x5119b3[_0xf36f('0x34')]);return db[_0xf36f('0x3c')][_0xf36f('0x12')]({'where':_0x257c91['where']})[_0xf36f('0x16')](function(_0x2a4f32){_0x469f04[_0xf36f('0x12')]=_0x2a4f32;if(_0x5119b3[_0xf36f('0x2c')][_0xf36f('0x32')]){_0x257c91[_0xf36f('0x4a')]=[{'all':!![]}];}return db[_0xf36f('0x3c')][_0xf36f('0x25')](_0x257c91);})[_0xf36f('0x16')](function(_0x4e75ee){_0x469f04['rows']=_0x4e75ee;return _0x469f04;});}})[_0xf36f('0x16')](respondWithFilteredResult(_0x260be0,_0x257c91))[_0xf36f('0x36')](handleError(_0x260be0,null));};exports['addTags']=function(_0x5c110f,_0x2d1ed5){return db['FaxInteraction'][_0xf36f('0x35')]({'where':{'id':_0x5c110f['params']['id']}})['then'](handleEntityNotFound(_0x2d1ed5,null))[_0xf36f('0x16')](function(_0x454422){if(_0x454422){return _0x454422[_0xf36f('0x4b')](_0x5c110f['body'][_0xf36f('0x3d')],_[_0xf36f('0x4c')](_0x5c110f[_0xf36f('0x39')],[_0xf36f('0x3d'),'id'])||{})[_0xf36f('0x4d')](function(){return db[_0xf36f('0x4e')][_0xf36f('0x25')]({'attributes':['id','name',_0xf36f('0x4f')],'where':{'id':_0x5c110f[_0xf36f('0x39')]['ids']}});})[_0xf36f('0x16')](function(_0x35facc){socket['emit'](_0xf36f('0x50'),{'id':Number(_0x5c110f[_0xf36f('0x29')]['id']),'tags':_0x35facc||[]});return{'id':Number(_0x5c110f['params']['id']),'tags':_0x35facc||[]};});}})[_0xf36f('0x16')](respondWithResult(_0x2d1ed5,null))['catch'](handleError(_0x2d1ed5,null));};exports[_0xf36f('0x51')]=function(_0x45603d,_0x54b2d2){return db['FaxInteraction'][_0xf36f('0x35')]({'where':{'id':_0x45603d[_0xf36f('0x29')]['id']}})['then'](handleEntityNotFound(_0x54b2d2,null))[_0xf36f('0x16')](function(_0x16e344){if(_0x16e344){return _0x16e344[_0xf36f('0x51')](_0x45603d[_0xf36f('0x2c')][_0xf36f('0x3d')]);}})['then'](respondWithStatusCode(_0x54b2d2,null))[_0xf36f('0x36')](handleError(_0x54b2d2,null));};exports['download']=function(_0x3aa016,_0x590e02){var _0x5cb637=moment()[_0xf36f('0x52')]()[_0xf36f('0x53')]();var _0x363517=path[_0xf36f('0x54')](config[_0xf36f('0x55')],_0xf36f('0x56'),_0xf36f('0x57'),_0xf36f('0x58'));var _0x4a1c20=path[_0xf36f('0x54')](config[_0xf36f('0x55')],_0xf36f('0x56'),_0xf36f('0x57'),_0xf36f('0x59'));var _0x8595da=path[_0xf36f('0x54')](_0x363517,_0x5cb637);var _0x154073=util[_0xf36f('0x48')](_0xf36f('0x5a'),_0x3aa016[_0xf36f('0x29')]['id'],_0x5cb637);var _0x225a47=path[_0xf36f('0x54')](_0x363517,_0x154073);var _0x408ceb=[];_0x408ceb['push']({'model':db['Attachment'],'as':_0xf36f('0x5b'),'raw':!![]});var _0x53bfb8=[{'model':db[_0xf36f('0x3c')],'as':_0xf36f('0x5c'),'attributes':['id',_0xf36f('0x39'),_0xf36f('0x5d')],'include':_0x408ceb}];return db['FaxInteraction'][_0xf36f('0x35')]({'where':{'id':_0x3aa016[_0xf36f('0x29')]['id']},'include':_0x53bfb8})[_0xf36f('0x16')](handleEntityNotFound(_0x590e02,null))[_0xf36f('0x16')](function(_0x2abf19){if(_0x2abf19&&_0x2abf19['Messages']){var _0x59bc9d=_0x2abf19[_0xf36f('0x5e')]({'plain':!![]});fs[_0xf36f('0x5f')](_0x8595da);for(var _0x13e082=0x0;_0x13e082<_0x59bc9d[_0xf36f('0x5c')]['length'];_0x13e082++){var _0x4e5dd5=_0x59bc9d['Messages'][_0x13e082][_0xf36f('0x5b')];if(_0x4e5dd5){var _0x3d3d04=path[_0xf36f('0x54')](_0x4a1c20,_0x4e5dd5[_0xf36f('0x60')]);if(fs[_0xf36f('0x61')](_0x3d3d04)){fs[_0xf36f('0x62')](_0x3d3d04)[_0xf36f('0x63')](fs[_0xf36f('0x64')](path[_0xf36f('0x54')](_0x8595da,_0x4e5dd5[_0xf36f('0x60')])));}}}return BPromise['resolve']()[_0xf36f('0x16')](function(){return new BPromise(function(_0x13aced,_0x1b7f5f){zipdir(_0x8595da,{'saveTo':_0x225a47},function(_0x4b3c88,_0x291ad1){if(_0x4b3c88)return _0x1b7f5f(_0x4b3c88);return _0x13aced(_0x291ad1);});})[_0xf36f('0x16')](function(){return new BPromise(function(_0x23595e,_0x2159a0){rimraf(_0x8595da,function(_0x23ae34){if(_0x23ae34)_0x2159a0(_0x23ae34);return _0x23595e();});});})[_0xf36f('0x16')](function(){return _0x590e02[_0xf36f('0x65')](_0x225a47,_0x154073,function(_0x100a37){if(_0x100a37){console['log']('err',_0x100a37);}else{fs[_0xf36f('0x66')](_0x225a47);}});});});}else{return _0x590e02[_0xf36f('0x18')](0xc8);}})[_0xf36f('0x36')](handleError(_0x590e02,null));};