Built motion from commit 10af8726.|2.6.34
[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 _0x850e=['order','sort','where','pick','FaxInteractionId','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','options','rows','addTags','setTags','spread','Tag','faxInteractionTags:save','removeTags','download','root','server','files','tmp','join','attachments','transcript-%d-%s.zip','Attachment','Messages','createdAt','mkdirSync','basename','existsSync','createReadStream','createWriteStream','resolve','log','err','unlinkSync','zip-dir','moment','bluebird','util','path','lodash','../../components/interaction/service','../../components/parsers/qs','api','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','error','name','send','index','map','FaxInteraction','rawAttributes','key','getOptions','findAll','fax','query','user','params','model','keys','filters','intersection','fields','attributes','length','includeAll','include','merge','create','body','catch','find','describe','addMessage','FaxMessage','ids','omit','getMessages','findOne','hasOwnProperty','nolimit'];(function(_0xdea41a,_0x552987){var _0x15d0d8=function(_0x1e0d0b){while(--_0x1e0d0b){_0xdea41a['push'](_0xdea41a['shift']());}};_0x15d0d8(++_0x552987);}(_0x850e,0x8d));var _0xe850=function(_0x766572,_0x4abd1c){_0x766572=_0x766572-0x0;var _0x2d1fd5=_0x850e[_0x766572];return _0x2d1fd5;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xe850('0x0'));var moment=require(_0xe850('0x1'));var BPromise=require(_0xe850('0x2'));var util=require(_0xe850('0x3'));var path=require(_0xe850('0x4'));var fs=require('fs');var _=require(_0xe850('0x5'));var Redis=require('ioredis');var interaction=require(_0xe850('0x6'));var qs=require(_0xe850('0x7'));var logger=require('../../config/logger')(_0xe850('0x8'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0xe850('0x9')]=_[_0xe850('0xa')](config[_0xe850('0x9')],{'host':_0xe850('0xb'),'port':0x18eb});var socket=require(_0xe850('0xc'))(new Redis(config[_0xe850('0x9')]));require(_0xe850('0xd'))[_0xe850('0xe')](socket);function respondWithStatusCode(_0xcbc754,_0x3314d7){_0x3314d7=_0x3314d7||0xcc;return function(_0x2e26d6){if(_0x2e26d6){return _0xcbc754[_0xe850('0xf')](_0x3314d7);}return _0xcbc754[_0xe850('0x10')](_0x3314d7)[_0xe850('0x11')]();};}function respondWithResult(_0x40ee44,_0x11a3d1){_0x11a3d1=_0x11a3d1||0xc8;return function(_0x1440e2){if(_0x1440e2){return _0x40ee44[_0xe850('0x10')](_0x11a3d1)[_0xe850('0x12')](_0x1440e2);}};}function respondWithFilteredResult(_0x5edd0e,_0x535bc1){return function(_0x35692f){if(_0x35692f){var _0x2ddde6=typeof _0x535bc1[_0xe850('0x13')]===_0xe850('0x14')&&typeof _0x535bc1[_0xe850('0x15')]==='undefined';var _0x4cdce7=_0x35692f[_0xe850('0x16')];var _0x509acf=_0x2ddde6?0x0:_0x535bc1[_0xe850('0x13')];var _0x36d4e8=_0x2ddde6?_0x35692f[_0xe850('0x16')]:_0x535bc1['offset']+_0x535bc1[_0xe850('0x15')];var _0x4a88ea;if(_0x36d4e8>=_0x4cdce7){_0x36d4e8=_0x4cdce7;_0x4a88ea=0xc8;}else{_0x4a88ea=0xce;}_0x5edd0e[_0xe850('0x10')](_0x4a88ea);return _0x5edd0e[_0xe850('0x17')](_0xe850('0x18'),_0x509acf+'-'+_0x36d4e8+'/'+_0x4cdce7)['json'](_0x35692f);}return null;};}function saveUpdates(_0x8a6401){return function(_0x19a261){if(_0x19a261){return _0x19a261[_0xe850('0x19')](_0x8a6401)[_0xe850('0x1a')](function(_0x2bbc69){return _0x2bbc69;});}return null;};}function removeEntity(_0x5d7a0f){return function(_0x25908e){if(_0x25908e){return _0x25908e[_0xe850('0x1b')]()[_0xe850('0x1a')](function(){_0x5d7a0f[_0xe850('0x10')](0xcc)['end']();});}};}function handleEntityNotFound(_0x632c82){return function(_0xe6a95){if(!_0xe6a95){_0x632c82[_0xe850('0xf')](0x194);}return _0xe6a95;};}function handleError(_0x451de0,_0x2e12f1){_0x2e12f1=_0x2e12f1||0x1f4;return function(_0x2bee95){logger[_0xe850('0x1c')](_0x2bee95['stack']);if(_0x2bee95[_0xe850('0x1d')]){delete _0x2bee95[_0xe850('0x1d')];}_0x451de0[_0xe850('0x10')](_0x2e12f1)[_0xe850('0x1e')](_0x2bee95);};}exports[_0xe850('0x1f')]=function(_0x50cba1,_0x3f83f8){var _0x4c6c15={};var _0x53bb4f=_[_0xe850('0x20')](db[_0xe850('0x21')][_0xe850('0x22')],function(_0x3af47b){return{'name':_0x3af47b['fieldName'],'type':_0x3af47b['type'][_0xe850('0x23')]};});_0x4c6c15=qs[_0xe850('0x24')](_0x53bb4f,_0x50cba1);return interaction[_0xe850('0x25')](_0xe850('0x26'),_0x50cba1[_0xe850('0x27')],_0x50cba1[_0xe850('0x28')],_0x4c6c15,_0x53bb4f)[_0xe850('0x1a')](respondWithFilteredResult(_0x3f83f8,_0x4c6c15))['catch'](handleError(_0x3f83f8,null));};exports['show']=function(_0x2787c5,_0x3cedfc){var _0x2c0729={'raw':![],'where':{'id':_0x2787c5[_0xe850('0x29')]['id']}},_0x4ee3a0={};_0x4ee3a0[_0xe850('0x2a')]=_[_0xe850('0x2b')](db[_0xe850('0x21')][_0xe850('0x22')]);_0x4ee3a0[_0xe850('0x27')]=_[_0xe850('0x2b')](_0x2787c5[_0xe850('0x27')]);_0x4ee3a0[_0xe850('0x2c')]=_[_0xe850('0x2d')](_0x4ee3a0[_0xe850('0x2a')],_0x4ee3a0[_0xe850('0x27')]);_0x2c0729['attributes']=_[_0xe850('0x2d')](_0x4ee3a0['model'],qs[_0xe850('0x2e')](_0x2787c5[_0xe850('0x27')][_0xe850('0x2e')]));_0x2c0729[_0xe850('0x2f')]=_0x2c0729[_0xe850('0x2f')][_0xe850('0x30')]?_0x2c0729[_0xe850('0x2f')]:_0x4ee3a0[_0xe850('0x2a')];if(_0x2787c5['query'][_0xe850('0x31')]){_0x2c0729[_0xe850('0x32')]=[{'all':!![]}];}_0x2c0729=_[_0xe850('0x33')]({},_0x2c0729,_0x2787c5['options']);return db[_0xe850('0x21')]['find'](_0x2c0729)[_0xe850('0x1a')](handleEntityNotFound(_0x3cedfc,null))[_0xe850('0x1a')](respondWithResult(_0x3cedfc,null))['catch'](handleError(_0x3cedfc,null));};exports[_0xe850('0x34')]=function(_0x1637ac,_0x5cf9db){return db[_0xe850('0x21')][_0xe850('0x34')](_0x1637ac[_0xe850('0x35')],{})[_0xe850('0x1a')](respondWithResult(_0x5cf9db,0xc9))[_0xe850('0x36')](handleError(_0x5cf9db,null));};exports[_0xe850('0x19')]=function(_0x320435,_0x3a8bd8){if(_0x320435[_0xe850('0x35')]['id']){delete _0x320435['body']['id'];}return db[_0xe850('0x21')][_0xe850('0x37')]({'where':{'id':_0x320435[_0xe850('0x29')]['id']}})[_0xe850('0x1a')](handleEntityNotFound(_0x3a8bd8,null))[_0xe850('0x1a')](saveUpdates(_0x320435[_0xe850('0x35')],null))[_0xe850('0x1a')](respondWithResult(_0x3a8bd8,null))[_0xe850('0x36')](handleError(_0x3a8bd8,null));};exports['destroy']=function(_0x50e707,_0xd5aa39){return db[_0xe850('0x21')][_0xe850('0x37')]({'where':{'id':_0x50e707[_0xe850('0x29')]['id']}})[_0xe850('0x1a')](handleEntityNotFound(_0xd5aa39,null))[_0xe850('0x1a')](removeEntity(_0xd5aa39,null))['catch'](handleError(_0xd5aa39,null));};exports[_0xe850('0x38')]=function(_0x1956d6,_0x1377cc){return db[_0xe850('0x21')][_0xe850('0x38')]()['then'](respondWithResult(_0x1377cc,null))[_0xe850('0x36')](handleError(_0x1377cc,null));};exports[_0xe850('0x39')]=function(_0x34c2a2,_0xb8cc8b){return db[_0xe850('0x3a')][_0xe850('0x37')]({'where':{'id':_0x34c2a2[_0xe850('0x29')]['id']}})['then'](handleEntityNotFound(_0xb8cc8b,null))['then'](function(_0x448739){if(_0x448739){return _0x448739[_0xe850('0x39')](_0x34c2a2[_0xe850('0x35')][_0xe850('0x3b')],_[_0xe850('0x3c')](_0x34c2a2[_0xe850('0x35')],[_0xe850('0x3b'),'id'])||{});}})[_0xe850('0x1a')](respondWithResult(_0xb8cc8b,null))['catch'](handleError(_0xb8cc8b,null));};exports[_0xe850('0x3d')]=function(_0x5c31ac,_0x177530){var _0x1fbda8={'raw':![],'where':{}};var _0x433303={};var _0x34012d={'count':0x0,'rows':[]};return db['FaxInteraction'][_0xe850('0x3e')]({'where':{'id':_0x5c31ac[_0xe850('0x29')]['id']}})[_0xe850('0x1a')](handleEntityNotFound(_0x177530,null))[_0xe850('0x1a')](function(_0x5af8fd){if(_0x5af8fd){_0x433303[_0xe850('0x2a')]=_[_0xe850('0x2b')](db[_0xe850('0x3a')][_0xe850('0x22')]);_0x433303[_0xe850('0x27')]=_[_0xe850('0x2b')](_0x5c31ac['query']);_0x433303[_0xe850('0x2c')]=_[_0xe850('0x2d')](_0x433303[_0xe850('0x2a')],_0x433303['query']);_0x1fbda8['attributes']=_['intersection'](_0x433303['model'],qs[_0xe850('0x2e')](_0x5c31ac['query'][_0xe850('0x2e')]));_0x1fbda8[_0xe850('0x2f')]=_0x1fbda8['attributes'][_0xe850('0x30')]?_0x1fbda8[_0xe850('0x2f')]:_0x433303['model'];if(!_0x5c31ac[_0xe850('0x27')][_0xe850('0x3f')](_0xe850('0x40'))){_0x1fbda8['limit']=qs[_0xe850('0x15')](_0x5c31ac[_0xe850('0x27')]['limit']);_0x1fbda8[_0xe850('0x13')]=qs[_0xe850('0x13')](_0x5c31ac['query']['offset']);}_0x1fbda8[_0xe850('0x41')]=qs[_0xe850('0x42')](_0x5c31ac[_0xe850('0x27')][_0xe850('0x42')]);_0x1fbda8[_0xe850('0x43')]=qs[_0xe850('0x2c')](_[_0xe850('0x44')](_0x5c31ac[_0xe850('0x27')],_0x433303[_0xe850('0x2c')]));_0x1fbda8['where'][_0xe850('0x45')]=_0x5af8fd['id'];if(_0x5c31ac['query'][_0xe850('0x46')]){_0x1fbda8[_0xe850('0x43')]=_['merge'](_0x1fbda8[_0xe850('0x43')],{'$or':_[_0xe850('0x20')](_0x1fbda8[_0xe850('0x2f')],function(_0x29dcea){var _0x5133fe={};_0x5133fe[_0x29dcea]={'$like':'%'+_0x5c31ac[_0xe850('0x27')][_0xe850('0x46')]+'%'};return _0x5133fe;})});}if(_0x5c31ac[_0xe850('0x27')][_0xe850('0x47')]){var _0x2a4923=_0x5c31ac[_0xe850('0x27')][_0xe850('0x47')][_0xe850('0x48')](',');var _0x2d8fda={};_0x2d8fda[_0x2a4923[0x0]]={'$gte':moment(_0x2a4923[0x1])[_0xe850('0x49')](_0xe850('0x4a'))};_0x1fbda8[_0xe850('0x43')]=_['merge'](_0x1fbda8[_0xe850('0x43')],_0x2d8fda);}_0x1fbda8=_[_0xe850('0x33')]({},_0x1fbda8,_0x5c31ac[_0xe850('0x4b')]);return db['FaxMessage']['count']({'where':_0x1fbda8['where']})['then'](function(_0x1148f9){_0x34012d[_0xe850('0x16')]=_0x1148f9;if(_0x5c31ac['query']['includeAll']){_0x1fbda8[_0xe850('0x32')]=[{'all':!![]}];}return db['FaxMessage'][_0xe850('0x25')](_0x1fbda8);})[_0xe850('0x1a')](function(_0x2cbfe8){_0x34012d[_0xe850('0x4c')]=_0x2cbfe8;return _0x34012d;});}})[_0xe850('0x1a')](respondWithFilteredResult(_0x177530,_0x1fbda8))['catch'](handleError(_0x177530,null));};exports[_0xe850('0x4d')]=function(_0x20be8a,_0x5e3ac4){return db['FaxInteraction'][_0xe850('0x37')]({'where':{'id':_0x20be8a['params']['id']}})[_0xe850('0x1a')](handleEntityNotFound(_0x5e3ac4,null))[_0xe850('0x1a')](function(_0x365798){if(_0x365798){return _0x365798[_0xe850('0x4e')](_0x20be8a[_0xe850('0x35')][_0xe850('0x3b')],_[_0xe850('0x3c')](_0x20be8a[_0xe850('0x35')],[_0xe850('0x3b'),'id'])||{})[_0xe850('0x4f')](function(){return db[_0xe850('0x50')][_0xe850('0x25')]({'attributes':['id',_0xe850('0x1d'),'color'],'where':{'id':_0x20be8a[_0xe850('0x35')][_0xe850('0x3b')]}});})['then'](function(_0x3dfdb6){socket['emit'](_0xe850('0x51'),{'id':Number(_0x20be8a['params']['id']),'tags':_0x3dfdb6||[]});return{'id':Number(_0x20be8a[_0xe850('0x29')]['id']),'tags':_0x3dfdb6||[]};});}})['then'](respondWithResult(_0x5e3ac4,null))['catch'](handleError(_0x5e3ac4,null));};exports[_0xe850('0x52')]=function(_0x6c991d,_0x4327bc){return db['FaxInteraction'][_0xe850('0x37')]({'where':{'id':_0x6c991d[_0xe850('0x29')]['id']}})[_0xe850('0x1a')](handleEntityNotFound(_0x4327bc,null))[_0xe850('0x1a')](function(_0x315e3a){if(_0x315e3a){return _0x315e3a[_0xe850('0x52')](_0x6c991d[_0xe850('0x27')][_0xe850('0x3b')]);}})['then'](respondWithStatusCode(_0x4327bc,null))['catch'](handleError(_0x4327bc,null));};exports[_0xe850('0x53')]=function(_0x18d504,_0x51fde7){var _0x2e3e3d=moment()['unix']()['toString']();var _0x18a8a8=path['join'](config[_0xe850('0x54')],_0xe850('0x55'),_0xe850('0x56'),_0xe850('0x57'));var _0x221069=path[_0xe850('0x58')](config[_0xe850('0x54')],_0xe850('0x55'),_0xe850('0x56'),_0xe850('0x59'));var _0x5f443=path[_0xe850('0x58')](_0x18a8a8,_0x2e3e3d);var _0x208d00=util[_0xe850('0x49')](_0xe850('0x5a'),_0x18d504[_0xe850('0x29')]['id'],_0x2e3e3d);var _0x2c6fd6=path[_0xe850('0x58')](_0x18a8a8,_0x208d00);var _0x3fe698=[];_0x3fe698['push']({'model':db['Attachment'],'as':_0xe850('0x5b'),'raw':!![]});var _0x378d00=[{'model':db[_0xe850('0x3a')],'as':_0xe850('0x5c'),'attributes':['id',_0xe850('0x35'),_0xe850('0x5d')],'include':_0x3fe698}];return db['FaxInteraction']['find']({'where':{'id':_0x18d504['params']['id']},'include':_0x378d00})[_0xe850('0x1a')](handleEntityNotFound(_0x51fde7,null))[_0xe850('0x1a')](function(_0x3da57c){if(_0x3da57c&&_0x3da57c[_0xe850('0x5c')]){var _0x140153=_0x3da57c['get']({'plain':!![]});fs[_0xe850('0x5e')](_0x5f443);for(var _0x41586d=0x0;_0x41586d<_0x140153[_0xe850('0x5c')][_0xe850('0x30')];_0x41586d++){var _0x4e68a2=_0x140153[_0xe850('0x5c')][_0x41586d][_0xe850('0x5b')];if(_0x4e68a2){var _0x388593=path[_0xe850('0x58')](_0x221069,_0x4e68a2[_0xe850('0x5f')]);if(fs[_0xe850('0x60')](_0x388593)){fs[_0xe850('0x61')](_0x388593)['pipe'](fs[_0xe850('0x62')](path[_0xe850('0x58')](_0x5f443,_0x4e68a2[_0xe850('0x5f')])));}}}return BPromise[_0xe850('0x63')]()[_0xe850('0x1a')](function(){return new BPromise(function(_0x552faf,_0x3511ca){zipdir(_0x5f443,{'saveTo':_0x2c6fd6},function(_0x1c397b,_0x79849d){if(_0x1c397b)return _0x3511ca(_0x1c397b);return _0x552faf(_0x79849d);});})[_0xe850('0x1a')](function(){return new BPromise(function(_0x38deda,_0x37b84b){rimraf(_0x5f443,function(_0x402df6){if(_0x402df6)_0x37b84b(_0x402df6);return _0x38deda();});});})[_0xe850('0x1a')](function(){return _0x51fde7[_0xe850('0x53')](_0x2c6fd6,_0x208d00,function(_0x329eeb){if(_0x329eeb){console[_0xe850('0x64')](_0xe850('0x65'),_0x329eeb);}else{fs[_0xe850('0x66')](_0x2c6fd6);}});});});}else{return _0x51fde7[_0xe850('0xf')](0xc8);}})[_0xe850('0x36')](handleError(_0x51fde7,null));};