24018c2f01480f47facecf969e100e705f4a12c0
[motion2.git] / server / api / attachment / attachment.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 _0x919a=['hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','includeAll','include','rows','show','find','clone','params','merge','options','get','omit','createdAt','updatedAt','create','body','catch','destroy','file','originalname','basename','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','index','Attachment','rawAttributes','fieldName','type','key','map','query','keys','model','attributes','intersection','fields','length'];(function(_0x5e91c2,_0x357298){var _0x12f224=function(_0x4e2804){while(--_0x4e2804){_0x5e91c2['push'](_0x5e91c2['shift']());}};_0x12f224(++_0x357298);}(_0x919a,0x7d));var _0xa919=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x919a[_0x59ee6f];return _0x4c0979;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa919('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa919('0x1'));var rp=require(_0xa919('0x2'));var moment=require(_0xa919('0x3'));var BPromise=require(_0xa919('0x4'));var Mustache=require(_0xa919('0x5'));var util=require(_0xa919('0x6'));var path=require(_0xa919('0x7'));var sox=require(_0xa919('0x8'));var csv=require(_0xa919('0x9'));var ejs=require(_0xa919('0xa'));var fs=require('fs');var fs_extra=require(_0xa919('0xb'));var _=require(_0xa919('0xc'));var squel=require(_0xa919('0xd'));var crypto=require(_0xa919('0xe'));var jsforce=require(_0xa919('0xf'));var deskjs=require(_0xa919('0x10'));var toCsv=require(_0xa919('0x9'));var querystring=require(_0xa919('0x11'));var Papa=require(_0xa919('0x12'));var Redis=require(_0xa919('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xa919('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa919('0x15'));var logger=require('../../config/logger')(_0xa919('0x16'));var utils=require(_0xa919('0x17'));var config=require(_0xa919('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x55b0e7,_0x2b3c50){_0x2b3c50=_0x2b3c50||0xcc;return function(_0x57d4a5){if(_0x57d4a5){return _0x55b0e7[_0xa919('0x19')](_0x2b3c50);}return _0x55b0e7['status'](_0x2b3c50)[_0xa919('0x1a')]();};}function respondWithResult(_0xae99ba,_0x18dcde){_0x18dcde=_0x18dcde||0xc8;return function(_0x9edc4d){if(_0x9edc4d){return _0xae99ba[_0xa919('0x1b')](_0x18dcde)[_0xa919('0x1c')](_0x9edc4d);}};}function respondWithFilteredResult(_0x3c1399,_0x5c8e68){return function(_0xad28cf){if(_0xad28cf){var _0x1faa9c=typeof _0x5c8e68[_0xa919('0x1d')]===_0xa919('0x1e')&&typeof _0x5c8e68[_0xa919('0x1f')]===_0xa919('0x1e');var _0x2dc545=_0xad28cf[_0xa919('0x20')];var _0x218162=_0x1faa9c?0x0:_0x5c8e68['offset'];var _0x422e3d=_0x1faa9c?_0xad28cf['count']:_0x5c8e68['offset']+_0x5c8e68['limit'];var _0x5265ed;if(_0x422e3d>=_0x2dc545){_0x422e3d=_0x2dc545;_0x5265ed=0xc8;}else{_0x5265ed=0xce;}_0x3c1399['status'](_0x5265ed);return _0x3c1399[_0xa919('0x21')](_0xa919('0x22'),_0x218162+'-'+_0x422e3d+'/'+_0x2dc545)[_0xa919('0x1c')](_0xad28cf);}return null;};}function patchUpdates(_0x4385da){return function(_0x180b70){try{jsonpatch[_0xa919('0x23')](_0x180b70,_0x4385da,!![]);}catch(_0x52c88c){return BPromise[_0xa919('0x24')](_0x52c88c);}return _0x180b70[_0xa919('0x25')]();};}function saveUpdates(_0x5e2e17,_0x51fde1){return function(_0x325c3a){if(_0x325c3a){return _0x325c3a[_0xa919('0x26')](_0x5e2e17)[_0xa919('0x27')](function(_0x405383){return _0x405383;});}return null;};}function removeEntity(_0x1fee14,_0x515b3a){return function(_0x19195c){if(_0x19195c){return _0x19195c['destroy']()[_0xa919('0x27')](function(){_0x1fee14[_0xa919('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ad8c8,_0x3ced3a){return function(_0x58c0eb){if(!_0x58c0eb){_0x2ad8c8[_0xa919('0x19')](0x194);}return _0x58c0eb;};}function handleError(_0x2830b8,_0x1e6a77){_0x1e6a77=_0x1e6a77||0x1f4;return function(_0x5d8a1e){logger[_0xa919('0x28')](_0x5d8a1e['stack']);if(_0x5d8a1e[_0xa919('0x29')]){delete _0x5d8a1e[_0xa919('0x29')];}_0x2830b8[_0xa919('0x1b')](_0x1e6a77)[_0xa919('0x2a')](_0x5d8a1e);};}exports[_0xa919('0x2b')]=function(_0x4786be,_0x279c1c){var _0x2438b6={},_0x5202da={},_0x56eaf1={'count':0x0,'rows':[]};var _0x4bdfa9=_['map'](db[_0xa919('0x2c')][_0xa919('0x2d')],function(_0x328b8b){return{'name':_0x328b8b[_0xa919('0x2e')],'type':_0x328b8b[_0xa919('0x2f')][_0xa919('0x30')]};});_0x5202da['model']=_[_0xa919('0x31')](_0x4bdfa9,_0xa919('0x29'));_0x5202da[_0xa919('0x32')]=_[_0xa919('0x33')](_0x4786be[_0xa919('0x32')]);_0x5202da['filters']=_['intersection'](_0x5202da[_0xa919('0x34')],_0x5202da[_0xa919('0x32')]);_0x2438b6[_0xa919('0x35')]=_[_0xa919('0x36')](_0x5202da[_0xa919('0x34')],qs[_0xa919('0x37')](_0x4786be[_0xa919('0x32')][_0xa919('0x37')]));_0x2438b6[_0xa919('0x35')]=_0x2438b6['attributes'][_0xa919('0x38')]?_0x2438b6[_0xa919('0x35')]:_0x5202da['model'];if(!_0x4786be[_0xa919('0x32')][_0xa919('0x39')]('nolimit')){_0x2438b6[_0xa919('0x1f')]=qs['limit'](_0x4786be['query']['limit']);_0x2438b6[_0xa919('0x1d')]=qs['offset'](_0x4786be['query'][_0xa919('0x1d')]);}_0x2438b6[_0xa919('0x3a')]=qs['sort'](_0x4786be[_0xa919('0x32')][_0xa919('0x3b')]);_0x2438b6[_0xa919('0x3c')]=qs[_0xa919('0x3d')](_[_0xa919('0x3e')](_0x4786be[_0xa919('0x32')],_0x5202da[_0xa919('0x3d')]),_0x4bdfa9);if(_0x4786be['query'][_0xa919('0x3f')]){_0x2438b6['where']=_['merge'](_0x2438b6[_0xa919('0x3c')],{'$or':_[_0xa919('0x31')](_0x4bdfa9,function(_0x1eb1c5){if(_0x1eb1c5['type']!==_0xa919('0x40')){var _0x599d08={};_0x599d08[_0x1eb1c5['name']]={'$like':'%'+_0x4786be[_0xa919('0x32')]['filter']+'%'};return _0x599d08;}})});}_0x2438b6=_['merge']({},_0x2438b6,_0x4786be['options']);var _0x44b810={'where':_0x2438b6['where']};return db['Attachment']['count'](_0x44b810)[_0xa919('0x27')](function(_0x2a9361){_0x56eaf1[_0xa919('0x20')]=_0x2a9361;if(_0x4786be[_0xa919('0x32')][_0xa919('0x41')]){_0x2438b6[_0xa919('0x42')]=[{'all':!![]}];}return db[_0xa919('0x2c')]['findAll'](_0x2438b6);})[_0xa919('0x27')](function(_0x72d094){_0x56eaf1[_0xa919('0x43')]=_0x72d094;return _0x56eaf1;})[_0xa919('0x27')](respondWithFilteredResult(_0x279c1c,_0x2438b6))['catch'](handleError(_0x279c1c,null));};exports[_0xa919('0x44')]=function(_0x181fa8,_0x155dad){var _0x835f33={'raw':!![],'where':{'id':_0x181fa8['params']['id']}},_0x3607d8={};_0x3607d8[_0xa919('0x34')]=_['keys'](db[_0xa919('0x2c')][_0xa919('0x2d')]);_0x3607d8[_0xa919('0x32')]=_[_0xa919('0x33')](_0x181fa8[_0xa919('0x32')]);_0x3607d8[_0xa919('0x3d')]=_['intersection'](_0x3607d8[_0xa919('0x34')],_0x3607d8[_0xa919('0x32')]);_0x835f33[_0xa919('0x35')]=_[_0xa919('0x36')](_0x3607d8[_0xa919('0x34')],qs[_0xa919('0x37')](_0x181fa8[_0xa919('0x32')][_0xa919('0x37')]));_0x835f33[_0xa919('0x35')]=_0x835f33[_0xa919('0x35')][_0xa919('0x38')]?_0x835f33[_0xa919('0x35')]:_0x3607d8['model'];if(_0x181fa8[_0xa919('0x32')][_0xa919('0x41')]){_0x835f33['include']=[{'all':!![]}];}_0x835f33=_['merge']({},_0x835f33,_0x181fa8['options']);return db[_0xa919('0x2c')][_0xa919('0x45')](_0x835f33)['then'](handleEntityNotFound(_0x155dad,null))[_0xa919('0x27')](respondWithResult(_0x155dad,null))['catch'](handleError(_0x155dad,null));};exports[_0xa919('0x46')]=function(_0x3ac638,_0x19609e){var _0x55f764={'where':{'id':_0x3ac638[_0xa919('0x47')]['id']}},_0x31726a={};_0x31726a[_0xa919('0x34')]=_[_0xa919('0x33')](db['Attachment'][_0xa919('0x2d')]);_0x55f764[_0xa919('0x35')]=_[_0xa919('0x36')](_0x31726a[_0xa919('0x34')],qs[_0xa919('0x37')](_0x3ac638['query'][_0xa919('0x37')]));_0x55f764[_0xa919('0x35')]=_0x55f764[_0xa919('0x35')][_0xa919('0x38')]?_0x55f764[_0xa919('0x35')]:_0x31726a['model'];if(_0x3ac638['query'][_0xa919('0x41')]){_0x55f764[_0xa919('0x42')]=[{'all':!![]}];}_0x55f764=_[_0xa919('0x48')]({},_0x55f764,_0x3ac638[_0xa919('0x49')]);return db[_0xa919('0x2c')]['find'](_0x55f764)[_0xa919('0x27')](handleEntityNotFound(_0x19609e,null))[_0xa919('0x27')](function(_0x11974f){if(_0x11974f){var _0x56d7b5=_0x11974f[_0xa919('0x4a')]({'plain':!![]});_0x56d7b5=qs[_0xa919('0x4b')](_0x56d7b5,['id',_0xa919('0x4c'),_0xa919('0x4d')]);_0x3ac638['body']=_[_0xa919('0x4b')](_0x3ac638['body'],['id',_0xa919('0x4c'),_0xa919('0x4d')]);return db[_0xa919('0x2c')][_0xa919('0x4e')](_['merge'](_0x56d7b5,_0x3ac638[_0xa919('0x4f')]),{'include':_0x3ac638[_0xa919('0x32')]['includeAll']?[{'all':!![]}]:undefined});}})[_0xa919('0x27')](respondWithResult(_0x19609e,0xc9))[_0xa919('0x50')](handleError(_0x19609e,null));};exports[_0xa919('0x26')]=function(_0x4bb914,_0x475453){if(_0x4bb914[_0xa919('0x4f')]['id']){delete _0x4bb914['body']['id'];}return db[_0xa919('0x2c')][_0xa919('0x45')]({'where':{'id':_0x4bb914['params']['id']}})[_0xa919('0x27')](handleEntityNotFound(_0x475453,null))['then'](saveUpdates(_0x4bb914['body'],null))['then'](respondWithResult(_0x475453,null))[_0xa919('0x50')](handleError(_0x475453,null));};exports[_0xa919('0x51')]=function(_0x4d57db,_0x228482){return db[_0xa919('0x2c')][_0xa919('0x45')]({'where':{'id':_0x4d57db[_0xa919('0x47')]['id']}})['then'](handleEntityNotFound(_0x228482,null))['then'](removeEntity(_0x228482,null))[_0xa919('0x50')](handleError(_0x228482,null));};exports[_0xa919('0x4e')]=function(_0x3835d3,_0x2c5900,_0x1ac495){_0x3835d3[_0xa919('0x4f')]['name']=_0x3835d3[_0xa919('0x52')][_0xa919('0x53')];_0x3835d3[_0xa919('0x4f')][_0xa919('0x54')]=_0x3835d3[_0xa919('0x52')]['filename'];_0x3835d3[_0xa919('0x4f')][_0xa919('0x2f')]=_0x3835d3['file']['mimetype'];return db[_0xa919('0x2c')][_0xa919('0x4e')](_0x3835d3[_0xa919('0x4f')])[_0xa919('0x27')](respondWithResult(_0x2c5900,0xc9))['catch'](handleError(_0x2c5900,null));};exports[_0xa919('0x55')]=function(_0x500066,_0x208c54,_0x3a199f){return db[_0xa919('0x2c')][_0xa919('0x56')]({'where':{'id':_0x500066[_0xa919('0x47')]['id']},'raw':!![]})[_0xa919('0x27')](handleEntityNotFound(_0x208c54,null))['then'](function(_0x4a98dc){if(_0x4a98dc){var _0x25fe61=_0x4a98dc[_0xa919('0x57')]!==null;var _0x3ba1dc=path[_0xa919('0x58')](config[_0xa919('0x59')],_0xa919('0x5a'));if(_0x25fe61){_0x3ba1dc=path[_0xa919('0x58')](_0x3ba1dc,'offline-chat/');}var _0x5849b7=path[_0xa919('0x58')](_0x3ba1dc,_0x4a98dc[_0xa919('0x54')]);return _0x208c54[_0xa919('0x55')](_0x5849b7);}})[_0xa919('0x50')](handleError(_0x208c54,null));};