Built motion from commit 97153652.|2.6.26
[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 _0xb4ce=['keys','FaxInteraction','rawAttributes','filters','intersection','attributes','fields','includeAll','merge','options','find','catch','create','body','describe','addMessage','ids','getMessages','findOne','FaxMessage','length','nolimit','order','sort','where','pick','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','include','rows','addTags','setTags','spread','Tag','emit','faxInteractionTags:save','removeTags','download','unix','toString','join','server','tmp','root','files','attachments','format','transcript-%d-%s.zip','push','Attachment','createdAt','Messages','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','unlinkSync','rimraf','zip-dir','moment','bluebird','util','path','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','../../config/environment','redis','defaults','socket.io-emitter','./faxInteraction.socket','register','status','end','limit','undefined','count','offset','set','Content-Range','json','update','then','destroy','sendStatus','send','map','fieldName','type','key','getOptions','findAll','fax','query','user','show','params','model'];(function(_0x1591fc,_0x40e4a0){var _0x249ff8=function(_0x49362b){while(--_0x49362b){_0x1591fc['push'](_0x1591fc['shift']());}};_0x249ff8(++_0x40e4a0);}(_0xb4ce,0x179));var _0xeb4c=function(_0x4fe9ac,_0x1a31c0){_0x4fe9ac=_0x4fe9ac-0x0;var _0x3ad23e=_0xb4ce[_0x4fe9ac];return _0x3ad23e;};'use strict';var rimraf=require(_0xeb4c('0x0'));var zipdir=require(_0xeb4c('0x1'));var moment=require(_0xeb4c('0x2'));var BPromise=require(_0xeb4c('0x3'));var util=require(_0xeb4c('0x4'));var path=require(_0xeb4c('0x5'));var fs=require('fs');var _=require(_0xeb4c('0x6'));var Redis=require(_0xeb4c('0x7'));var interaction=require(_0xeb4c('0x8'));var qs=require(_0xeb4c('0x9'));var logger=require(_0xeb4c('0xa'))('api');var config=require(_0xeb4c('0xb'));var db=require('../../mysqldb')['db'];config[_0xeb4c('0xc')]=_[_0xeb4c('0xd')](config[_0xeb4c('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0xeb4c('0xe'))(new Redis(config[_0xeb4c('0xc')]));require(_0xeb4c('0xf'))[_0xeb4c('0x10')](socket);function respondWithStatusCode(_0x23622d,_0x21ad84){_0x21ad84=_0x21ad84||0xcc;return function(_0x2cfb00){if(_0x2cfb00){return _0x23622d['sendStatus'](_0x21ad84);}return _0x23622d[_0xeb4c('0x11')](_0x21ad84)[_0xeb4c('0x12')]();};}function respondWithResult(_0x29298f,_0xb5f471){_0xb5f471=_0xb5f471||0xc8;return function(_0x2bfda9){if(_0x2bfda9){return _0x29298f[_0xeb4c('0x11')](_0xb5f471)['json'](_0x2bfda9);}};}function respondWithFilteredResult(_0x1cd80e,_0x32c71a){return function(_0x3986d1){if(_0x3986d1){var _0x33ee55=typeof _0x32c71a['offset']==='undefined'&&typeof _0x32c71a[_0xeb4c('0x13')]===_0xeb4c('0x14');var _0xa721e4=_0x3986d1[_0xeb4c('0x15')];var _0x15bddf=_0x33ee55?0x0:_0x32c71a[_0xeb4c('0x16')];var _0xac1ec0=_0x33ee55?_0x3986d1[_0xeb4c('0x15')]:_0x32c71a['offset']+_0x32c71a[_0xeb4c('0x13')];var _0x2d02f5;if(_0xac1ec0>=_0xa721e4){_0xac1ec0=_0xa721e4;_0x2d02f5=0xc8;}else{_0x2d02f5=0xce;}_0x1cd80e[_0xeb4c('0x11')](_0x2d02f5);return _0x1cd80e[_0xeb4c('0x17')](_0xeb4c('0x18'),_0x15bddf+'-'+_0xac1ec0+'/'+_0xa721e4)[_0xeb4c('0x19')](_0x3986d1);}return null;};}function saveUpdates(_0x3441e3){return function(_0x59146b){if(_0x59146b){return _0x59146b[_0xeb4c('0x1a')](_0x3441e3)[_0xeb4c('0x1b')](function(_0x5954a3){return _0x5954a3;});}return null;};}function removeEntity(_0x58aee9){return function(_0x20d22d){if(_0x20d22d){return _0x20d22d[_0xeb4c('0x1c')]()[_0xeb4c('0x1b')](function(){_0x58aee9['status'](0xcc)[_0xeb4c('0x12')]();});}};}function handleEntityNotFound(_0x2a13be){return function(_0x49c180){if(!_0x49c180){_0x2a13be[_0xeb4c('0x1d')](0x194);}return _0x49c180;};}function handleError(_0x1f8953,_0x1a9e13){_0x1a9e13=_0x1a9e13||0x1f4;return function(_0x508a94){logger['error'](_0x508a94['stack']);if(_0x508a94['name']){delete _0x508a94['name'];}_0x1f8953[_0xeb4c('0x11')](_0x1a9e13)[_0xeb4c('0x1e')](_0x508a94);};}exports['index']=function(_0x137588,_0x7f62b8){var _0x2e2ce8={};var _0x22988c=_[_0xeb4c('0x1f')](db['FaxInteraction']['rawAttributes'],function(_0x15fab2){return{'name':_0x15fab2[_0xeb4c('0x20')],'type':_0x15fab2[_0xeb4c('0x21')][_0xeb4c('0x22')]};});_0x2e2ce8=qs[_0xeb4c('0x23')](_0x22988c,_0x137588);return interaction[_0xeb4c('0x24')](_0xeb4c('0x25'),_0x137588[_0xeb4c('0x26')],_0x137588[_0xeb4c('0x27')],_0x2e2ce8,_0x22988c)['then'](respondWithFilteredResult(_0x7f62b8,_0x2e2ce8))['catch'](handleError(_0x7f62b8,null));};exports[_0xeb4c('0x28')]=function(_0x359ea1,_0xc53243){var _0x2bf3d4={'raw':![],'where':{'id':_0x359ea1[_0xeb4c('0x29')]['id']}},_0x4984ca={};_0x4984ca[_0xeb4c('0x2a')]=_[_0xeb4c('0x2b')](db[_0xeb4c('0x2c')][_0xeb4c('0x2d')]);_0x4984ca[_0xeb4c('0x26')]=_['keys'](_0x359ea1[_0xeb4c('0x26')]);_0x4984ca[_0xeb4c('0x2e')]=_[_0xeb4c('0x2f')](_0x4984ca[_0xeb4c('0x2a')],_0x4984ca['query']);_0x2bf3d4[_0xeb4c('0x30')]=_[_0xeb4c('0x2f')](_0x4984ca[_0xeb4c('0x2a')],qs[_0xeb4c('0x31')](_0x359ea1['query'][_0xeb4c('0x31')]));_0x2bf3d4['attributes']=_0x2bf3d4['attributes']['length']?_0x2bf3d4['attributes']:_0x4984ca[_0xeb4c('0x2a')];if(_0x359ea1[_0xeb4c('0x26')][_0xeb4c('0x32')]){_0x2bf3d4['include']=[{'all':!![]}];}_0x2bf3d4=_[_0xeb4c('0x33')]({},_0x2bf3d4,_0x359ea1[_0xeb4c('0x34')]);return db[_0xeb4c('0x2c')][_0xeb4c('0x35')](_0x2bf3d4)['then'](handleEntityNotFound(_0xc53243,null))['then'](respondWithResult(_0xc53243,null))[_0xeb4c('0x36')](handleError(_0xc53243,null));};exports[_0xeb4c('0x37')]=function(_0x2a53a7,_0x1f73b7){return db[_0xeb4c('0x2c')][_0xeb4c('0x37')](_0x2a53a7['body'],{})[_0xeb4c('0x1b')](respondWithResult(_0x1f73b7,0xc9))[_0xeb4c('0x36')](handleError(_0x1f73b7,null));};exports[_0xeb4c('0x1a')]=function(_0x363608,_0x4a4b50){if(_0x363608['body']['id']){delete _0x363608[_0xeb4c('0x38')]['id'];}return db['FaxInteraction'][_0xeb4c('0x35')]({'where':{'id':_0x363608[_0xeb4c('0x29')]['id']}})[_0xeb4c('0x1b')](handleEntityNotFound(_0x4a4b50,null))[_0xeb4c('0x1b')](saveUpdates(_0x363608['body'],null))[_0xeb4c('0x1b')](respondWithResult(_0x4a4b50,null))[_0xeb4c('0x36')](handleError(_0x4a4b50,null));};exports[_0xeb4c('0x1c')]=function(_0x50be51,_0x11c99d){return db[_0xeb4c('0x2c')][_0xeb4c('0x35')]({'where':{'id':_0x50be51['params']['id']}})[_0xeb4c('0x1b')](handleEntityNotFound(_0x11c99d,null))[_0xeb4c('0x1b')](removeEntity(_0x11c99d,null))[_0xeb4c('0x36')](handleError(_0x11c99d,null));};exports[_0xeb4c('0x39')]=function(_0x3dfef4,_0x21a294){return db[_0xeb4c('0x2c')][_0xeb4c('0x39')]()['then'](respondWithResult(_0x21a294,null))['catch'](handleError(_0x21a294,null));};exports[_0xeb4c('0x3a')]=function(_0x26d4df,_0x151e06){return db['FaxMessage'][_0xeb4c('0x35')]({'where':{'id':_0x26d4df[_0xeb4c('0x29')]['id']}})[_0xeb4c('0x1b')](handleEntityNotFound(_0x151e06,null))['then'](function(_0x6e274f){if(_0x6e274f){return _0x6e274f['addMessage'](_0x26d4df[_0xeb4c('0x38')][_0xeb4c('0x3b')],_['omit'](_0x26d4df[_0xeb4c('0x38')],[_0xeb4c('0x3b'),'id'])||{});}})[_0xeb4c('0x1b')](respondWithResult(_0x151e06,null))[_0xeb4c('0x36')](handleError(_0x151e06,null));};exports[_0xeb4c('0x3c')]=function(_0x139a7c,_0x13c035){var _0x1c6464={'raw':![],'where':{}};var _0x16e773={};var _0xae2f20={'count':0x0,'rows':[]};return db[_0xeb4c('0x2c')][_0xeb4c('0x3d')]({'where':{'id':_0x139a7c['params']['id']}})[_0xeb4c('0x1b')](handleEntityNotFound(_0x13c035,null))[_0xeb4c('0x1b')](function(_0x1a4719){if(_0x1a4719){_0x16e773[_0xeb4c('0x2a')]=_[_0xeb4c('0x2b')](db[_0xeb4c('0x3e')][_0xeb4c('0x2d')]);_0x16e773['query']=_['keys'](_0x139a7c[_0xeb4c('0x26')]);_0x16e773[_0xeb4c('0x2e')]=_['intersection'](_0x16e773[_0xeb4c('0x2a')],_0x16e773[_0xeb4c('0x26')]);_0x1c6464['attributes']=_[_0xeb4c('0x2f')](_0x16e773[_0xeb4c('0x2a')],qs[_0xeb4c('0x31')](_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x31')]));_0x1c6464['attributes']=_0x1c6464[_0xeb4c('0x30')][_0xeb4c('0x3f')]?_0x1c6464['attributes']:_0x16e773[_0xeb4c('0x2a')];if(!_0x139a7c['query']['hasOwnProperty'](_0xeb4c('0x40'))){_0x1c6464[_0xeb4c('0x13')]=qs['limit'](_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x13')]);_0x1c6464[_0xeb4c('0x16')]=qs['offset'](_0x139a7c[_0xeb4c('0x26')]['offset']);}_0x1c6464[_0xeb4c('0x41')]=qs['sort'](_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x42')]);_0x1c6464[_0xeb4c('0x43')]=qs[_0xeb4c('0x2e')](_[_0xeb4c('0x44')](_0x139a7c[_0xeb4c('0x26')],_0x16e773[_0xeb4c('0x2e')]));_0x1c6464[_0xeb4c('0x43')]['FaxInteractionId']=_0x1a4719['id'];if(_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x45')]){_0x1c6464[_0xeb4c('0x43')]=_[_0xeb4c('0x33')](_0x1c6464[_0xeb4c('0x43')],{'$or':_[_0xeb4c('0x1f')](_0x1c6464['attributes'],function(_0x4d8b7d){var _0x217948={};_0x217948[_0x4d8b7d]={'$like':'%'+_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x45')]+'%'};return _0x217948;})});}if(_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x46')]){var _0x5e91c1=_0x139a7c[_0xeb4c('0x26')][_0xeb4c('0x46')]['split'](',');var _0x35b7bd={};_0x35b7bd[_0x5e91c1[0x0]]={'$gte':moment(_0x5e91c1[0x1])['format'](_0xeb4c('0x47'))};_0x1c6464['where']=_['merge'](_0x1c6464[_0xeb4c('0x43')],_0x35b7bd);}_0x1c6464=_[_0xeb4c('0x33')]({},_0x1c6464,_0x139a7c[_0xeb4c('0x34')]);return db['FaxMessage'][_0xeb4c('0x15')]({'where':_0x1c6464[_0xeb4c('0x43')]})[_0xeb4c('0x1b')](function(_0x5b6c41){_0xae2f20[_0xeb4c('0x15')]=_0x5b6c41;if(_0x139a7c[_0xeb4c('0x26')]['includeAll']){_0x1c6464[_0xeb4c('0x48')]=[{'all':!![]}];}return db['FaxMessage'][_0xeb4c('0x24')](_0x1c6464);})[_0xeb4c('0x1b')](function(_0x279642){_0xae2f20[_0xeb4c('0x49')]=_0x279642;return _0xae2f20;});}})[_0xeb4c('0x1b')](respondWithFilteredResult(_0x13c035,_0x1c6464))[_0xeb4c('0x36')](handleError(_0x13c035,null));};exports[_0xeb4c('0x4a')]=function(_0xe1852a,_0x37ed50){return db[_0xeb4c('0x2c')][_0xeb4c('0x35')]({'where':{'id':_0xe1852a[_0xeb4c('0x29')]['id']}})[_0xeb4c('0x1b')](handleEntityNotFound(_0x37ed50,null))[_0xeb4c('0x1b')](function(_0x4bccb8){if(_0x4bccb8){return _0x4bccb8[_0xeb4c('0x4b')](_0xe1852a[_0xeb4c('0x38')]['ids'],_['omit'](_0xe1852a[_0xeb4c('0x38')],[_0xeb4c('0x3b'),'id'])||{})[_0xeb4c('0x4c')](function(){return db[_0xeb4c('0x4d')]['findAll']({'attributes':['id','name','color'],'where':{'id':_0xe1852a[_0xeb4c('0x38')][_0xeb4c('0x3b')]}});})[_0xeb4c('0x1b')](function(_0x294b5a){socket[_0xeb4c('0x4e')](_0xeb4c('0x4f'),{'id':Number(_0xe1852a[_0xeb4c('0x29')]['id']),'tags':_0x294b5a||[]});return{'id':Number(_0xe1852a['params']['id']),'tags':_0x294b5a||[]};});}})[_0xeb4c('0x1b')](respondWithResult(_0x37ed50,null))[_0xeb4c('0x36')](handleError(_0x37ed50,null));};exports['removeTags']=function(_0x33ce7d,_0x110558){return db[_0xeb4c('0x2c')][_0xeb4c('0x35')]({'where':{'id':_0x33ce7d[_0xeb4c('0x29')]['id']}})['then'](handleEntityNotFound(_0x110558,null))['then'](function(_0x3cb4af){if(_0x3cb4af){return _0x3cb4af[_0xeb4c('0x50')](_0x33ce7d[_0xeb4c('0x26')]['ids']);}})[_0xeb4c('0x1b')](respondWithStatusCode(_0x110558,null))[_0xeb4c('0x36')](handleError(_0x110558,null));};exports[_0xeb4c('0x51')]=function(_0x5b9ce8,_0x472bab){var _0x35fb66=moment()[_0xeb4c('0x52')]()[_0xeb4c('0x53')]();var _0x5376b1=path[_0xeb4c('0x54')](config['root'],_0xeb4c('0x55'),'files',_0xeb4c('0x56'));var _0x322f31=path['join'](config[_0xeb4c('0x57')],_0xeb4c('0x55'),_0xeb4c('0x58'),_0xeb4c('0x59'));var _0x570f20=path['join'](_0x5376b1,_0x35fb66);var _0x9c3b46=util[_0xeb4c('0x5a')](_0xeb4c('0x5b'),_0x5b9ce8[_0xeb4c('0x29')]['id'],_0x35fb66);var _0x5f4bbb=path[_0xeb4c('0x54')](_0x5376b1,_0x9c3b46);var _0x44e31b=[];_0x44e31b[_0xeb4c('0x5c')]({'model':db[_0xeb4c('0x5d')],'as':'Attachment','raw':!![]});var _0x426d4b=[{'model':db['FaxMessage'],'as':'Messages','attributes':['id',_0xeb4c('0x38'),_0xeb4c('0x5e')],'include':_0x44e31b}];return db[_0xeb4c('0x2c')]['find']({'where':{'id':_0x5b9ce8[_0xeb4c('0x29')]['id']},'include':_0x426d4b})['then'](handleEntityNotFound(_0x472bab,null))[_0xeb4c('0x1b')](function(_0x52fd50){if(_0x52fd50&&_0x52fd50[_0xeb4c('0x5f')]){var _0x5d69b3=_0x52fd50[_0xeb4c('0x60')]({'plain':!![]});fs[_0xeb4c('0x61')](_0x570f20);for(var _0x592de9=0x0;_0x592de9<_0x5d69b3[_0xeb4c('0x5f')][_0xeb4c('0x3f')];_0x592de9++){var _0xfa1351=_0x5d69b3[_0xeb4c('0x5f')][_0x592de9][_0xeb4c('0x5d')];if(_0xfa1351){var _0x37f11c=path[_0xeb4c('0x54')](_0x322f31,_0xfa1351[_0xeb4c('0x62')]);if(fs[_0xeb4c('0x63')](_0x37f11c)){fs[_0xeb4c('0x64')](_0x37f11c)[_0xeb4c('0x65')](fs[_0xeb4c('0x66')](path[_0xeb4c('0x54')](_0x570f20,_0xfa1351[_0xeb4c('0x62')])));}}}return BPromise[_0xeb4c('0x67')]()[_0xeb4c('0x1b')](function(){return new BPromise(function(_0x4a0cb5,_0x14e557){zipdir(_0x570f20,{'saveTo':_0x5f4bbb},function(_0x15cd31,_0x305a3f){if(_0x15cd31)return _0x14e557(_0x15cd31);return _0x4a0cb5(_0x305a3f);});})[_0xeb4c('0x1b')](function(){return new BPromise(function(_0x340a12,_0x132785){rimraf(_0x570f20,function(_0x45279d){if(_0x45279d)_0x132785(_0x45279d);return _0x340a12();});});})[_0xeb4c('0x1b')](function(){return _0x472bab[_0xeb4c('0x51')](_0x5f4bbb,_0x9c3b46,function(_0x4efc9e){if(_0x4efc9e){console['log']('err',_0x4efc9e);}else{fs[_0xeb4c('0x68')](_0x5f4bbb);}});});});}else{return _0x472bab[_0xeb4c('0x1d')](0xc8);}})[_0xeb4c('0x36')](handleError(_0x472bab,null));};