e1c8f0f90785854c3919f9b3f3547b03acc032d6
[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 _0x6ed6=['root','server/files/attachments/','basename','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','set','Content-Range','reject','update','then','destroy','error','name','send','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','hasOwnProperty','nolimit','limit','where','pick','merge','VIRTUAL','filter','options','Attachment','includeAll','include','findAll','rows','show','params','keys','fields','find','catch','clone','length','get','omit','createdAt','updatedAt','body','create','file','filename','mimetype','download','join'];(function(_0xcae8b6,_0x5781ee){var _0x28daa0=function(_0x321ef0){while(--_0x321ef0){_0xcae8b6['push'](_0xcae8b6['shift']());}};_0x28daa0(++_0x5781ee);}(_0x6ed6,0x14f));var _0x66ed=function(_0x4e7abb,_0x4377b7){_0x4e7abb=_0x4e7abb-0x0;var _0x348db9=_0x6ed6[_0x4e7abb];return _0x348db9;};'use strict';var pdf=require(_0x66ed('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x66ed('0x1'));var jsonpatch=require(_0x66ed('0x2'));var rp=require(_0x66ed('0x3'));var moment=require(_0x66ed('0x4'));var BPromise=require(_0x66ed('0x5'));var Mustache=require(_0x66ed('0x6'));var util=require('util');var path=require(_0x66ed('0x7'));var sox=require('sox');var csv=require(_0x66ed('0x8'));var ejs=require(_0x66ed('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x66ed('0xa'));var crypto=require('crypto');var jsforce=require(_0x66ed('0xb'));var deskjs=require(_0x66ed('0xc'));var toCsv=require(_0x66ed('0x8'));var querystring=require(_0x66ed('0xd'));var Papa=require(_0x66ed('0xe'));var Redis=require('ioredis');var authService=require(_0x66ed('0xf'));var qs=require(_0x66ed('0x10'));var as=require(_0x66ed('0x11'));var hardwareService=require(_0x66ed('0x12'));var logger=require(_0x66ed('0x13'))(_0x66ed('0x14'));var utils=require(_0x66ed('0x15'));var config=require('../../config/environment');var db=require(_0x66ed('0x16'))['db'];function respondWithStatusCode(_0x290bfd,_0x1fa5e4){_0x1fa5e4=_0x1fa5e4||0xcc;return function(_0x31664e){if(_0x31664e){return _0x290bfd['sendStatus'](_0x1fa5e4);}return _0x290bfd[_0x66ed('0x17')](_0x1fa5e4)[_0x66ed('0x18')]();};}function respondWithResult(_0x5b629d,_0x97e38a){_0x97e38a=_0x97e38a||0xc8;return function(_0xc97ec5){if(_0xc97ec5){return _0x5b629d[_0x66ed('0x17')](_0x97e38a)[_0x66ed('0x19')](_0xc97ec5);}};}function respondWithFilteredResult(_0x4b317f,_0x3baad6){return function(_0x1513f6){if(_0x1513f6){var _0x324933=_0x1513f6[_0x66ed('0x1a')],_0x367e4f=_0x3baad6[_0x66ed('0x1b')],_0x6ff7db=_0x3baad6[_0x66ed('0x1b')]+_0x3baad6['limit'],_0x2460b6;if(_0x6ff7db>=_0x324933){_0x6ff7db=_0x324933;_0x2460b6=0xc8;}else{_0x2460b6=0xce;}_0x4b317f[_0x66ed('0x17')](_0x2460b6);return _0x4b317f[_0x66ed('0x1c')](_0x66ed('0x1d'),_0x367e4f+'-'+_0x6ff7db+'/'+_0x324933)[_0x66ed('0x19')](_0x1513f6);}return null;};}function patchUpdates(_0x40a9a7){return function(_0x5c8776){try{jsonpatch['apply'](_0x5c8776,_0x40a9a7,!![]);}catch(_0x29a94b){return BPromise[_0x66ed('0x1e')](_0x29a94b);}return _0x5c8776['save']();};}function saveUpdates(_0x1a445a,_0x35a6e4){return function(_0x4e319c){if(_0x4e319c){return _0x4e319c[_0x66ed('0x1f')](_0x1a445a)[_0x66ed('0x20')](function(_0x5a7b97){return _0x5a7b97;});}return null;};}function removeEntity(_0x4bcc84,_0x2cf544){return function(_0x553bae){if(_0x553bae){return _0x553bae[_0x66ed('0x21')]()['then'](function(){_0x4bcc84['status'](0xcc)[_0x66ed('0x18')]();});}};}function handleEntityNotFound(_0x2beb80,_0x5393ec){return function(_0x1bd3a8){if(!_0x1bd3a8){_0x2beb80['sendStatus'](0x194);}return _0x1bd3a8;};}function handleError(_0x285e65,_0x50ff88){_0x50ff88=_0x50ff88||0x1f4;return function(_0x276b87){logger[_0x66ed('0x22')](_0x276b87['stack']);if(_0x276b87[_0x66ed('0x23')]){delete _0x276b87[_0x66ed('0x23')];}_0x285e65['status'](_0x50ff88)[_0x66ed('0x24')](_0x276b87);};}exports['index']=function(_0x38688f,_0x173bd9){var _0xb98fbd={},_0x486158={},_0x1c9e33={'count':0x0,'rows':[]};var _0x3183ce=_[_0x66ed('0x25')](db['Attachment'][_0x66ed('0x26')],function(_0x2ce917){return{'name':_0x2ce917[_0x66ed('0x27')],'type':_0x2ce917[_0x66ed('0x28')][_0x66ed('0x29')]};});_0x486158['model']=_['map'](_0x3183ce,_0x66ed('0x23'));_0x486158[_0x66ed('0x2a')]=_['keys'](_0x38688f[_0x66ed('0x2a')]);_0x486158[_0x66ed('0x2b')]=_[_0x66ed('0x2c')](_0x486158[_0x66ed('0x2d')],_0x486158[_0x66ed('0x2a')]);_0xb98fbd['attributes']=_[_0x66ed('0x2c')](_0x486158[_0x66ed('0x2d')],qs['fields'](_0x38688f['query']['fields']));_0xb98fbd[_0x66ed('0x2e')]=_0xb98fbd['attributes']['length']?_0xb98fbd[_0x66ed('0x2e')]:_0x486158[_0x66ed('0x2d')];if(!_0x38688f[_0x66ed('0x2a')][_0x66ed('0x2f')](_0x66ed('0x30'))){_0xb98fbd['limit']=qs[_0x66ed('0x31')](_0x38688f[_0x66ed('0x2a')][_0x66ed('0x31')]);_0xb98fbd['offset']=qs[_0x66ed('0x1b')](_0x38688f[_0x66ed('0x2a')][_0x66ed('0x1b')]);}_0xb98fbd['order']=qs['sort'](_0x38688f[_0x66ed('0x2a')]['sort']);_0xb98fbd[_0x66ed('0x32')]=qs[_0x66ed('0x2b')](_[_0x66ed('0x33')](_0x38688f['query'],_0x486158['filters']),_0x3183ce);if(_0x38688f['query']['filter']){_0xb98fbd[_0x66ed('0x32')]=_[_0x66ed('0x34')](_0xb98fbd[_0x66ed('0x32')],{'$or':_[_0x66ed('0x25')](_0x3183ce,function(_0x923fc7){if(_0x923fc7['type']!==_0x66ed('0x35')){var _0x50d4fd={};_0x50d4fd[_0x923fc7[_0x66ed('0x23')]]={'$like':'%'+_0x38688f[_0x66ed('0x2a')][_0x66ed('0x36')]+'%'};return _0x50d4fd;}})});}_0xb98fbd=_[_0x66ed('0x34')]({},_0xb98fbd,_0x38688f[_0x66ed('0x37')]);var _0x2ed68c={'where':_0xb98fbd[_0x66ed('0x32')]};return db[_0x66ed('0x38')][_0x66ed('0x1a')](_0x2ed68c)[_0x66ed('0x20')](function(_0x4f8b0e){_0x1c9e33[_0x66ed('0x1a')]=_0x4f8b0e;if(_0x38688f[_0x66ed('0x2a')][_0x66ed('0x39')]){_0xb98fbd[_0x66ed('0x3a')]=[{'all':!![]}];}return db[_0x66ed('0x38')][_0x66ed('0x3b')](_0xb98fbd);})[_0x66ed('0x20')](function(_0x2db8a0){_0x1c9e33[_0x66ed('0x3c')]=_0x2db8a0;return _0x1c9e33;})[_0x66ed('0x20')](respondWithFilteredResult(_0x173bd9,_0xb98fbd))['catch'](handleError(_0x173bd9,null));};exports[_0x66ed('0x3d')]=function(_0x477e90,_0x498b8f){var _0x3cf27e={'raw':!![],'where':{'id':_0x477e90[_0x66ed('0x3e')]['id']}},_0x190bcb={};_0x190bcb[_0x66ed('0x2d')]=_[_0x66ed('0x3f')](db[_0x66ed('0x38')]['rawAttributes']);_0x190bcb[_0x66ed('0x2a')]=_['keys'](_0x477e90[_0x66ed('0x2a')]);_0x190bcb[_0x66ed('0x2b')]=_[_0x66ed('0x2c')](_0x190bcb[_0x66ed('0x2d')],_0x190bcb['query']);_0x3cf27e[_0x66ed('0x2e')]=_[_0x66ed('0x2c')](_0x190bcb[_0x66ed('0x2d')],qs[_0x66ed('0x40')](_0x477e90[_0x66ed('0x2a')][_0x66ed('0x40')]));_0x3cf27e[_0x66ed('0x2e')]=_0x3cf27e[_0x66ed('0x2e')]['length']?_0x3cf27e[_0x66ed('0x2e')]:_0x190bcb[_0x66ed('0x2d')];if(_0x477e90['query'][_0x66ed('0x39')]){_0x3cf27e['include']=[{'all':!![]}];}_0x3cf27e=_[_0x66ed('0x34')]({},_0x3cf27e,_0x477e90[_0x66ed('0x37')]);return db['Attachment'][_0x66ed('0x41')](_0x3cf27e)[_0x66ed('0x20')](handleEntityNotFound(_0x498b8f,null))[_0x66ed('0x20')](respondWithResult(_0x498b8f,null))[_0x66ed('0x42')](handleError(_0x498b8f,null));};exports[_0x66ed('0x43')]=function(_0x4ac430,_0x427f31){var _0x27279b={'where':{'id':_0x4ac430['params']['id']}},_0x22099d={};_0x22099d[_0x66ed('0x2d')]=_[_0x66ed('0x3f')](db[_0x66ed('0x38')]['rawAttributes']);_0x27279b[_0x66ed('0x2e')]=_['intersection'](_0x22099d['model'],qs[_0x66ed('0x40')](_0x4ac430[_0x66ed('0x2a')]['fields']));_0x27279b[_0x66ed('0x2e')]=_0x27279b[_0x66ed('0x2e')][_0x66ed('0x44')]?_0x27279b[_0x66ed('0x2e')]:_0x22099d[_0x66ed('0x2d')];if(_0x4ac430[_0x66ed('0x2a')][_0x66ed('0x39')]){_0x27279b[_0x66ed('0x3a')]=[{'all':!![]}];}_0x27279b=_['merge']({},_0x27279b,_0x4ac430[_0x66ed('0x37')]);return db[_0x66ed('0x38')]['find'](_0x27279b)[_0x66ed('0x20')](handleEntityNotFound(_0x427f31,null))['then'](function(_0x20954a){if(_0x20954a){var _0x41b4ab=_0x20954a[_0x66ed('0x45')]({'plain':!![]});_0x41b4ab=qs[_0x66ed('0x46')](_0x41b4ab,['id',_0x66ed('0x47'),_0x66ed('0x48')]);_0x4ac430[_0x66ed('0x49')]=_['omit'](_0x4ac430[_0x66ed('0x49')],['id',_0x66ed('0x47'),_0x66ed('0x48')]);return db[_0x66ed('0x38')][_0x66ed('0x4a')](_[_0x66ed('0x34')](_0x41b4ab,_0x4ac430['body']),{'include':_0x4ac430[_0x66ed('0x2a')][_0x66ed('0x39')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x427f31,0xc9))['catch'](handleError(_0x427f31,null));};exports[_0x66ed('0x1f')]=function(_0x158bfa,_0x116e2b){if(_0x158bfa[_0x66ed('0x49')]['id']){delete _0x158bfa['body']['id'];}return db[_0x66ed('0x38')][_0x66ed('0x41')]({'where':{'id':_0x158bfa[_0x66ed('0x3e')]['id']}})[_0x66ed('0x20')](handleEntityNotFound(_0x116e2b,null))[_0x66ed('0x20')](saveUpdates(_0x158bfa[_0x66ed('0x49')],null))[_0x66ed('0x20')](respondWithResult(_0x116e2b,null))['catch'](handleError(_0x116e2b,null));};exports[_0x66ed('0x21')]=function(_0x5a9a09,_0x2972f0){return db[_0x66ed('0x38')]['find']({'where':{'id':_0x5a9a09[_0x66ed('0x3e')]['id']}})[_0x66ed('0x20')](handleEntityNotFound(_0x2972f0,null))['then'](removeEntity(_0x2972f0,null))['catch'](handleError(_0x2972f0,null));};exports[_0x66ed('0x4a')]=function(_0x58b833,_0x3a617c,_0xa9762e){_0x58b833[_0x66ed('0x49')][_0x66ed('0x23')]=_0x58b833[_0x66ed('0x4b')]['originalname'];_0x58b833[_0x66ed('0x49')]['basename']=_0x58b833['file'][_0x66ed('0x4c')];_0x58b833[_0x66ed('0x49')]['type']=_0x58b833[_0x66ed('0x4b')][_0x66ed('0x4d')];return db[_0x66ed('0x38')][_0x66ed('0x4a')](_0x58b833[_0x66ed('0x49')])['then'](respondWithResult(_0x3a617c,0xc9))[_0x66ed('0x42')](handleError(_0x3a617c,null));};exports[_0x66ed('0x4e')]=function(_0x31617f,_0x3364db,_0x20d3e0){return db['Attachment']['findOne']({'where':{'id':_0x31617f[_0x66ed('0x3e')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3364db,null))[_0x66ed('0x20')](function(_0x1ab6c9){if(_0x1ab6c9){return _0x3364db[_0x66ed('0x4e')](path[_0x66ed('0x4f')](config[_0x66ed('0x50')],_0x66ed('0x51'),_0x1ab6c9[_0x66ed('0x52')]));}})[_0x66ed('0x42')](handleError(_0x3364db,null));};