Built motion from commit 9d7072cc.|2.5.39
[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 _0xcb97=['filters','intersection','attributes','hasOwnProperty','order','sort','where','filter','merge','includeAll','include','findAll','show','fields','length','options','find','catch','clone','params','get','omit','updatedAt','body','createdAt','create','file','filename','mimetype','download','ChatOfflineMessageId','join','root','offline-chat/','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','update','then','destroy','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x5528c3,_0x35a416){var _0x47ec1b=function(_0x54a18e){while(--_0x54a18e){_0x5528c3['push'](_0x5528c3['shift']());}};_0x47ec1b(++_0x35a416);}(_0xcb97,0x7b));var _0x7cb9=function(_0xd0a2d4,_0x3504d9){_0xd0a2d4=_0xd0a2d4-0x0;var _0x3c6c27=_0xcb97[_0xd0a2d4];return _0x3c6c27;};'use strict';var emlformat=require(_0x7cb9('0x0'));var rimraf=require(_0x7cb9('0x1'));var zipdir=require(_0x7cb9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7cb9('0x3'));var moment=require(_0x7cb9('0x4'));var BPromise=require(_0x7cb9('0x5'));var Mustache=require(_0x7cb9('0x6'));var util=require(_0x7cb9('0x7'));var path=require(_0x7cb9('0x8'));var sox=require(_0x7cb9('0x9'));var csv=require(_0x7cb9('0xa'));var ejs=require(_0x7cb9('0xb'));var fs=require('fs');var fs_extra=require(_0x7cb9('0xc'));var _=require(_0x7cb9('0xd'));var squel=require(_0x7cb9('0xe'));var crypto=require('crypto');var jsforce=require(_0x7cb9('0xf'));var deskjs=require(_0x7cb9('0x10'));var toCsv=require(_0x7cb9('0xa'));var querystring=require(_0x7cb9('0x11'));var Papa=require(_0x7cb9('0x12'));var Redis=require(_0x7cb9('0x13'));var authService=require(_0x7cb9('0x14'));var qs=require(_0x7cb9('0x15'));var as=require(_0x7cb9('0x16'));var hardwareService=require(_0x7cb9('0x17'));var logger=require(_0x7cb9('0x18'))('api');var utils=require(_0x7cb9('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x7cb9('0x1a'));var db=require(_0x7cb9('0x1b'))['db'];function respondWithStatusCode(_0x4baa17,_0x5184ba){_0x5184ba=_0x5184ba||0xcc;return function(_0x7c9f09){if(_0x7c9f09){return _0x4baa17[_0x7cb9('0x1c')](_0x5184ba);}return _0x4baa17[_0x7cb9('0x1d')](_0x5184ba)[_0x7cb9('0x1e')]();};}function respondWithResult(_0xf89f53,_0x36c23d){_0x36c23d=_0x36c23d||0xc8;return function(_0x36e5c0){if(_0x36e5c0){return _0xf89f53[_0x7cb9('0x1d')](_0x36c23d)[_0x7cb9('0x1f')](_0x36e5c0);}};}function respondWithFilteredResult(_0x5ae3b4,_0x506334){return function(_0x526dcb){if(_0x526dcb){var _0x2db63f=typeof _0x506334[_0x7cb9('0x20')]===_0x7cb9('0x21')&&typeof _0x506334[_0x7cb9('0x22')]==='undefined';var _0x5544c9=_0x526dcb[_0x7cb9('0x23')];var _0x4269ea=_0x2db63f?0x0:_0x506334[_0x7cb9('0x20')];var _0x17a0ac=_0x2db63f?_0x526dcb[_0x7cb9('0x23')]:_0x506334[_0x7cb9('0x20')]+_0x506334[_0x7cb9('0x22')];var _0x284e1a;if(_0x17a0ac>=_0x5544c9){_0x17a0ac=_0x5544c9;_0x284e1a=0xc8;}else{_0x284e1a=0xce;}_0x5ae3b4[_0x7cb9('0x1d')](_0x284e1a);return _0x5ae3b4['set'](_0x7cb9('0x24'),_0x4269ea+'-'+_0x17a0ac+'/'+_0x5544c9)['json'](_0x526dcb);}return null;};}function patchUpdates(_0x3a401a){return function(_0x18cb3d){try{jsonpatch['apply'](_0x18cb3d,_0x3a401a,!![]);}catch(_0x1af4b6){return BPromise[_0x7cb9('0x25')](_0x1af4b6);}return _0x18cb3d['save']();};}function saveUpdates(_0x446a77,_0x1c1068){return function(_0x566437){if(_0x566437){return _0x566437[_0x7cb9('0x26')](_0x446a77)[_0x7cb9('0x27')](function(_0x4eb651){return _0x4eb651;});}return null;};}function removeEntity(_0x54b110,_0x15e4b2){return function(_0xa8709b){if(_0xa8709b){return _0xa8709b[_0x7cb9('0x28')]()[_0x7cb9('0x27')](function(){_0x54b110[_0x7cb9('0x1d')](0xcc)[_0x7cb9('0x1e')]();});}};}function handleEntityNotFound(_0x132798,_0x2b07e5){return function(_0x255f5a){if(!_0x255f5a){_0x132798[_0x7cb9('0x1c')](0x194);}return _0x255f5a;};}function handleError(_0x15ad16,_0x55c10b){_0x55c10b=_0x55c10b||0x1f4;return function(_0x10127a){logger[_0x7cb9('0x29')](_0x10127a[_0x7cb9('0x2a')]);if(_0x10127a[_0x7cb9('0x2b')]){delete _0x10127a['name'];}_0x15ad16[_0x7cb9('0x1d')](_0x55c10b)[_0x7cb9('0x2c')](_0x10127a);};}exports[_0x7cb9('0x2d')]=function(_0x1ccb4c,_0x1b0a87){var _0x36960f={},_0x50442c={},_0x3d261d={'count':0x0,'rows':[]};var _0x37ad5e=_[_0x7cb9('0x2e')](db[_0x7cb9('0x2f')][_0x7cb9('0x30')],function(_0x186cd2){return{'name':_0x186cd2[_0x7cb9('0x31')],'type':_0x186cd2[_0x7cb9('0x32')][_0x7cb9('0x33')]};});_0x50442c[_0x7cb9('0x34')]=_[_0x7cb9('0x2e')](_0x37ad5e,_0x7cb9('0x2b'));_0x50442c[_0x7cb9('0x35')]=_[_0x7cb9('0x36')](_0x1ccb4c[_0x7cb9('0x35')]);_0x50442c[_0x7cb9('0x37')]=_[_0x7cb9('0x38')](_0x50442c['model'],_0x50442c[_0x7cb9('0x35')]);_0x36960f[_0x7cb9('0x39')]=_['intersection'](_0x50442c[_0x7cb9('0x34')],qs['fields'](_0x1ccb4c[_0x7cb9('0x35')]['fields']));_0x36960f[_0x7cb9('0x39')]=_0x36960f[_0x7cb9('0x39')]['length']?_0x36960f['attributes']:_0x50442c[_0x7cb9('0x34')];if(!_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x3a')]('nolimit')){_0x36960f[_0x7cb9('0x22')]=qs[_0x7cb9('0x22')](_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x22')]);_0x36960f[_0x7cb9('0x20')]=qs[_0x7cb9('0x20')](_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x20')]);}_0x36960f[_0x7cb9('0x3b')]=qs[_0x7cb9('0x3c')](_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x3c')]);_0x36960f[_0x7cb9('0x3d')]=qs[_0x7cb9('0x37')](_['pick'](_0x1ccb4c[_0x7cb9('0x35')],_0x50442c['filters']),_0x37ad5e);if(_0x1ccb4c['query'][_0x7cb9('0x3e')]){_0x36960f['where']=_[_0x7cb9('0x3f')](_0x36960f['where'],{'$or':_['map'](_0x37ad5e,function(_0x29c7e8){if(_0x29c7e8[_0x7cb9('0x32')]!=='VIRTUAL'){var _0xd94d10={};_0xd94d10[_0x29c7e8[_0x7cb9('0x2b')]]={'$like':'%'+_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x3e')]+'%'};return _0xd94d10;}})});}_0x36960f=_[_0x7cb9('0x3f')]({},_0x36960f,_0x1ccb4c['options']);var _0xec5fb3={'where':_0x36960f[_0x7cb9('0x3d')]};return db[_0x7cb9('0x2f')][_0x7cb9('0x23')](_0xec5fb3)[_0x7cb9('0x27')](function(_0x7781fa){_0x3d261d[_0x7cb9('0x23')]=_0x7781fa;if(_0x1ccb4c[_0x7cb9('0x35')][_0x7cb9('0x40')]){_0x36960f[_0x7cb9('0x41')]=[{'all':!![]}];}return db[_0x7cb9('0x2f')][_0x7cb9('0x42')](_0x36960f);})[_0x7cb9('0x27')](function(_0x18fd66){_0x3d261d['rows']=_0x18fd66;return _0x3d261d;})[_0x7cb9('0x27')](respondWithFilteredResult(_0x1b0a87,_0x36960f))['catch'](handleError(_0x1b0a87,null));};exports[_0x7cb9('0x43')]=function(_0x594885,_0x1fe755){var _0x5cdab0={'raw':!![],'where':{'id':_0x594885['params']['id']}},_0x1b639d={};_0x1b639d[_0x7cb9('0x34')]=_[_0x7cb9('0x36')](db['Attachment']['rawAttributes']);_0x1b639d[_0x7cb9('0x35')]=_[_0x7cb9('0x36')](_0x594885[_0x7cb9('0x35')]);_0x1b639d['filters']=_['intersection'](_0x1b639d[_0x7cb9('0x34')],_0x1b639d[_0x7cb9('0x35')]);_0x5cdab0[_0x7cb9('0x39')]=_[_0x7cb9('0x38')](_0x1b639d[_0x7cb9('0x34')],qs[_0x7cb9('0x44')](_0x594885[_0x7cb9('0x35')][_0x7cb9('0x44')]));_0x5cdab0['attributes']=_0x5cdab0[_0x7cb9('0x39')][_0x7cb9('0x45')]?_0x5cdab0[_0x7cb9('0x39')]:_0x1b639d[_0x7cb9('0x34')];if(_0x594885[_0x7cb9('0x35')][_0x7cb9('0x40')]){_0x5cdab0[_0x7cb9('0x41')]=[{'all':!![]}];}_0x5cdab0=_[_0x7cb9('0x3f')]({},_0x5cdab0,_0x594885[_0x7cb9('0x46')]);return db['Attachment'][_0x7cb9('0x47')](_0x5cdab0)['then'](handleEntityNotFound(_0x1fe755,null))[_0x7cb9('0x27')](respondWithResult(_0x1fe755,null))[_0x7cb9('0x48')](handleError(_0x1fe755,null));};exports[_0x7cb9('0x49')]=function(_0x48f675,_0x9d99a6){var _0x5b251={'where':{'id':_0x48f675[_0x7cb9('0x4a')]['id']}},_0x19ec7d={};_0x19ec7d['model']=_[_0x7cb9('0x36')](db[_0x7cb9('0x2f')][_0x7cb9('0x30')]);_0x5b251[_0x7cb9('0x39')]=_[_0x7cb9('0x38')](_0x19ec7d[_0x7cb9('0x34')],qs[_0x7cb9('0x44')](_0x48f675[_0x7cb9('0x35')][_0x7cb9('0x44')]));_0x5b251[_0x7cb9('0x39')]=_0x5b251[_0x7cb9('0x39')][_0x7cb9('0x45')]?_0x5b251[_0x7cb9('0x39')]:_0x19ec7d[_0x7cb9('0x34')];if(_0x48f675[_0x7cb9('0x35')][_0x7cb9('0x40')]){_0x5b251['include']=[{'all':!![]}];}_0x5b251=_[_0x7cb9('0x3f')]({},_0x5b251,_0x48f675['options']);return db[_0x7cb9('0x2f')][_0x7cb9('0x47')](_0x5b251)['then'](handleEntityNotFound(_0x9d99a6,null))['then'](function(_0x72b328){if(_0x72b328){var _0xeb4180=_0x72b328[_0x7cb9('0x4b')]({'plain':!![]});_0xeb4180=qs[_0x7cb9('0x4c')](_0xeb4180,['id','createdAt',_0x7cb9('0x4d')]);_0x48f675[_0x7cb9('0x4e')]=_[_0x7cb9('0x4c')](_0x48f675['body'],['id',_0x7cb9('0x4f'),'updatedAt']);return db[_0x7cb9('0x2f')][_0x7cb9('0x50')](_[_0x7cb9('0x3f')](_0xeb4180,_0x48f675['body']),{'include':_0x48f675[_0x7cb9('0x35')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x7cb9('0x27')](respondWithResult(_0x9d99a6,0xc9))[_0x7cb9('0x48')](handleError(_0x9d99a6,null));};exports['update']=function(_0x5b388b,_0x4a06ca){if(_0x5b388b['body']['id']){delete _0x5b388b[_0x7cb9('0x4e')]['id'];}return db[_0x7cb9('0x2f')][_0x7cb9('0x47')]({'where':{'id':_0x5b388b['params']['id']}})[_0x7cb9('0x27')](handleEntityNotFound(_0x4a06ca,null))[_0x7cb9('0x27')](saveUpdates(_0x5b388b['body'],null))[_0x7cb9('0x27')](respondWithResult(_0x4a06ca,null))[_0x7cb9('0x48')](handleError(_0x4a06ca,null));};exports['destroy']=function(_0xdd835,_0x509c3e){return db[_0x7cb9('0x2f')][_0x7cb9('0x47')]({'where':{'id':_0xdd835[_0x7cb9('0x4a')]['id']}})[_0x7cb9('0x27')](handleEntityNotFound(_0x509c3e,null))[_0x7cb9('0x27')](removeEntity(_0x509c3e,null))['catch'](handleError(_0x509c3e,null));};exports['create']=function(_0x51e3b2,_0x47d923,_0x1d9fe8){_0x51e3b2['body'][_0x7cb9('0x2b')]=_0x51e3b2['file']['originalname'];_0x51e3b2[_0x7cb9('0x4e')]['basename']=_0x51e3b2[_0x7cb9('0x51')][_0x7cb9('0x52')];_0x51e3b2[_0x7cb9('0x4e')][_0x7cb9('0x32')]=_0x51e3b2['file'][_0x7cb9('0x53')];return db[_0x7cb9('0x2f')][_0x7cb9('0x50')](_0x51e3b2[_0x7cb9('0x4e')])[_0x7cb9('0x27')](respondWithResult(_0x47d923,0xc9))['catch'](handleError(_0x47d923,null));};exports[_0x7cb9('0x54')]=function(_0x47a7bf,_0x44dee4,_0x2722a5){return db[_0x7cb9('0x2f')]['findOne']({'where':{'id':_0x47a7bf['params']['id']},'raw':!![]})[_0x7cb9('0x27')](handleEntityNotFound(_0x44dee4,null))['then'](function(_0x8e5ca7){if(_0x8e5ca7){var _0xd9fad6=_0x8e5ca7[_0x7cb9('0x55')]!==null;var _0x1c98fb=path[_0x7cb9('0x56')](config[_0x7cb9('0x57')],'server/files/attachments/');if(_0xd9fad6){_0x1c98fb=path['join'](_0x1c98fb,_0x7cb9('0x58'));}var _0x47158a=path['join'](_0x1c98fb,_0x8e5ca7['basename']);return _0x44dee4[_0x7cb9('0x54')](_0x47158a);}})[_0x7cb9('0x48')](handleError(_0x44dee4,null));};