Built motion from commit 6a0adb95.|2.6.31
[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 _0xd4c4=['keys','filters','model','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','findAll','rows','show','params','includeAll','options','find','catch','clone','include','omit','updatedAt','body','createdAt','create','file','originalname','basename','filename','download','join','server/files/attachments/','offline-chat/','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','reject','save','update','then','destroy','error','name','index','map','Attachment','rawAttributes','type','query'];(function(_0x53cdc3,_0x2c83d2){var _0x5f5c5d=function(_0x4f76df){while(--_0x4f76df){_0x53cdc3['push'](_0x53cdc3['shift']());}};_0x5f5c5d(++_0x2c83d2);}(_0xd4c4,0x76));var _0x4d4c=function(_0x317c38,_0x9d154d){_0x317c38=_0x317c38-0x0;var _0x304c05=_0xd4c4[_0x317c38];return _0x304c05;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4d4c('0x0'));var zipdir=require(_0x4d4c('0x1'));var jsonpatch=require(_0x4d4c('0x2'));var rp=require(_0x4d4c('0x3'));var moment=require('moment');var BPromise=require(_0x4d4c('0x4'));var Mustache=require(_0x4d4c('0x5'));var util=require(_0x4d4c('0x6'));var path=require(_0x4d4c('0x7'));var sox=require(_0x4d4c('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4d4c('0x9'));var _=require(_0x4d4c('0xa'));var squel=require(_0x4d4c('0xb'));var crypto=require(_0x4d4c('0xc'));var jsforce=require(_0x4d4c('0xd'));var deskjs=require(_0x4d4c('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4d4c('0xf'));var Papa=require('papaparse');var Redis=require(_0x4d4c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x4d4c('0x11'));var as=require(_0x4d4c('0x12'));var hardwareService=require(_0x4d4c('0x13'));var logger=require('../../config/logger')(_0x4d4c('0x14'));var utils=require(_0x4d4c('0x15'));var config=require(_0x4d4c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x4d4c('0x17'))['db'];function respondWithStatusCode(_0x623d85,_0x88f26){_0x88f26=_0x88f26||0xcc;return function(_0x342298){if(_0x342298){return _0x623d85[_0x4d4c('0x18')](_0x88f26);}return _0x623d85[_0x4d4c('0x19')](_0x88f26)[_0x4d4c('0x1a')]();};}function respondWithResult(_0x14ade2,_0x5c6f98){_0x5c6f98=_0x5c6f98||0xc8;return function(_0x1f2f4a){if(_0x1f2f4a){return _0x14ade2[_0x4d4c('0x19')](_0x5c6f98)[_0x4d4c('0x1b')](_0x1f2f4a);}};}function respondWithFilteredResult(_0x3919db,_0x423bd7){return function(_0x366098){if(_0x366098){var _0x88b02d=typeof _0x423bd7['offset']===_0x4d4c('0x1c')&&typeof _0x423bd7[_0x4d4c('0x1d')]===_0x4d4c('0x1c');var _0x2b3432=_0x366098[_0x4d4c('0x1e')];var _0x30636a=_0x88b02d?0x0:_0x423bd7[_0x4d4c('0x1f')];var _0x2d236d=_0x88b02d?_0x366098['count']:_0x423bd7[_0x4d4c('0x1f')]+_0x423bd7[_0x4d4c('0x1d')];var _0x1bbe40;if(_0x2d236d>=_0x2b3432){_0x2d236d=_0x2b3432;_0x1bbe40=0xc8;}else{_0x1bbe40=0xce;}_0x3919db[_0x4d4c('0x19')](_0x1bbe40);return _0x3919db['set'](_0x4d4c('0x20'),_0x30636a+'-'+_0x2d236d+'/'+_0x2b3432)[_0x4d4c('0x1b')](_0x366098);}return null;};}function patchUpdates(_0xd1d302){return function(_0x49a023){try{jsonpatch['apply'](_0x49a023,_0xd1d302,!![]);}catch(_0x47effc){return BPromise[_0x4d4c('0x21')](_0x47effc);}return _0x49a023[_0x4d4c('0x22')]();};}function saveUpdates(_0x155a0b,_0x2da175){return function(_0x432de5){if(_0x432de5){return _0x432de5[_0x4d4c('0x23')](_0x155a0b)[_0x4d4c('0x24')](function(_0x49f089){return _0x49f089;});}return null;};}function removeEntity(_0x4adba0,_0x1d996d){return function(_0x38a55d){if(_0x38a55d){return _0x38a55d[_0x4d4c('0x25')]()[_0x4d4c('0x24')](function(){_0x4adba0[_0x4d4c('0x19')](0xcc)[_0x4d4c('0x1a')]();});}};}function handleEntityNotFound(_0x56c8f0,_0x39fa92){return function(_0x1d0a34){if(!_0x1d0a34){_0x56c8f0[_0x4d4c('0x18')](0x194);}return _0x1d0a34;};}function handleError(_0x5aa560,_0x5ab7a6){_0x5ab7a6=_0x5ab7a6||0x1f4;return function(_0x14eea0){logger[_0x4d4c('0x26')](_0x14eea0['stack']);if(_0x14eea0[_0x4d4c('0x27')]){delete _0x14eea0[_0x4d4c('0x27')];}_0x5aa560[_0x4d4c('0x19')](_0x5ab7a6)['send'](_0x14eea0);};}exports[_0x4d4c('0x28')]=function(_0x226ebd,_0x3e51cc){var _0x5b61ab={},_0x16ed35={},_0x1f0bd5={'count':0x0,'rows':[]};var _0x3775ca=_[_0x4d4c('0x29')](db[_0x4d4c('0x2a')][_0x4d4c('0x2b')],function(_0x1c5a60){return{'name':_0x1c5a60['fieldName'],'type':_0x1c5a60[_0x4d4c('0x2c')]['key']};});_0x16ed35['model']=_[_0x4d4c('0x29')](_0x3775ca,_0x4d4c('0x27'));_0x16ed35[_0x4d4c('0x2d')]=_[_0x4d4c('0x2e')](_0x226ebd[_0x4d4c('0x2d')]);_0x16ed35[_0x4d4c('0x2f')]=_['intersection'](_0x16ed35[_0x4d4c('0x30')],_0x16ed35[_0x4d4c('0x2d')]);_0x5b61ab[_0x4d4c('0x31')]=_[_0x4d4c('0x32')](_0x16ed35[_0x4d4c('0x30')],qs[_0x4d4c('0x33')](_0x226ebd[_0x4d4c('0x2d')][_0x4d4c('0x33')]));_0x5b61ab[_0x4d4c('0x31')]=_0x5b61ab[_0x4d4c('0x31')]['length']?_0x5b61ab[_0x4d4c('0x31')]:_0x16ed35[_0x4d4c('0x30')];if(!_0x226ebd[_0x4d4c('0x2d')][_0x4d4c('0x34')]('nolimit')){_0x5b61ab[_0x4d4c('0x1d')]=qs[_0x4d4c('0x1d')](_0x226ebd[_0x4d4c('0x2d')][_0x4d4c('0x1d')]);_0x5b61ab[_0x4d4c('0x1f')]=qs['offset'](_0x226ebd[_0x4d4c('0x2d')][_0x4d4c('0x1f')]);}_0x5b61ab[_0x4d4c('0x35')]=qs['sort'](_0x226ebd[_0x4d4c('0x2d')][_0x4d4c('0x36')]);_0x5b61ab[_0x4d4c('0x37')]=qs[_0x4d4c('0x2f')](_[_0x4d4c('0x38')](_0x226ebd[_0x4d4c('0x2d')],_0x16ed35[_0x4d4c('0x2f')]),_0x3775ca);if(_0x226ebd[_0x4d4c('0x2d')]['filter']){_0x5b61ab[_0x4d4c('0x37')]=_[_0x4d4c('0x39')](_0x5b61ab[_0x4d4c('0x37')],{'$or':_[_0x4d4c('0x29')](_0x3775ca,function(_0x5a7a9f){if(_0x5a7a9f[_0x4d4c('0x2c')]!==_0x4d4c('0x3a')){var _0x3c66dd={};_0x3c66dd[_0x5a7a9f['name']]={'$like':'%'+_0x226ebd[_0x4d4c('0x2d')]['filter']+'%'};return _0x3c66dd;}})});}_0x5b61ab=_['merge']({},_0x5b61ab,_0x226ebd['options']);var _0x5afdf6={'where':_0x5b61ab[_0x4d4c('0x37')]};return db[_0x4d4c('0x2a')][_0x4d4c('0x1e')](_0x5afdf6)['then'](function(_0x43c918){_0x1f0bd5['count']=_0x43c918;if(_0x226ebd['query']['includeAll']){_0x5b61ab['include']=[{'all':!![]}];}return db[_0x4d4c('0x2a')][_0x4d4c('0x3b')](_0x5b61ab);})[_0x4d4c('0x24')](function(_0x2b3bf5){_0x1f0bd5[_0x4d4c('0x3c')]=_0x2b3bf5;return _0x1f0bd5;})[_0x4d4c('0x24')](respondWithFilteredResult(_0x3e51cc,_0x5b61ab))['catch'](handleError(_0x3e51cc,null));};exports[_0x4d4c('0x3d')]=function(_0x575c7b,_0x2ad316){var _0x47ae69={'raw':!![],'where':{'id':_0x575c7b[_0x4d4c('0x3e')]['id']}},_0x40757e={};_0x40757e[_0x4d4c('0x30')]=_[_0x4d4c('0x2e')](db[_0x4d4c('0x2a')][_0x4d4c('0x2b')]);_0x40757e['query']=_[_0x4d4c('0x2e')](_0x575c7b['query']);_0x40757e['filters']=_[_0x4d4c('0x32')](_0x40757e[_0x4d4c('0x30')],_0x40757e['query']);_0x47ae69[_0x4d4c('0x31')]=_[_0x4d4c('0x32')](_0x40757e['model'],qs[_0x4d4c('0x33')](_0x575c7b[_0x4d4c('0x2d')][_0x4d4c('0x33')]));_0x47ae69[_0x4d4c('0x31')]=_0x47ae69['attributes']['length']?_0x47ae69['attributes']:_0x40757e['model'];if(_0x575c7b[_0x4d4c('0x2d')][_0x4d4c('0x3f')]){_0x47ae69['include']=[{'all':!![]}];}_0x47ae69=_['merge']({},_0x47ae69,_0x575c7b[_0x4d4c('0x40')]);return db[_0x4d4c('0x2a')][_0x4d4c('0x41')](_0x47ae69)[_0x4d4c('0x24')](handleEntityNotFound(_0x2ad316,null))['then'](respondWithResult(_0x2ad316,null))[_0x4d4c('0x42')](handleError(_0x2ad316,null));};exports[_0x4d4c('0x43')]=function(_0x31a50b,_0x30d30a){var _0x278d72={'where':{'id':_0x31a50b['params']['id']}},_0x49412e={};_0x49412e[_0x4d4c('0x30')]=_['keys'](db['Attachment']['rawAttributes']);_0x278d72[_0x4d4c('0x31')]=_[_0x4d4c('0x32')](_0x49412e['model'],qs[_0x4d4c('0x33')](_0x31a50b[_0x4d4c('0x2d')]['fields']));_0x278d72[_0x4d4c('0x31')]=_0x278d72[_0x4d4c('0x31')]['length']?_0x278d72[_0x4d4c('0x31')]:_0x49412e[_0x4d4c('0x30')];if(_0x31a50b['query'][_0x4d4c('0x3f')]){_0x278d72[_0x4d4c('0x44')]=[{'all':!![]}];}_0x278d72=_[_0x4d4c('0x39')]({},_0x278d72,_0x31a50b[_0x4d4c('0x40')]);return db[_0x4d4c('0x2a')][_0x4d4c('0x41')](_0x278d72)[_0x4d4c('0x24')](handleEntityNotFound(_0x30d30a,null))[_0x4d4c('0x24')](function(_0xa1467d){if(_0xa1467d){var _0x1c9216=_0xa1467d['get']({'plain':!![]});_0x1c9216=qs[_0x4d4c('0x45')](_0x1c9216,['id','createdAt',_0x4d4c('0x46')]);_0x31a50b['body']=_[_0x4d4c('0x45')](_0x31a50b[_0x4d4c('0x47')],['id',_0x4d4c('0x48'),_0x4d4c('0x46')]);return db[_0x4d4c('0x2a')][_0x4d4c('0x49')](_['merge'](_0x1c9216,_0x31a50b[_0x4d4c('0x47')]),{'include':_0x31a50b['query'][_0x4d4c('0x3f')]?[{'all':!![]}]:undefined});}})[_0x4d4c('0x24')](respondWithResult(_0x30d30a,0xc9))[_0x4d4c('0x42')](handleError(_0x30d30a,null));};exports['update']=function(_0x24f5dd,_0x31bf40){if(_0x24f5dd[_0x4d4c('0x47')]['id']){delete _0x24f5dd[_0x4d4c('0x47')]['id'];}return db[_0x4d4c('0x2a')]['find']({'where':{'id':_0x24f5dd[_0x4d4c('0x3e')]['id']}})[_0x4d4c('0x24')](handleEntityNotFound(_0x31bf40,null))[_0x4d4c('0x24')](saveUpdates(_0x24f5dd[_0x4d4c('0x47')],null))[_0x4d4c('0x24')](respondWithResult(_0x31bf40,null))[_0x4d4c('0x42')](handleError(_0x31bf40,null));};exports['destroy']=function(_0x173f0c,_0x418207){return db[_0x4d4c('0x2a')][_0x4d4c('0x41')]({'where':{'id':_0x173f0c[_0x4d4c('0x3e')]['id']}})['then'](handleEntityNotFound(_0x418207,null))[_0x4d4c('0x24')](removeEntity(_0x418207,null))['catch'](handleError(_0x418207,null));};exports[_0x4d4c('0x49')]=function(_0x5725fd,_0x206c19,_0x49a6da){_0x5725fd[_0x4d4c('0x47')][_0x4d4c('0x27')]=_0x5725fd[_0x4d4c('0x4a')][_0x4d4c('0x4b')];_0x5725fd[_0x4d4c('0x47')][_0x4d4c('0x4c')]=_0x5725fd[_0x4d4c('0x4a')][_0x4d4c('0x4d')];_0x5725fd[_0x4d4c('0x47')][_0x4d4c('0x2c')]=_0x5725fd[_0x4d4c('0x4a')]['mimetype'];return db[_0x4d4c('0x2a')][_0x4d4c('0x49')](_0x5725fd[_0x4d4c('0x47')])[_0x4d4c('0x24')](respondWithResult(_0x206c19,0xc9))['catch'](handleError(_0x206c19,null));};exports[_0x4d4c('0x4e')]=function(_0x59a050,_0x3abf11,_0x48e6ea){return db[_0x4d4c('0x2a')]['findOne']({'where':{'id':_0x59a050['params']['id']},'raw':!![]})[_0x4d4c('0x24')](handleEntityNotFound(_0x3abf11,null))[_0x4d4c('0x24')](function(_0x5fef0b){if(_0x5fef0b){var _0x5d760c=_0x5fef0b['ChatOfflineMessageId']!==null;var _0x478dc0=path[_0x4d4c('0x4f')](config['root'],_0x4d4c('0x50'));if(_0x5d760c){_0x478dc0=path[_0x4d4c('0x4f')](_0x478dc0,_0x4d4c('0x51'));}var _0x485a91=path[_0x4d4c('0x4f')](_0x478dc0,_0x5fef0b['basename']);return _0x3abf11['download'](_0x485a91);}})[_0x4d4c('0x42')](handleError(_0x3abf11,null));};