dd1e4778d0f2c79f387d918d48dd721ccd60ca36
[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 _0x89d8=['pick','filter','merge','type','VIRTUAL','options','Attachment','includeAll','include','findAll','rows','show','params','intersection','find','catch','clone','get','omit','createdAt','updatedAt','body','create','destroy','file','filename','ChatOfflineMessageId','join','root','offline-chat/','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','error','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x98f66f,_0x1e5bf3){var _0xe41ec0=function(_0x190a73){while(--_0x190a73){_0x98f66f['push'](_0x98f66f['shift']());}};_0xe41ec0(++_0x1e5bf3);}(_0x89d8,0x1db));var _0x889d=function(_0x5cb71b,_0x6b7bea){_0x5cb71b=_0x5cb71b-0x0;var _0x1dff48=_0x89d8[_0x5cb71b];return _0x1dff48;};'use strict';var emlformat=require(_0x889d('0x0'));var rimraf=require(_0x889d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x889d('0x2'));var rp=require(_0x889d('0x3'));var moment=require(_0x889d('0x4'));var BPromise=require(_0x889d('0x5'));var Mustache=require(_0x889d('0x6'));var util=require(_0x889d('0x7'));var path=require(_0x889d('0x8'));var sox=require(_0x889d('0x9'));var csv=require('to-csv');var ejs=require(_0x889d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x889d('0xb'));var crypto=require(_0x889d('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x889d('0xd'));var toCsv=require('to-csv');var querystring=require(_0x889d('0xe'));var Papa=require(_0x889d('0xf'));var Redis=require(_0x889d('0x10'));var authService=require(_0x889d('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x889d('0x12'));var logger=require(_0x889d('0x13'))(_0x889d('0x14'));var utils=require(_0x889d('0x15'));var config=require(_0x889d('0x16'));var licenseUtil=require(_0x889d('0x17'));var db=require(_0x889d('0x18'))['db'];function respondWithStatusCode(_0x4c0c98,_0x208fe4){_0x208fe4=_0x208fe4||0xcc;return function(_0x2a3f34){if(_0x2a3f34){return _0x4c0c98[_0x889d('0x19')](_0x208fe4);}return _0x4c0c98[_0x889d('0x1a')](_0x208fe4)[_0x889d('0x1b')]();};}function respondWithResult(_0x363293,_0x53d3d9){_0x53d3d9=_0x53d3d9||0xc8;return function(_0x2bb01c){if(_0x2bb01c){return _0x363293[_0x889d('0x1a')](_0x53d3d9)[_0x889d('0x1c')](_0x2bb01c);}};}function respondWithFilteredResult(_0x5c3369,_0x6ad2f7){return function(_0x5542c1){if(_0x5542c1){var _0x42eef8=typeof _0x6ad2f7['offset']==='undefined'&&typeof _0x6ad2f7[_0x889d('0x1d')]===_0x889d('0x1e');var _0x3b6638=_0x5542c1[_0x889d('0x1f')];var _0xab7f5f=_0x42eef8?0x0:_0x6ad2f7[_0x889d('0x20')];var _0x51c1b9=_0x42eef8?_0x5542c1[_0x889d('0x1f')]:_0x6ad2f7['offset']+_0x6ad2f7[_0x889d('0x1d')];var _0x345a22;if(_0x51c1b9>=_0x3b6638){_0x51c1b9=_0x3b6638;_0x345a22=0xc8;}else{_0x345a22=0xce;}_0x5c3369['status'](_0x345a22);return _0x5c3369[_0x889d('0x21')](_0x889d('0x22'),_0xab7f5f+'-'+_0x51c1b9+'/'+_0x3b6638)[_0x889d('0x1c')](_0x5542c1);}return null;};}function patchUpdates(_0x587ace){return function(_0x36e265){try{jsonpatch[_0x889d('0x23')](_0x36e265,_0x587ace,!![]);}catch(_0x2a3627){return BPromise[_0x889d('0x24')](_0x2a3627);}return _0x36e265['save']();};}function saveUpdates(_0x291188,_0x72882){return function(_0x145f1a){if(_0x145f1a){return _0x145f1a[_0x889d('0x25')](_0x291188)['then'](function(_0x13a775){return _0x13a775;});}return null;};}function removeEntity(_0x247a1f,_0x3fc72d){return function(_0x3c55e9){if(_0x3c55e9){return _0x3c55e9['destroy']()[_0x889d('0x26')](function(){_0x247a1f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x43e1d2,_0x3b870b){return function(_0x24cc83){if(!_0x24cc83){_0x43e1d2[_0x889d('0x19')](0x194);}return _0x24cc83;};}function handleError(_0x1c4919,_0x4cca44){_0x4cca44=_0x4cca44||0x1f4;return function(_0x106af5){logger[_0x889d('0x27')](_0x106af5[_0x889d('0x28')]);if(_0x106af5['name']){delete _0x106af5[_0x889d('0x29')];}_0x1c4919[_0x889d('0x1a')](_0x4cca44)['send'](_0x106af5);};}exports[_0x889d('0x2a')]=function(_0x55eba2,_0x26756e){var _0x11499b={},_0x1ac70b={},_0x39deae={'count':0x0,'rows':[]};var _0x519931=_[_0x889d('0x2b')](db['Attachment'][_0x889d('0x2c')],function(_0x112a2f){return{'name':_0x112a2f[_0x889d('0x2d')],'type':_0x112a2f['type'][_0x889d('0x2e')]};});_0x1ac70b[_0x889d('0x2f')]=_[_0x889d('0x2b')](_0x519931,_0x889d('0x29'));_0x1ac70b[_0x889d('0x30')]=_[_0x889d('0x31')](_0x55eba2[_0x889d('0x30')]);_0x1ac70b[_0x889d('0x32')]=_['intersection'](_0x1ac70b[_0x889d('0x2f')],_0x1ac70b['query']);_0x11499b[_0x889d('0x33')]=_['intersection'](_0x1ac70b[_0x889d('0x2f')],qs[_0x889d('0x34')](_0x55eba2[_0x889d('0x30')][_0x889d('0x34')]));_0x11499b[_0x889d('0x33')]=_0x11499b[_0x889d('0x33')][_0x889d('0x35')]?_0x11499b[_0x889d('0x33')]:_0x1ac70b[_0x889d('0x2f')];if(!_0x55eba2[_0x889d('0x30')][_0x889d('0x36')](_0x889d('0x37'))){_0x11499b[_0x889d('0x1d')]=qs[_0x889d('0x1d')](_0x55eba2[_0x889d('0x30')][_0x889d('0x1d')]);_0x11499b[_0x889d('0x20')]=qs[_0x889d('0x20')](_0x55eba2['query']['offset']);}_0x11499b[_0x889d('0x38')]=qs[_0x889d('0x39')](_0x55eba2[_0x889d('0x30')]['sort']);_0x11499b[_0x889d('0x3a')]=qs['filters'](_[_0x889d('0x3b')](_0x55eba2[_0x889d('0x30')],_0x1ac70b[_0x889d('0x32')]),_0x519931);if(_0x55eba2[_0x889d('0x30')][_0x889d('0x3c')]){_0x11499b[_0x889d('0x3a')]=_[_0x889d('0x3d')](_0x11499b['where'],{'$or':_['map'](_0x519931,function(_0x4161f8){if(_0x4161f8[_0x889d('0x3e')]!==_0x889d('0x3f')){var _0x2e56c5={};_0x2e56c5[_0x4161f8[_0x889d('0x29')]]={'$like':'%'+_0x55eba2[_0x889d('0x30')]['filter']+'%'};return _0x2e56c5;}})});}_0x11499b=_[_0x889d('0x3d')]({},_0x11499b,_0x55eba2[_0x889d('0x40')]);var _0x5e1656={'where':_0x11499b[_0x889d('0x3a')]};return db[_0x889d('0x41')][_0x889d('0x1f')](_0x5e1656)[_0x889d('0x26')](function(_0x132611){_0x39deae[_0x889d('0x1f')]=_0x132611;if(_0x55eba2[_0x889d('0x30')][_0x889d('0x42')]){_0x11499b[_0x889d('0x43')]=[{'all':!![]}];}return db[_0x889d('0x41')][_0x889d('0x44')](_0x11499b);})['then'](function(_0x3ac214){_0x39deae[_0x889d('0x45')]=_0x3ac214;return _0x39deae;})['then'](respondWithFilteredResult(_0x26756e,_0x11499b))['catch'](handleError(_0x26756e,null));};exports[_0x889d('0x46')]=function(_0x127af3,_0x2437a8){var _0x2d29ec={'raw':!![],'where':{'id':_0x127af3[_0x889d('0x47')]['id']}},_0x3ee98f={};_0x3ee98f['model']=_[_0x889d('0x31')](db['Attachment']['rawAttributes']);_0x3ee98f[_0x889d('0x30')]=_[_0x889d('0x31')](_0x127af3[_0x889d('0x30')]);_0x3ee98f[_0x889d('0x32')]=_[_0x889d('0x48')](_0x3ee98f['model'],_0x3ee98f[_0x889d('0x30')]);_0x2d29ec[_0x889d('0x33')]=_[_0x889d('0x48')](_0x3ee98f[_0x889d('0x2f')],qs[_0x889d('0x34')](_0x127af3['query'][_0x889d('0x34')]));_0x2d29ec['attributes']=_0x2d29ec[_0x889d('0x33')][_0x889d('0x35')]?_0x2d29ec[_0x889d('0x33')]:_0x3ee98f[_0x889d('0x2f')];if(_0x127af3[_0x889d('0x30')][_0x889d('0x42')]){_0x2d29ec[_0x889d('0x43')]=[{'all':!![]}];}_0x2d29ec=_[_0x889d('0x3d')]({},_0x2d29ec,_0x127af3[_0x889d('0x40')]);return db[_0x889d('0x41')][_0x889d('0x49')](_0x2d29ec)['then'](handleEntityNotFound(_0x2437a8,null))[_0x889d('0x26')](respondWithResult(_0x2437a8,null))[_0x889d('0x4a')](handleError(_0x2437a8,null));};exports[_0x889d('0x4b')]=function(_0xe0b4f3,_0x4f0613){var _0x32443d={'where':{'id':_0xe0b4f3[_0x889d('0x47')]['id']}},_0x2b2292={};_0x2b2292[_0x889d('0x2f')]=_['keys'](db[_0x889d('0x41')][_0x889d('0x2c')]);_0x32443d[_0x889d('0x33')]=_[_0x889d('0x48')](_0x2b2292[_0x889d('0x2f')],qs['fields'](_0xe0b4f3[_0x889d('0x30')]['fields']));_0x32443d['attributes']=_0x32443d[_0x889d('0x33')][_0x889d('0x35')]?_0x32443d[_0x889d('0x33')]:_0x2b2292[_0x889d('0x2f')];if(_0xe0b4f3[_0x889d('0x30')][_0x889d('0x42')]){_0x32443d[_0x889d('0x43')]=[{'all':!![]}];}_0x32443d=_[_0x889d('0x3d')]({},_0x32443d,_0xe0b4f3[_0x889d('0x40')]);return db[_0x889d('0x41')]['find'](_0x32443d)[_0x889d('0x26')](handleEntityNotFound(_0x4f0613,null))[_0x889d('0x26')](function(_0x48a0a6){if(_0x48a0a6){var _0x2001ad=_0x48a0a6[_0x889d('0x4c')]({'plain':!![]});_0x2001ad=qs[_0x889d('0x4d')](_0x2001ad,['id',_0x889d('0x4e'),_0x889d('0x4f')]);_0xe0b4f3[_0x889d('0x50')]=_[_0x889d('0x4d')](_0xe0b4f3['body'],['id',_0x889d('0x4e'),_0x889d('0x4f')]);return db['Attachment'][_0x889d('0x51')](_[_0x889d('0x3d')](_0x2001ad,_0xe0b4f3['body']),{'include':_0xe0b4f3[_0x889d('0x30')][_0x889d('0x42')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4f0613,0xc9))[_0x889d('0x4a')](handleError(_0x4f0613,null));};exports[_0x889d('0x25')]=function(_0x31fcbc,_0x3040cb){if(_0x31fcbc['body']['id']){delete _0x31fcbc[_0x889d('0x50')]['id'];}return db[_0x889d('0x41')][_0x889d('0x49')]({'where':{'id':_0x31fcbc[_0x889d('0x47')]['id']}})[_0x889d('0x26')](handleEntityNotFound(_0x3040cb,null))[_0x889d('0x26')](saveUpdates(_0x31fcbc[_0x889d('0x50')],null))[_0x889d('0x26')](respondWithResult(_0x3040cb,null))[_0x889d('0x4a')](handleError(_0x3040cb,null));};exports[_0x889d('0x52')]=function(_0x19ce61,_0x375728){return db[_0x889d('0x41')][_0x889d('0x49')]({'where':{'id':_0x19ce61['params']['id']}})['then'](handleEntityNotFound(_0x375728,null))['then'](removeEntity(_0x375728,null))[_0x889d('0x4a')](handleError(_0x375728,null));};exports[_0x889d('0x51')]=function(_0x51df7e,_0x4db688,_0x3a5dc4){_0x51df7e[_0x889d('0x50')][_0x889d('0x29')]=_0x51df7e[_0x889d('0x53')]['originalname'];_0x51df7e[_0x889d('0x50')]['basename']=_0x51df7e['file'][_0x889d('0x54')];_0x51df7e[_0x889d('0x50')][_0x889d('0x3e')]=_0x51df7e[_0x889d('0x53')]['mimetype'];return db[_0x889d('0x41')][_0x889d('0x51')](_0x51df7e[_0x889d('0x50')])[_0x889d('0x26')](respondWithResult(_0x4db688,0xc9))[_0x889d('0x4a')](handleError(_0x4db688,null));};exports['download']=function(_0x4db3f3,_0x2df29e,_0x551290){return db[_0x889d('0x41')]['findOne']({'where':{'id':_0x4db3f3[_0x889d('0x47')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x2df29e,null))[_0x889d('0x26')](function(_0x1a7bdf){if(_0x1a7bdf){var _0x24041d=_0x1a7bdf[_0x889d('0x55')]!==null;var _0x3bf433=path[_0x889d('0x56')](config[_0x889d('0x57')],'server/files/attachments/');if(_0x24041d){_0x3bf433=path['join'](_0x3bf433,_0x889d('0x58'));}var _0x1218ee=path[_0x889d('0x56')](_0x3bf433,_0x1a7bdf['basename']);return _0x2df29e['download'](_0x1218ee);}})[_0x889d('0x4a')](handleError(_0x2df29e,null));};