Built motion from commit 449495f6.|2.6.27
[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 _0x98ca=['Messages','createdAt','mkdirSync','basename','existsSync','pipe','createWriteStream','download','log','unlinkSync','rimraf','moment','util','path','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','./faxInteraction.socket','register','status','json','offset','undefined','limit','count','set','Content-Range','then','destroy','end','sendStatus','stack','name','send','index','map','FaxInteraction','rawAttributes','fieldName','type','key','getOptions','findAll','query','show','params','keys','filters','intersection','model','attributes','fields','find','catch','create','body','update','describe','addMessage','FaxMessage','ids','getMessages','length','hasOwnProperty','nolimit','order','sort','where','FaxInteractionId','filter','$gte','split','format','merge','options','includeAll','include','rows','addTags','setTags','omit','spread','Tag','color','faxInteractionTags:save','removeTags','toString','root','files','tmp','join','server','attachments','transcript-%d-%s.zip','push','Attachment'];(function(_0x5c5c52,_0x36d085){var _0x4229ff=function(_0x3806df){while(--_0x3806df){_0x5c5c52['push'](_0x5c5c52['shift']());}};_0x4229ff(++_0x36d085);}(_0x98ca,0xd4));var _0xa98c=function(_0x328a69,_0x484e58){_0x328a69=_0x328a69-0x0;var _0x3b91cf=_0x98ca[_0x328a69];return _0x3b91cf;};'use strict';var rimraf=require(_0xa98c('0x0'));var zipdir=require('zip-dir');var moment=require(_0xa98c('0x1'));var BPromise=require('bluebird');var util=require(_0xa98c('0x2'));var path=require(_0xa98c('0x3'));var fs=require('fs');var _=require('lodash');var Redis=require(_0xa98c('0x4'));var interaction=require(_0xa98c('0x5'));var qs=require(_0xa98c('0x6'));var logger=require(_0xa98c('0x7'))('api');var config=require(_0xa98c('0x8'));var db=require(_0xa98c('0x9'))['db'];config[_0xa98c('0xa')]=_[_0xa98c('0xb')](config[_0xa98c('0xa')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa98c('0xa')]));require(_0xa98c('0xc'))[_0xa98c('0xd')](socket);function respondWithStatusCode(_0x783189,_0x5b75e1){_0x5b75e1=_0x5b75e1||0xcc;return function(_0x552bc9){if(_0x552bc9){return _0x783189['sendStatus'](_0x5b75e1);}return _0x783189[_0xa98c('0xe')](_0x5b75e1)['end']();};}function respondWithResult(_0xba37ce,_0xded0ea){_0xded0ea=_0xded0ea||0xc8;return function(_0x5dd0c7){if(_0x5dd0c7){return _0xba37ce[_0xa98c('0xe')](_0xded0ea)[_0xa98c('0xf')](_0x5dd0c7);}};}function respondWithFilteredResult(_0x553974,_0x9fe4ce){return function(_0x535c0b){if(_0x535c0b){var _0x39aa32=typeof _0x9fe4ce[_0xa98c('0x10')]===_0xa98c('0x11')&&typeof _0x9fe4ce[_0xa98c('0x12')]===_0xa98c('0x11');var _0x399835=_0x535c0b[_0xa98c('0x13')];var _0x30eb78=_0x39aa32?0x0:_0x9fe4ce[_0xa98c('0x10')];var _0x129344=_0x39aa32?_0x535c0b[_0xa98c('0x13')]:_0x9fe4ce[_0xa98c('0x10')]+_0x9fe4ce[_0xa98c('0x12')];var _0x2e0288;if(_0x129344>=_0x399835){_0x129344=_0x399835;_0x2e0288=0xc8;}else{_0x2e0288=0xce;}_0x553974['status'](_0x2e0288);return _0x553974[_0xa98c('0x14')](_0xa98c('0x15'),_0x30eb78+'-'+_0x129344+'/'+_0x399835)[_0xa98c('0xf')](_0x535c0b);}return null;};}function saveUpdates(_0x4b39b5){return function(_0xc3e9da){if(_0xc3e9da){return _0xc3e9da['update'](_0x4b39b5)[_0xa98c('0x16')](function(_0x7da8cc){return _0x7da8cc;});}return null;};}function removeEntity(_0x243eb1){return function(_0x48edb0){if(_0x48edb0){return _0x48edb0[_0xa98c('0x17')]()['then'](function(){_0x243eb1[_0xa98c('0xe')](0xcc)[_0xa98c('0x18')]();});}};}function handleEntityNotFound(_0x5769d8){return function(_0x4191ae){if(!_0x4191ae){_0x5769d8[_0xa98c('0x19')](0x194);}return _0x4191ae;};}function handleError(_0x9b09fd,_0x28cc07){_0x28cc07=_0x28cc07||0x1f4;return function(_0x284543){logger['error'](_0x284543[_0xa98c('0x1a')]);if(_0x284543[_0xa98c('0x1b')]){delete _0x284543['name'];}_0x9b09fd[_0xa98c('0xe')](_0x28cc07)[_0xa98c('0x1c')](_0x284543);};}exports[_0xa98c('0x1d')]=function(_0x486e43,_0x908cf9){var _0x21b682={};var _0x5be980=_[_0xa98c('0x1e')](db[_0xa98c('0x1f')][_0xa98c('0x20')],function(_0xfb2fc1){return{'name':_0xfb2fc1[_0xa98c('0x21')],'type':_0xfb2fc1[_0xa98c('0x22')][_0xa98c('0x23')]};});_0x21b682=qs[_0xa98c('0x24')](_0x5be980,_0x486e43);return interaction[_0xa98c('0x25')]('fax',_0x486e43[_0xa98c('0x26')],_0x486e43['user'],_0x21b682,_0x5be980)['then'](respondWithFilteredResult(_0x908cf9,_0x21b682))['catch'](handleError(_0x908cf9,null));};exports[_0xa98c('0x27')]=function(_0x428b9b,_0x51628d){var _0x4c6a0e={'raw':![],'where':{'id':_0x428b9b[_0xa98c('0x28')]['id']}},_0x5b2f7c={};_0x5b2f7c['model']=_[_0xa98c('0x29')](db[_0xa98c('0x1f')][_0xa98c('0x20')]);_0x5b2f7c[_0xa98c('0x26')]=_[_0xa98c('0x29')](_0x428b9b[_0xa98c('0x26')]);_0x5b2f7c[_0xa98c('0x2a')]=_[_0xa98c('0x2b')](_0x5b2f7c[_0xa98c('0x2c')],_0x5b2f7c[_0xa98c('0x26')]);_0x4c6a0e[_0xa98c('0x2d')]=_[_0xa98c('0x2b')](_0x5b2f7c[_0xa98c('0x2c')],qs[_0xa98c('0x2e')](_0x428b9b[_0xa98c('0x26')]['fields']));_0x4c6a0e['attributes']=_0x4c6a0e[_0xa98c('0x2d')]['length']?_0x4c6a0e[_0xa98c('0x2d')]:_0x5b2f7c[_0xa98c('0x2c')];if(_0x428b9b[_0xa98c('0x26')]['includeAll']){_0x4c6a0e['include']=[{'all':!![]}];}_0x4c6a0e=_['merge']({},_0x4c6a0e,_0x428b9b['options']);return db[_0xa98c('0x1f')][_0xa98c('0x2f')](_0x4c6a0e)[_0xa98c('0x16')](handleEntityNotFound(_0x51628d,null))['then'](respondWithResult(_0x51628d,null))[_0xa98c('0x30')](handleError(_0x51628d,null));};exports[_0xa98c('0x31')]=function(_0x12a20e,_0x19226b){return db[_0xa98c('0x1f')][_0xa98c('0x31')](_0x12a20e[_0xa98c('0x32')],{})[_0xa98c('0x16')](respondWithResult(_0x19226b,0xc9))[_0xa98c('0x30')](handleError(_0x19226b,null));};exports[_0xa98c('0x33')]=function(_0x51a90c,_0x150185){if(_0x51a90c[_0xa98c('0x32')]['id']){delete _0x51a90c[_0xa98c('0x32')]['id'];}return db[_0xa98c('0x1f')]['find']({'where':{'id':_0x51a90c['params']['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0x150185,null))['then'](saveUpdates(_0x51a90c[_0xa98c('0x32')],null))[_0xa98c('0x16')](respondWithResult(_0x150185,null))[_0xa98c('0x30')](handleError(_0x150185,null));};exports[_0xa98c('0x17')]=function(_0x57aa51,_0xd2521e){return db[_0xa98c('0x1f')][_0xa98c('0x2f')]({'where':{'id':_0x57aa51['params']['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0xd2521e,null))[_0xa98c('0x16')](removeEntity(_0xd2521e,null))[_0xa98c('0x30')](handleError(_0xd2521e,null));};exports[_0xa98c('0x34')]=function(_0x3ffb87,_0x52ebfb){return db[_0xa98c('0x1f')][_0xa98c('0x34')]()[_0xa98c('0x16')](respondWithResult(_0x52ebfb,null))[_0xa98c('0x30')](handleError(_0x52ebfb,null));};exports[_0xa98c('0x35')]=function(_0x208109,_0x182c84){return db[_0xa98c('0x36')][_0xa98c('0x2f')]({'where':{'id':_0x208109[_0xa98c('0x28')]['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0x182c84,null))[_0xa98c('0x16')](function(_0x92fe1a){if(_0x92fe1a){return _0x92fe1a[_0xa98c('0x35')](_0x208109[_0xa98c('0x32')]['ids'],_['omit'](_0x208109[_0xa98c('0x32')],[_0xa98c('0x37'),'id'])||{});}})[_0xa98c('0x16')](respondWithResult(_0x182c84,null))['catch'](handleError(_0x182c84,null));};exports[_0xa98c('0x38')]=function(_0x5b4fc6,_0x42c642){var _0x28be04={'raw':![],'where':{}};var _0x155c31={};var _0x38274b={'count':0x0,'rows':[]};return db[_0xa98c('0x1f')]['findOne']({'where':{'id':_0x5b4fc6['params']['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0x42c642,null))['then'](function(_0x47f42a){if(_0x47f42a){_0x155c31[_0xa98c('0x2c')]=_['keys'](db[_0xa98c('0x36')]['rawAttributes']);_0x155c31[_0xa98c('0x26')]=_[_0xa98c('0x29')](_0x5b4fc6['query']);_0x155c31[_0xa98c('0x2a')]=_[_0xa98c('0x2b')](_0x155c31[_0xa98c('0x2c')],_0x155c31[_0xa98c('0x26')]);_0x28be04[_0xa98c('0x2d')]=_[_0xa98c('0x2b')](_0x155c31[_0xa98c('0x2c')],qs['fields'](_0x5b4fc6[_0xa98c('0x26')][_0xa98c('0x2e')]));_0x28be04['attributes']=_0x28be04[_0xa98c('0x2d')][_0xa98c('0x39')]?_0x28be04[_0xa98c('0x2d')]:_0x155c31[_0xa98c('0x2c')];if(!_0x5b4fc6[_0xa98c('0x26')][_0xa98c('0x3a')](_0xa98c('0x3b'))){_0x28be04[_0xa98c('0x12')]=qs['limit'](_0x5b4fc6[_0xa98c('0x26')]['limit']);_0x28be04[_0xa98c('0x10')]=qs[_0xa98c('0x10')](_0x5b4fc6[_0xa98c('0x26')][_0xa98c('0x10')]);}_0x28be04[_0xa98c('0x3c')]=qs[_0xa98c('0x3d')](_0x5b4fc6[_0xa98c('0x26')]['sort']);_0x28be04[_0xa98c('0x3e')]=qs['filters'](_['pick'](_0x5b4fc6['query'],_0x155c31[_0xa98c('0x2a')]));_0x28be04[_0xa98c('0x3e')][_0xa98c('0x3f')]=_0x47f42a['id'];if(_0x5b4fc6['query'][_0xa98c('0x40')]){_0x28be04['where']=_['merge'](_0x28be04[_0xa98c('0x3e')],{'$or':_[_0xa98c('0x1e')](_0x28be04[_0xa98c('0x2d')],function(_0x30becc){var _0x27c2b7={};_0x27c2b7[_0x30becc]={'$like':'%'+_0x5b4fc6[_0xa98c('0x26')][_0xa98c('0x40')]+'%'};return _0x27c2b7;})});}if(_0x5b4fc6[_0xa98c('0x26')][_0xa98c('0x41')]){var _0x2019dd=_0x5b4fc6[_0xa98c('0x26')]['$gte'][_0xa98c('0x42')](',');var _0x5c7d10={};_0x5c7d10[_0x2019dd[0x0]]={'$gte':moment(_0x2019dd[0x1])[_0xa98c('0x43')]('YYYY-MM-DD\x20HH:mm:ss')};_0x28be04[_0xa98c('0x3e')]=_[_0xa98c('0x44')](_0x28be04[_0xa98c('0x3e')],_0x5c7d10);}_0x28be04=_[_0xa98c('0x44')]({},_0x28be04,_0x5b4fc6[_0xa98c('0x45')]);return db[_0xa98c('0x36')][_0xa98c('0x13')]({'where':_0x28be04[_0xa98c('0x3e')]})[_0xa98c('0x16')](function(_0x43e392){_0x38274b['count']=_0x43e392;if(_0x5b4fc6['query'][_0xa98c('0x46')]){_0x28be04[_0xa98c('0x47')]=[{'all':!![]}];}return db[_0xa98c('0x36')][_0xa98c('0x25')](_0x28be04);})['then'](function(_0x5ad175){_0x38274b[_0xa98c('0x48')]=_0x5ad175;return _0x38274b;});}})[_0xa98c('0x16')](respondWithFilteredResult(_0x42c642,_0x28be04))[_0xa98c('0x30')](handleError(_0x42c642,null));};exports[_0xa98c('0x49')]=function(_0x441436,_0x304c34){return db[_0xa98c('0x1f')][_0xa98c('0x2f')]({'where':{'id':_0x441436[_0xa98c('0x28')]['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0x304c34,null))['then'](function(_0x49a3e6){if(_0x49a3e6){return _0x49a3e6[_0xa98c('0x4a')](_0x441436[_0xa98c('0x32')]['ids'],_[_0xa98c('0x4b')](_0x441436[_0xa98c('0x32')],[_0xa98c('0x37'),'id'])||{})[_0xa98c('0x4c')](function(){return db[_0xa98c('0x4d')][_0xa98c('0x25')]({'attributes':['id','name',_0xa98c('0x4e')],'where':{'id':_0x441436['body'][_0xa98c('0x37')]}});})['then'](function(_0x22c223){socket['emit'](_0xa98c('0x4f'),{'id':Number(_0x441436[_0xa98c('0x28')]['id']),'tags':_0x22c223||[]});return{'id':Number(_0x441436[_0xa98c('0x28')]['id']),'tags':_0x22c223||[]};});}})[_0xa98c('0x16')](respondWithResult(_0x304c34,null))[_0xa98c('0x30')](handleError(_0x304c34,null));};exports[_0xa98c('0x50')]=function(_0x4e8c2d,_0x305929){return db[_0xa98c('0x1f')][_0xa98c('0x2f')]({'where':{'id':_0x4e8c2d[_0xa98c('0x28')]['id']}})[_0xa98c('0x16')](handleEntityNotFound(_0x305929,null))[_0xa98c('0x16')](function(_0x4b923b){if(_0x4b923b){return _0x4b923b[_0xa98c('0x50')](_0x4e8c2d[_0xa98c('0x26')][_0xa98c('0x37')]);}})[_0xa98c('0x16')](respondWithStatusCode(_0x305929,null))[_0xa98c('0x30')](handleError(_0x305929,null));};exports['download']=function(_0xb813d8,_0x4d9762){var _0x4bd8fe=moment()['unix']()[_0xa98c('0x51')]();var _0x87c76f=path['join'](config[_0xa98c('0x52')],'server',_0xa98c('0x53'),_0xa98c('0x54'));var _0x51d1ba=path[_0xa98c('0x55')](config[_0xa98c('0x52')],_0xa98c('0x56'),_0xa98c('0x53'),_0xa98c('0x57'));var _0x32959a=path['join'](_0x87c76f,_0x4bd8fe);var _0xd2eb97=util['format'](_0xa98c('0x58'),_0xb813d8['params']['id'],_0x4bd8fe);var _0x5e7a81=path['join'](_0x87c76f,_0xd2eb97);var _0x411dfb=[];_0x411dfb[_0xa98c('0x59')]({'model':db[_0xa98c('0x5a')],'as':_0xa98c('0x5a'),'raw':!![]});var _0x56cd47=[{'model':db['FaxMessage'],'as':_0xa98c('0x5b'),'attributes':['id',_0xa98c('0x32'),_0xa98c('0x5c')],'include':_0x411dfb}];return db[_0xa98c('0x1f')][_0xa98c('0x2f')]({'where':{'id':_0xb813d8['params']['id']},'include':_0x56cd47})['then'](handleEntityNotFound(_0x4d9762,null))[_0xa98c('0x16')](function(_0x3bcdbf){if(_0x3bcdbf&&_0x3bcdbf[_0xa98c('0x5b')]){var _0x2336b6=_0x3bcdbf['get']({'plain':!![]});fs[_0xa98c('0x5d')](_0x32959a);for(var _0x356973=0x0;_0x356973<_0x2336b6[_0xa98c('0x5b')][_0xa98c('0x39')];_0x356973++){var _0x214406=_0x2336b6[_0xa98c('0x5b')][_0x356973][_0xa98c('0x5a')];if(_0x214406){var _0x8de024=path[_0xa98c('0x55')](_0x51d1ba,_0x214406[_0xa98c('0x5e')]);if(fs[_0xa98c('0x5f')](_0x8de024)){fs['createReadStream'](_0x8de024)[_0xa98c('0x60')](fs[_0xa98c('0x61')](path[_0xa98c('0x55')](_0x32959a,_0x214406['basename'])));}}}return BPromise['resolve']()[_0xa98c('0x16')](function(){return new BPromise(function(_0x111ada,_0x424cbf){zipdir(_0x32959a,{'saveTo':_0x5e7a81},function(_0x54c9da,_0x190605){if(_0x54c9da)return _0x424cbf(_0x54c9da);return _0x111ada(_0x190605);});})['then'](function(){return new BPromise(function(_0x4945ce,_0x2403aa){rimraf(_0x32959a,function(_0x480928){if(_0x480928)_0x2403aa(_0x480928);return _0x4945ce();});});})['then'](function(){return _0x4d9762[_0xa98c('0x62')](_0x5e7a81,_0xd2eb97,function(_0x555af0){if(_0x555af0){console[_0xa98c('0x63')]('err',_0x555af0);}else{fs[_0xa98c('0x64')](_0x5e7a81);}});});});}else{return _0x4d9762[_0xa98c('0x19')](0xc8);}})[_0xa98c('0x30')](handleError(_0x4d9762,null));};