Built motion from commit (unavailable).|2.5.30
[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 _0x0937=['include','rows','catch','show','keys','find','clone','params','includeAll','get','updatedAt','omit','createdAt','create','body','file','originalname','basename','mimetype','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','download','eml-format','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','count','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','intersection','fields','attributes','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','Attachment'];(function(_0x25efdf,_0x521462){var _0x22c495=function(_0x184469){while(--_0x184469){_0x25efdf['push'](_0x25efdf['shift']());}};_0x22c495(++_0x521462);}(_0x0937,0x169));var _0x7093=function(_0x2f78c2,_0x45873c){_0x2f78c2=_0x2f78c2-0x0;var _0x31852f=_0x0937[_0x2f78c2];return _0x31852f;};'use strict';var emlformat=require(_0x7093('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x7093('0x1'));var rp=require(_0x7093('0x2'));var moment=require(_0x7093('0x3'));var BPromise=require(_0x7093('0x4'));var Mustache=require('mustache');var util=require(_0x7093('0x5'));var path=require(_0x7093('0x6'));var sox=require(_0x7093('0x7'));var csv=require(_0x7093('0x8'));var ejs=require(_0x7093('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7093('0xa'));var squel=require(_0x7093('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7093('0xc'));var toCsv=require(_0x7093('0x8'));var querystring=require(_0x7093('0xd'));var Papa=require('papaparse');var Redis=require(_0x7093('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7093('0xf'));var logger=require(_0x7093('0x10'))('api');var utils=require(_0x7093('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x7093('0x12'));var db=require(_0x7093('0x13'))['db'];function respondWithStatusCode(_0x350794,_0x3430d0){_0x3430d0=_0x3430d0||0xcc;return function(_0x1d9257){if(_0x1d9257){return _0x350794['sendStatus'](_0x3430d0);}return _0x350794['status'](_0x3430d0)['end']();};}function respondWithResult(_0x46de54,_0x22b4e7){_0x22b4e7=_0x22b4e7||0xc8;return function(_0x3e02e8){if(_0x3e02e8){return _0x46de54[_0x7093('0x14')](_0x22b4e7)[_0x7093('0x15')](_0x3e02e8);}};}function respondWithFilteredResult(_0x33d67c,_0x74d587){return function(_0x50df46){if(_0x50df46){var _0x174df2=typeof _0x74d587[_0x7093('0x16')]==='undefined'&&typeof _0x74d587['limit']==='undefined';var _0x326956=_0x50df46[_0x7093('0x17')];var _0x89464a=_0x174df2?0x0:_0x74d587[_0x7093('0x16')];var _0x40e026=_0x174df2?_0x50df46[_0x7093('0x17')]:_0x74d587[_0x7093('0x16')]+_0x74d587[_0x7093('0x18')];var _0x173e2b;if(_0x40e026>=_0x326956){_0x40e026=_0x326956;_0x173e2b=0xc8;}else{_0x173e2b=0xce;}_0x33d67c['status'](_0x173e2b);return _0x33d67c[_0x7093('0x19')](_0x7093('0x1a'),_0x89464a+'-'+_0x40e026+'/'+_0x326956)[_0x7093('0x15')](_0x50df46);}return null;};}function patchUpdates(_0x162870){return function(_0x5184f3){try{jsonpatch[_0x7093('0x1b')](_0x5184f3,_0x162870,!![]);}catch(_0x15a54e){return BPromise[_0x7093('0x1c')](_0x15a54e);}return _0x5184f3['save']();};}function saveUpdates(_0x4eb517,_0x285907){return function(_0x19d8f2){if(_0x19d8f2){return _0x19d8f2[_0x7093('0x1d')](_0x4eb517)[_0x7093('0x1e')](function(_0x4dbedd){return _0x4dbedd;});}return null;};}function removeEntity(_0x1a9b39,_0x1f3bf0){return function(_0x4389c8){if(_0x4389c8){return _0x4389c8[_0x7093('0x1f')]()[_0x7093('0x1e')](function(){_0x1a9b39[_0x7093('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1bf509,_0x1bb6f7){return function(_0xa6b2f){if(!_0xa6b2f){_0x1bf509[_0x7093('0x20')](0x194);}return _0xa6b2f;};}function handleError(_0x43a36f,_0x51d880){_0x51d880=_0x51d880||0x1f4;return function(_0x3d6ac8){logger['error'](_0x3d6ac8[_0x7093('0x21')]);if(_0x3d6ac8[_0x7093('0x22')]){delete _0x3d6ac8[_0x7093('0x22')];}_0x43a36f[_0x7093('0x14')](_0x51d880)[_0x7093('0x23')](_0x3d6ac8);};}exports[_0x7093('0x24')]=function(_0x10eda5,_0x1a6eb7){var _0x5801b6={},_0x38bf3a={},_0x3177de={'count':0x0,'rows':[]};var _0x3fa24e=_[_0x7093('0x25')](db['Attachment'][_0x7093('0x26')],function(_0x1b990f){return{'name':_0x1b990f[_0x7093('0x27')],'type':_0x1b990f[_0x7093('0x28')][_0x7093('0x29')]};});_0x38bf3a[_0x7093('0x2a')]=_[_0x7093('0x25')](_0x3fa24e,_0x7093('0x22'));_0x38bf3a[_0x7093('0x2b')]=_['keys'](_0x10eda5[_0x7093('0x2b')]);_0x38bf3a['filters']=_[_0x7093('0x2c')](_0x38bf3a['model'],_0x38bf3a[_0x7093('0x2b')]);_0x5801b6['attributes']=_[_0x7093('0x2c')](_0x38bf3a[_0x7093('0x2a')],qs[_0x7093('0x2d')](_0x10eda5[_0x7093('0x2b')]['fields']));_0x5801b6[_0x7093('0x2e')]=_0x5801b6['attributes'][_0x7093('0x2f')]?_0x5801b6['attributes']:_0x38bf3a[_0x7093('0x2a')];if(!_0x10eda5[_0x7093('0x2b')]['hasOwnProperty'](_0x7093('0x30'))){_0x5801b6['limit']=qs[_0x7093('0x18')](_0x10eda5[_0x7093('0x2b')][_0x7093('0x18')]);_0x5801b6[_0x7093('0x16')]=qs[_0x7093('0x16')](_0x10eda5[_0x7093('0x2b')][_0x7093('0x16')]);}_0x5801b6[_0x7093('0x31')]=qs[_0x7093('0x32')](_0x10eda5[_0x7093('0x2b')][_0x7093('0x32')]);_0x5801b6[_0x7093('0x33')]=qs[_0x7093('0x34')](_[_0x7093('0x35')](_0x10eda5[_0x7093('0x2b')],_0x38bf3a[_0x7093('0x34')]),_0x3fa24e);if(_0x10eda5[_0x7093('0x2b')][_0x7093('0x36')]){_0x5801b6[_0x7093('0x33')]=_[_0x7093('0x37')](_0x5801b6[_0x7093('0x33')],{'$or':_[_0x7093('0x25')](_0x3fa24e,function(_0x592cdb){if(_0x592cdb[_0x7093('0x28')]!==_0x7093('0x38')){var _0x5cd2a7={};_0x5cd2a7[_0x592cdb['name']]={'$like':'%'+_0x10eda5[_0x7093('0x2b')][_0x7093('0x36')]+'%'};return _0x5cd2a7;}})});}_0x5801b6=_[_0x7093('0x37')]({},_0x5801b6,_0x10eda5[_0x7093('0x39')]);var _0x47933e={'where':_0x5801b6[_0x7093('0x33')]};return db[_0x7093('0x3a')][_0x7093('0x17')](_0x47933e)['then'](function(_0x560b2d){_0x3177de['count']=_0x560b2d;if(_0x10eda5[_0x7093('0x2b')]['includeAll']){_0x5801b6[_0x7093('0x3b')]=[{'all':!![]}];}return db[_0x7093('0x3a')]['findAll'](_0x5801b6);})[_0x7093('0x1e')](function(_0x561c41){_0x3177de[_0x7093('0x3c')]=_0x561c41;return _0x3177de;})[_0x7093('0x1e')](respondWithFilteredResult(_0x1a6eb7,_0x5801b6))[_0x7093('0x3d')](handleError(_0x1a6eb7,null));};exports[_0x7093('0x3e')]=function(_0x50659e,_0x14c6af){var _0x3f58cb={'raw':!![],'where':{'id':_0x50659e['params']['id']}},_0x29c72a={};_0x29c72a[_0x7093('0x2a')]=_['keys'](db['Attachment'][_0x7093('0x26')]);_0x29c72a[_0x7093('0x2b')]=_[_0x7093('0x3f')](_0x50659e[_0x7093('0x2b')]);_0x29c72a[_0x7093('0x34')]=_[_0x7093('0x2c')](_0x29c72a[_0x7093('0x2a')],_0x29c72a['query']);_0x3f58cb[_0x7093('0x2e')]=_[_0x7093('0x2c')](_0x29c72a[_0x7093('0x2a')],qs[_0x7093('0x2d')](_0x50659e['query'][_0x7093('0x2d')]));_0x3f58cb[_0x7093('0x2e')]=_0x3f58cb[_0x7093('0x2e')][_0x7093('0x2f')]?_0x3f58cb[_0x7093('0x2e')]:_0x29c72a[_0x7093('0x2a')];if(_0x50659e[_0x7093('0x2b')]['includeAll']){_0x3f58cb[_0x7093('0x3b')]=[{'all':!![]}];}_0x3f58cb=_[_0x7093('0x37')]({},_0x3f58cb,_0x50659e[_0x7093('0x39')]);return db[_0x7093('0x3a')][_0x7093('0x40')](_0x3f58cb)[_0x7093('0x1e')](handleEntityNotFound(_0x14c6af,null))[_0x7093('0x1e')](respondWithResult(_0x14c6af,null))[_0x7093('0x3d')](handleError(_0x14c6af,null));};exports[_0x7093('0x41')]=function(_0x5e5676,_0xb4cba){var _0x29e402={'where':{'id':_0x5e5676[_0x7093('0x42')]['id']}},_0x337343={};_0x337343['model']=_[_0x7093('0x3f')](db['Attachment'][_0x7093('0x26')]);_0x29e402['attributes']=_['intersection'](_0x337343[_0x7093('0x2a')],qs['fields'](_0x5e5676['query'][_0x7093('0x2d')]));_0x29e402[_0x7093('0x2e')]=_0x29e402['attributes'][_0x7093('0x2f')]?_0x29e402[_0x7093('0x2e')]:_0x337343[_0x7093('0x2a')];if(_0x5e5676[_0x7093('0x2b')][_0x7093('0x43')]){_0x29e402[_0x7093('0x3b')]=[{'all':!![]}];}_0x29e402=_[_0x7093('0x37')]({},_0x29e402,_0x5e5676['options']);return db['Attachment']['find'](_0x29e402)[_0x7093('0x1e')](handleEntityNotFound(_0xb4cba,null))[_0x7093('0x1e')](function(_0xf8818a){if(_0xf8818a){var _0x3b267b=_0xf8818a[_0x7093('0x44')]({'plain':!![]});_0x3b267b=qs['omit'](_0x3b267b,['id','createdAt',_0x7093('0x45')]);_0x5e5676['body']=_[_0x7093('0x46')](_0x5e5676['body'],['id',_0x7093('0x47'),_0x7093('0x45')]);return db[_0x7093('0x3a')][_0x7093('0x48')](_['merge'](_0x3b267b,_0x5e5676['body']),{'include':_0x5e5676[_0x7093('0x2b')][_0x7093('0x43')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0xb4cba,0xc9))[_0x7093('0x3d')](handleError(_0xb4cba,null));};exports[_0x7093('0x1d')]=function(_0x1c1b35,_0x4cd4b5){if(_0x1c1b35['body']['id']){delete _0x1c1b35[_0x7093('0x49')]['id'];}return db[_0x7093('0x3a')]['find']({'where':{'id':_0x1c1b35[_0x7093('0x42')]['id']}})[_0x7093('0x1e')](handleEntityNotFound(_0x4cd4b5,null))['then'](saveUpdates(_0x1c1b35['body'],null))[_0x7093('0x1e')](respondWithResult(_0x4cd4b5,null))[_0x7093('0x3d')](handleError(_0x4cd4b5,null));};exports['destroy']=function(_0x24604d,_0x123945){return db[_0x7093('0x3a')][_0x7093('0x40')]({'where':{'id':_0x24604d[_0x7093('0x42')]['id']}})[_0x7093('0x1e')](handleEntityNotFound(_0x123945,null))[_0x7093('0x1e')](removeEntity(_0x123945,null))[_0x7093('0x3d')](handleError(_0x123945,null));};exports['create']=function(_0x34535b,_0x365d40,_0xb7cf31){_0x34535b[_0x7093('0x49')][_0x7093('0x22')]=_0x34535b[_0x7093('0x4a')][_0x7093('0x4b')];_0x34535b['body'][_0x7093('0x4c')]=_0x34535b['file']['filename'];_0x34535b[_0x7093('0x49')]['type']=_0x34535b[_0x7093('0x4a')][_0x7093('0x4d')];return db['Attachment'][_0x7093('0x48')](_0x34535b[_0x7093('0x49')])['then'](respondWithResult(_0x365d40,0xc9))[_0x7093('0x3d')](handleError(_0x365d40,null));};exports['download']=function(_0x3f491d,_0x2e0bc5,_0x185ccf){return db[_0x7093('0x3a')][_0x7093('0x4e')]({'where':{'id':_0x3f491d[_0x7093('0x42')]['id']},'raw':!![]})[_0x7093('0x1e')](handleEntityNotFound(_0x2e0bc5,null))[_0x7093('0x1e')](function(_0x13c71c){if(_0x13c71c){var _0x173ccb=_0x13c71c[_0x7093('0x4f')]!==null;var _0x3a0380=path[_0x7093('0x50')](config[_0x7093('0x51')],_0x7093('0x52'));if(_0x173ccb){_0x3a0380=path['join'](_0x3a0380,'offline-chat/');}var _0x3afabb=path[_0x7093('0x50')](_0x3a0380,_0x13c71c['basename']);return _0x2e0bc5[_0x7093('0x53')](_0x3afabb);}})[_0x7093('0x3d')](handleError(_0x2e0bc5,null));};