afc8992bc21d8e769d05bb92974d63daf2e601d5
[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 _0x08af=['mimetype','download','findOne','ChatOfflineMessageId','join','server/files/attachments/','offline-chat/','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','destroy','then','error','stack','name','map','Attachment','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','length','include','find','clone','get','omit','updatedAt','body','createdAt','create','file','originalname','basename','filename'];(function(_0x1d24eb,_0x12295b){var _0x1dc576=function(_0x4d5770){while(--_0x4d5770){_0x1d24eb['push'](_0x1d24eb['shift']());}};_0x1dc576(++_0x12295b);}(_0x08af,0xb7));var _0xf08a=function(_0x1d850e,_0x723bc4){_0x1d850e=_0x1d850e-0x0;var _0x2efd1f=_0x08af[_0x1d850e];return _0x2efd1f;};'use strict';var emlformat=require(_0xf08a('0x0'));var rimraf=require(_0xf08a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf08a('0x2'));var rp=require(_0xf08a('0x3'));var moment=require(_0xf08a('0x4'));var BPromise=require(_0xf08a('0x5'));var Mustache=require('mustache');var util=require(_0xf08a('0x6'));var path=require('path');var sox=require(_0xf08a('0x7'));var csv=require(_0xf08a('0x8'));var ejs=require(_0xf08a('0x9'));var fs=require('fs');var fs_extra=require(_0xf08a('0xa'));var _=require(_0xf08a('0xb'));var squel=require(_0xf08a('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf08a('0xd'));var toCsv=require(_0xf08a('0x8'));var querystring=require(_0xf08a('0xe'));var Papa=require(_0xf08a('0xf'));var Redis=require(_0xf08a('0x10'));var authService=require(_0xf08a('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xf08a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf08a('0x13'));var utils=require(_0xf08a('0x14'));var config=require(_0xf08a('0x15'));var licenseUtil=require(_0xf08a('0x16'));var db=require(_0xf08a('0x17'))['db'];function respondWithStatusCode(_0x48a7aa,_0x19ff42){_0x19ff42=_0x19ff42||0xcc;return function(_0x143751){if(_0x143751){return _0x48a7aa[_0xf08a('0x18')](_0x19ff42);}return _0x48a7aa[_0xf08a('0x19')](_0x19ff42)['end']();};}function respondWithResult(_0x307f77,_0x18df6e){_0x18df6e=_0x18df6e||0xc8;return function(_0x37dfa7){if(_0x37dfa7){return _0x307f77[_0xf08a('0x19')](_0x18df6e)[_0xf08a('0x1a')](_0x37dfa7);}};}function respondWithFilteredResult(_0x2e9a66,_0x1a9f6c){return function(_0x257309){if(_0x257309){var _0x23c301=typeof _0x1a9f6c['offset']===_0xf08a('0x1b')&&typeof _0x1a9f6c[_0xf08a('0x1c')]==='undefined';var _0x5c0572=_0x257309[_0xf08a('0x1d')];var _0x254c9d=_0x23c301?0x0:_0x1a9f6c[_0xf08a('0x1e')];var _0x30c6d0=_0x23c301?_0x257309['count']:_0x1a9f6c['offset']+_0x1a9f6c['limit'];var _0x5a02d8;if(_0x30c6d0>=_0x5c0572){_0x30c6d0=_0x5c0572;_0x5a02d8=0xc8;}else{_0x5a02d8=0xce;}_0x2e9a66[_0xf08a('0x19')](_0x5a02d8);return _0x2e9a66[_0xf08a('0x1f')](_0xf08a('0x20'),_0x254c9d+'-'+_0x30c6d0+'/'+_0x5c0572)[_0xf08a('0x1a')](_0x257309);}return null;};}function patchUpdates(_0xfa57b8){return function(_0x5c6e81){try{jsonpatch[_0xf08a('0x21')](_0x5c6e81,_0xfa57b8,!![]);}catch(_0x3000d4){return BPromise[_0xf08a('0x22')](_0x3000d4);}return _0x5c6e81['save']();};}function saveUpdates(_0x2c7413,_0x1812a6){return function(_0x24163e){if(_0x24163e){return _0x24163e[_0xf08a('0x23')](_0x2c7413)['then'](function(_0x253357){return _0x253357;});}return null;};}function removeEntity(_0x3031b7,_0x131507){return function(_0xccf5bc){if(_0xccf5bc){return _0xccf5bc[_0xf08a('0x24')]()[_0xf08a('0x25')](function(){_0x3031b7[_0xf08a('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xbfc6e8,_0x15b653){return function(_0xc47e86){if(!_0xc47e86){_0xbfc6e8['sendStatus'](0x194);}return _0xc47e86;};}function handleError(_0x3a6d7c,_0x1bf680){_0x1bf680=_0x1bf680||0x1f4;return function(_0x2df195){logger[_0xf08a('0x26')](_0x2df195[_0xf08a('0x27')]);if(_0x2df195[_0xf08a('0x28')]){delete _0x2df195[_0xf08a('0x28')];}_0x3a6d7c[_0xf08a('0x19')](_0x1bf680)['send'](_0x2df195);};}exports['index']=function(_0xb6a203,_0x1a3a54){var _0x1f192a={},_0x15df7c={},_0xf5c80e={'count':0x0,'rows':[]};var _0x5d71b8=_[_0xf08a('0x29')](db[_0xf08a('0x2a')][_0xf08a('0x2b')],function(_0x3de322){return{'name':_0x3de322['fieldName'],'type':_0x3de322[_0xf08a('0x2c')][_0xf08a('0x2d')]};});_0x15df7c[_0xf08a('0x2e')]=_[_0xf08a('0x29')](_0x5d71b8,_0xf08a('0x28'));_0x15df7c[_0xf08a('0x2f')]=_[_0xf08a('0x30')](_0xb6a203['query']);_0x15df7c['filters']=_[_0xf08a('0x31')](_0x15df7c['model'],_0x15df7c[_0xf08a('0x2f')]);_0x1f192a[_0xf08a('0x32')]=_[_0xf08a('0x31')](_0x15df7c[_0xf08a('0x2e')],qs[_0xf08a('0x33')](_0xb6a203['query'][_0xf08a('0x33')]));_0x1f192a[_0xf08a('0x32')]=_0x1f192a[_0xf08a('0x32')]['length']?_0x1f192a[_0xf08a('0x32')]:_0x15df7c[_0xf08a('0x2e')];if(!_0xb6a203[_0xf08a('0x2f')][_0xf08a('0x34')](_0xf08a('0x35'))){_0x1f192a[_0xf08a('0x1c')]=qs[_0xf08a('0x1c')](_0xb6a203[_0xf08a('0x2f')][_0xf08a('0x1c')]);_0x1f192a[_0xf08a('0x1e')]=qs[_0xf08a('0x1e')](_0xb6a203[_0xf08a('0x2f')][_0xf08a('0x1e')]);}_0x1f192a[_0xf08a('0x36')]=qs[_0xf08a('0x37')](_0xb6a203['query'][_0xf08a('0x37')]);_0x1f192a[_0xf08a('0x38')]=qs['filters'](_[_0xf08a('0x39')](_0xb6a203[_0xf08a('0x2f')],_0x15df7c['filters']),_0x5d71b8);if(_0xb6a203[_0xf08a('0x2f')][_0xf08a('0x3a')]){_0x1f192a[_0xf08a('0x38')]=_[_0xf08a('0x3b')](_0x1f192a[_0xf08a('0x38')],{'$or':_[_0xf08a('0x29')](_0x5d71b8,function(_0x105d31){if(_0x105d31['type']!=='VIRTUAL'){var _0x39d291={};_0x39d291[_0x105d31[_0xf08a('0x28')]]={'$like':'%'+_0xb6a203['query'][_0xf08a('0x3a')]+'%'};return _0x39d291;}})});}_0x1f192a=_['merge']({},_0x1f192a,_0xb6a203[_0xf08a('0x3c')]);var _0x339162={'where':_0x1f192a[_0xf08a('0x38')]};return db[_0xf08a('0x2a')][_0xf08a('0x1d')](_0x339162)['then'](function(_0x3cf1db){_0xf5c80e[_0xf08a('0x1d')]=_0x3cf1db;if(_0xb6a203[_0xf08a('0x2f')][_0xf08a('0x3d')]){_0x1f192a['include']=[{'all':!![]}];}return db[_0xf08a('0x2a')][_0xf08a('0x3e')](_0x1f192a);})[_0xf08a('0x25')](function(_0x5268d2){_0xf5c80e[_0xf08a('0x3f')]=_0x5268d2;return _0xf5c80e;})['then'](respondWithFilteredResult(_0x1a3a54,_0x1f192a))[_0xf08a('0x40')](handleError(_0x1a3a54,null));};exports[_0xf08a('0x41')]=function(_0x4f03f6,_0x4e8897){var _0x2e717e={'raw':!![],'where':{'id':_0x4f03f6[_0xf08a('0x42')]['id']}},_0x1c50aa={};_0x1c50aa[_0xf08a('0x2e')]=_[_0xf08a('0x30')](db[_0xf08a('0x2a')][_0xf08a('0x2b')]);_0x1c50aa['query']=_['keys'](_0x4f03f6['query']);_0x1c50aa['filters']=_[_0xf08a('0x31')](_0x1c50aa[_0xf08a('0x2e')],_0x1c50aa[_0xf08a('0x2f')]);_0x2e717e[_0xf08a('0x32')]=_[_0xf08a('0x31')](_0x1c50aa[_0xf08a('0x2e')],qs['fields'](_0x4f03f6['query'][_0xf08a('0x33')]));_0x2e717e[_0xf08a('0x32')]=_0x2e717e[_0xf08a('0x32')][_0xf08a('0x43')]?_0x2e717e[_0xf08a('0x32')]:_0x1c50aa[_0xf08a('0x2e')];if(_0x4f03f6[_0xf08a('0x2f')][_0xf08a('0x3d')]){_0x2e717e[_0xf08a('0x44')]=[{'all':!![]}];}_0x2e717e=_['merge']({},_0x2e717e,_0x4f03f6['options']);return db[_0xf08a('0x2a')][_0xf08a('0x45')](_0x2e717e)[_0xf08a('0x25')](handleEntityNotFound(_0x4e8897,null))['then'](respondWithResult(_0x4e8897,null))[_0xf08a('0x40')](handleError(_0x4e8897,null));};exports[_0xf08a('0x46')]=function(_0x458c75,_0x51b04e){var _0x3275db={'where':{'id':_0x458c75[_0xf08a('0x42')]['id']}},_0x3b3227={};_0x3b3227[_0xf08a('0x2e')]=_[_0xf08a('0x30')](db[_0xf08a('0x2a')][_0xf08a('0x2b')]);_0x3275db[_0xf08a('0x32')]=_[_0xf08a('0x31')](_0x3b3227[_0xf08a('0x2e')],qs[_0xf08a('0x33')](_0x458c75[_0xf08a('0x2f')]['fields']));_0x3275db[_0xf08a('0x32')]=_0x3275db[_0xf08a('0x32')][_0xf08a('0x43')]?_0x3275db[_0xf08a('0x32')]:_0x3b3227[_0xf08a('0x2e')];if(_0x458c75[_0xf08a('0x2f')][_0xf08a('0x3d')]){_0x3275db[_0xf08a('0x44')]=[{'all':!![]}];}_0x3275db=_[_0xf08a('0x3b')]({},_0x3275db,_0x458c75[_0xf08a('0x3c')]);return db[_0xf08a('0x2a')][_0xf08a('0x45')](_0x3275db)[_0xf08a('0x25')](handleEntityNotFound(_0x51b04e,null))['then'](function(_0x487222){if(_0x487222){var _0x312759=_0x487222[_0xf08a('0x47')]({'plain':!![]});_0x312759=qs[_0xf08a('0x48')](_0x312759,['id','createdAt',_0xf08a('0x49')]);_0x458c75[_0xf08a('0x4a')]=_[_0xf08a('0x48')](_0x458c75['body'],['id',_0xf08a('0x4b'),_0xf08a('0x49')]);return db[_0xf08a('0x2a')][_0xf08a('0x4c')](_[_0xf08a('0x3b')](_0x312759,_0x458c75[_0xf08a('0x4a')]),{'include':_0x458c75[_0xf08a('0x2f')]['includeAll']?[{'all':!![]}]:undefined});}})[_0xf08a('0x25')](respondWithResult(_0x51b04e,0xc9))['catch'](handleError(_0x51b04e,null));};exports['update']=function(_0x1b095c,_0x53db28){if(_0x1b095c[_0xf08a('0x4a')]['id']){delete _0x1b095c[_0xf08a('0x4a')]['id'];}return db[_0xf08a('0x2a')][_0xf08a('0x45')]({'where':{'id':_0x1b095c[_0xf08a('0x42')]['id']}})[_0xf08a('0x25')](handleEntityNotFound(_0x53db28,null))[_0xf08a('0x25')](saveUpdates(_0x1b095c[_0xf08a('0x4a')],null))[_0xf08a('0x25')](respondWithResult(_0x53db28,null))[_0xf08a('0x40')](handleError(_0x53db28,null));};exports[_0xf08a('0x24')]=function(_0x13221d,_0x5b555a){return db[_0xf08a('0x2a')][_0xf08a('0x45')]({'where':{'id':_0x13221d[_0xf08a('0x42')]['id']}})[_0xf08a('0x25')](handleEntityNotFound(_0x5b555a,null))[_0xf08a('0x25')](removeEntity(_0x5b555a,null))['catch'](handleError(_0x5b555a,null));};exports[_0xf08a('0x4c')]=function(_0xe0307b,_0x33f2d6,_0x45b265){_0xe0307b[_0xf08a('0x4a')][_0xf08a('0x28')]=_0xe0307b[_0xf08a('0x4d')][_0xf08a('0x4e')];_0xe0307b['body'][_0xf08a('0x4f')]=_0xe0307b['file'][_0xf08a('0x50')];_0xe0307b[_0xf08a('0x4a')][_0xf08a('0x2c')]=_0xe0307b[_0xf08a('0x4d')][_0xf08a('0x51')];return db[_0xf08a('0x2a')][_0xf08a('0x4c')](_0xe0307b['body'])[_0xf08a('0x25')](respondWithResult(_0x33f2d6,0xc9))[_0xf08a('0x40')](handleError(_0x33f2d6,null));};exports[_0xf08a('0x52')]=function(_0x1a80bd,_0x2a77a8,_0x3c0526){return db[_0xf08a('0x2a')][_0xf08a('0x53')]({'where':{'id':_0x1a80bd[_0xf08a('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x2a77a8,null))[_0xf08a('0x25')](function(_0x36b547){if(_0x36b547){var _0x118b48=_0x36b547[_0xf08a('0x54')]!==null;var _0x5122bd=path[_0xf08a('0x55')](config['root'],_0xf08a('0x56'));if(_0x118b48){_0x5122bd=path['join'](_0x5122bd,_0xf08a('0x57'));}var _0x42ff14=path[_0xf08a('0x55')](_0x5122bd,_0x36b547[_0xf08a('0x4f')]);return _0x2a77a8['download'](_0x42ff14);}})[_0xf08a('0x40')](handleError(_0x2a77a8,null));};