c5a43e758bc07b7cb9910799ce9d24854eb4c039
[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 _0x4cc6=['sendStatus','stack','name','index','map','Attachment','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','options','find','clone','length','get','createdAt','body','omit','create','file','filename','mimetype','download','findOne','server/files/attachments/','join','basename','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy'];(function(_0x2994a6,_0x31c55a){var _0x3d8493=function(_0x24776f){while(--_0x24776f){_0x2994a6['push'](_0x2994a6['shift']());}};_0x3d8493(++_0x31c55a);}(_0x4cc6,0xdd));var _0x64cc=function(_0x37a7c6,_0x3a84b6){_0x37a7c6=_0x37a7c6-0x0;var _0x539905=_0x4cc6[_0x37a7c6];return _0x539905;};'use strict';var emlformat=require(_0x64cc('0x0'));var rimraf=require(_0x64cc('0x1'));var zipdir=require(_0x64cc('0x2'));var jsonpatch=require(_0x64cc('0x3'));var rp=require(_0x64cc('0x4'));var moment=require(_0x64cc('0x5'));var BPromise=require(_0x64cc('0x6'));var Mustache=require(_0x64cc('0x7'));var util=require(_0x64cc('0x8'));var path=require(_0x64cc('0x9'));var sox=require(_0x64cc('0xa'));var csv=require(_0x64cc('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x64cc('0xc'));var squel=require(_0x64cc('0xd'));var crypto=require(_0x64cc('0xe'));var jsforce=require(_0x64cc('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x64cc('0xb'));var querystring=require(_0x64cc('0x10'));var Papa=require(_0x64cc('0x11'));var Redis=require(_0x64cc('0x12'));var authService=require(_0x64cc('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x64cc('0x14'));var hardwareService=require(_0x64cc('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x64cc('0x16'));var config=require(_0x64cc('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x64cc('0x18'))['db'];function respondWithStatusCode(_0x41b219,_0x45c58a){_0x45c58a=_0x45c58a||0xcc;return function(_0x385fc8){if(_0x385fc8){return _0x41b219['sendStatus'](_0x45c58a);}return _0x41b219[_0x64cc('0x19')](_0x45c58a)[_0x64cc('0x1a')]();};}function respondWithResult(_0x442f38,_0x5cbe0e){_0x5cbe0e=_0x5cbe0e||0xc8;return function(_0x554d79){if(_0x554d79){return _0x442f38[_0x64cc('0x19')](_0x5cbe0e)['json'](_0x554d79);}};}function respondWithFilteredResult(_0x29d7e9,_0x8f3396){return function(_0x320162){if(_0x320162){var _0x2cda58=typeof _0x8f3396[_0x64cc('0x1b')]===_0x64cc('0x1c')&&typeof _0x8f3396[_0x64cc('0x1d')]===_0x64cc('0x1c');var _0xee452a=_0x320162[_0x64cc('0x1e')];var _0x294054=_0x2cda58?0x0:_0x8f3396['offset'];var _0x497d50=_0x2cda58?_0x320162[_0x64cc('0x1e')]:_0x8f3396[_0x64cc('0x1b')]+_0x8f3396[_0x64cc('0x1d')];var _0x35e6ce;if(_0x497d50>=_0xee452a){_0x497d50=_0xee452a;_0x35e6ce=0xc8;}else{_0x35e6ce=0xce;}_0x29d7e9[_0x64cc('0x19')](_0x35e6ce);return _0x29d7e9[_0x64cc('0x1f')](_0x64cc('0x20'),_0x294054+'-'+_0x497d50+'/'+_0xee452a)[_0x64cc('0x21')](_0x320162);}return null;};}function patchUpdates(_0x4f997a){return function(_0x771ece){try{jsonpatch[_0x64cc('0x22')](_0x771ece,_0x4f997a,!![]);}catch(_0x4df58f){return BPromise[_0x64cc('0x23')](_0x4df58f);}return _0x771ece[_0x64cc('0x24')]();};}function saveUpdates(_0x3eaf1a,_0x485afb){return function(_0x13eeb2){if(_0x13eeb2){return _0x13eeb2[_0x64cc('0x25')](_0x3eaf1a)[_0x64cc('0x26')](function(_0x107031){return _0x107031;});}return null;};}function removeEntity(_0x38759f,_0x4e6552){return function(_0x5c6c3f){if(_0x5c6c3f){return _0x5c6c3f[_0x64cc('0x27')]()[_0x64cc('0x26')](function(){_0x38759f[_0x64cc('0x19')](0xcc)[_0x64cc('0x1a')]();});}};}function handleEntityNotFound(_0x34d23c,_0x49f378){return function(_0x14d826){if(!_0x14d826){_0x34d23c[_0x64cc('0x28')](0x194);}return _0x14d826;};}function handleError(_0x44bd24,_0x37a415){_0x37a415=_0x37a415||0x1f4;return function(_0x1bffd6){logger['error'](_0x1bffd6[_0x64cc('0x29')]);if(_0x1bffd6['name']){delete _0x1bffd6[_0x64cc('0x2a')];}_0x44bd24[_0x64cc('0x19')](_0x37a415)['send'](_0x1bffd6);};}exports[_0x64cc('0x2b')]=function(_0x4c7b15,_0x103bc0){var _0x3833e6={},_0x47434d={},_0x1c1ae2={'count':0x0,'rows':[]};var _0x411e00=_[_0x64cc('0x2c')](db[_0x64cc('0x2d')][_0x64cc('0x2e')],function(_0x2271a3){return{'name':_0x2271a3[_0x64cc('0x2f')],'type':_0x2271a3[_0x64cc('0x30')]['key']};});_0x47434d[_0x64cc('0x31')]=_[_0x64cc('0x2c')](_0x411e00,_0x64cc('0x2a'));_0x47434d['query']=_[_0x64cc('0x32')](_0x4c7b15[_0x64cc('0x33')]);_0x47434d[_0x64cc('0x34')]=_[_0x64cc('0x35')](_0x47434d[_0x64cc('0x31')],_0x47434d[_0x64cc('0x33')]);_0x3833e6[_0x64cc('0x36')]=_[_0x64cc('0x35')](_0x47434d['model'],qs[_0x64cc('0x37')](_0x4c7b15['query'][_0x64cc('0x37')]));_0x3833e6[_0x64cc('0x36')]=_0x3833e6[_0x64cc('0x36')]['length']?_0x3833e6[_0x64cc('0x36')]:_0x47434d[_0x64cc('0x31')];if(!_0x4c7b15[_0x64cc('0x33')][_0x64cc('0x38')](_0x64cc('0x39'))){_0x3833e6[_0x64cc('0x1d')]=qs[_0x64cc('0x1d')](_0x4c7b15[_0x64cc('0x33')][_0x64cc('0x1d')]);_0x3833e6[_0x64cc('0x1b')]=qs[_0x64cc('0x1b')](_0x4c7b15[_0x64cc('0x33')][_0x64cc('0x1b')]);}_0x3833e6['order']=qs['sort'](_0x4c7b15['query'][_0x64cc('0x3a')]);_0x3833e6[_0x64cc('0x3b')]=qs[_0x64cc('0x34')](_[_0x64cc('0x3c')](_0x4c7b15[_0x64cc('0x33')],_0x47434d[_0x64cc('0x34')]),_0x411e00);if(_0x4c7b15[_0x64cc('0x33')]['filter']){_0x3833e6[_0x64cc('0x3b')]=_[_0x64cc('0x3d')](_0x3833e6[_0x64cc('0x3b')],{'$or':_[_0x64cc('0x2c')](_0x411e00,function(_0x41865f){if(_0x41865f[_0x64cc('0x30')]!==_0x64cc('0x3e')){var _0x102354={};_0x102354[_0x41865f[_0x64cc('0x2a')]]={'$like':'%'+_0x4c7b15['query'][_0x64cc('0x3f')]+'%'};return _0x102354;}})});}_0x3833e6=_[_0x64cc('0x3d')]({},_0x3833e6,_0x4c7b15['options']);var _0x2f5c18={'where':_0x3833e6[_0x64cc('0x3b')]};return db[_0x64cc('0x2d')]['count'](_0x2f5c18)['then'](function(_0x32c8bd){_0x1c1ae2[_0x64cc('0x1e')]=_0x32c8bd;if(_0x4c7b15['query'][_0x64cc('0x40')]){_0x3833e6['include']=[{'all':!![]}];}return db[_0x64cc('0x2d')][_0x64cc('0x41')](_0x3833e6);})[_0x64cc('0x26')](function(_0x189ef2){_0x1c1ae2[_0x64cc('0x42')]=_0x189ef2;return _0x1c1ae2;})[_0x64cc('0x26')](respondWithFilteredResult(_0x103bc0,_0x3833e6))[_0x64cc('0x43')](handleError(_0x103bc0,null));};exports[_0x64cc('0x44')]=function(_0x55f749,_0xc7a2a3){var _0x2df889={'raw':!![],'where':{'id':_0x55f749[_0x64cc('0x45')]['id']}},_0x5a3111={};_0x5a3111['model']=_[_0x64cc('0x32')](db['Attachment'][_0x64cc('0x2e')]);_0x5a3111[_0x64cc('0x33')]=_['keys'](_0x55f749[_0x64cc('0x33')]);_0x5a3111['filters']=_[_0x64cc('0x35')](_0x5a3111[_0x64cc('0x31')],_0x5a3111[_0x64cc('0x33')]);_0x2df889[_0x64cc('0x36')]=_[_0x64cc('0x35')](_0x5a3111['model'],qs[_0x64cc('0x37')](_0x55f749[_0x64cc('0x33')]['fields']));_0x2df889['attributes']=_0x2df889['attributes']['length']?_0x2df889[_0x64cc('0x36')]:_0x5a3111['model'];if(_0x55f749[_0x64cc('0x33')][_0x64cc('0x40')]){_0x2df889['include']=[{'all':!![]}];}_0x2df889=_[_0x64cc('0x3d')]({},_0x2df889,_0x55f749[_0x64cc('0x46')]);return db[_0x64cc('0x2d')][_0x64cc('0x47')](_0x2df889)['then'](handleEntityNotFound(_0xc7a2a3,null))[_0x64cc('0x26')](respondWithResult(_0xc7a2a3,null))['catch'](handleError(_0xc7a2a3,null));};exports[_0x64cc('0x48')]=function(_0x124731,_0x365233){var _0x387308={'where':{'id':_0x124731['params']['id']}},_0x317586={};_0x317586['model']=_[_0x64cc('0x32')](db[_0x64cc('0x2d')][_0x64cc('0x2e')]);_0x387308[_0x64cc('0x36')]=_[_0x64cc('0x35')](_0x317586[_0x64cc('0x31')],qs[_0x64cc('0x37')](_0x124731[_0x64cc('0x33')][_0x64cc('0x37')]));_0x387308[_0x64cc('0x36')]=_0x387308[_0x64cc('0x36')][_0x64cc('0x49')]?_0x387308[_0x64cc('0x36')]:_0x317586[_0x64cc('0x31')];if(_0x124731['query']['includeAll']){_0x387308['include']=[{'all':!![]}];}_0x387308=_[_0x64cc('0x3d')]({},_0x387308,_0x124731['options']);return db['Attachment'][_0x64cc('0x47')](_0x387308)[_0x64cc('0x26')](handleEntityNotFound(_0x365233,null))[_0x64cc('0x26')](function(_0x13d01b){if(_0x13d01b){var _0xb87e39=_0x13d01b[_0x64cc('0x4a')]({'plain':!![]});_0xb87e39=qs['omit'](_0xb87e39,['id',_0x64cc('0x4b'),'updatedAt']);_0x124731[_0x64cc('0x4c')]=_[_0x64cc('0x4d')](_0x124731['body'],['id',_0x64cc('0x4b'),'updatedAt']);return db[_0x64cc('0x2d')][_0x64cc('0x4e')](_[_0x64cc('0x3d')](_0xb87e39,_0x124731[_0x64cc('0x4c')]),{'include':_0x124731[_0x64cc('0x33')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x64cc('0x26')](respondWithResult(_0x365233,0xc9))['catch'](handleError(_0x365233,null));};exports['update']=function(_0x7a0fb0,_0x413dac){if(_0x7a0fb0[_0x64cc('0x4c')]['id']){delete _0x7a0fb0[_0x64cc('0x4c')]['id'];}return db[_0x64cc('0x2d')][_0x64cc('0x47')]({'where':{'id':_0x7a0fb0[_0x64cc('0x45')]['id']}})[_0x64cc('0x26')](handleEntityNotFound(_0x413dac,null))['then'](saveUpdates(_0x7a0fb0[_0x64cc('0x4c')],null))['then'](respondWithResult(_0x413dac,null))[_0x64cc('0x43')](handleError(_0x413dac,null));};exports[_0x64cc('0x27')]=function(_0x3e6d21,_0x452d5b){return db['Attachment'][_0x64cc('0x47')]({'where':{'id':_0x3e6d21['params']['id']}})[_0x64cc('0x26')](handleEntityNotFound(_0x452d5b,null))[_0x64cc('0x26')](removeEntity(_0x452d5b,null))[_0x64cc('0x43')](handleError(_0x452d5b,null));};exports[_0x64cc('0x4e')]=function(_0x2bb5f8,_0x552836,_0x365e56){_0x2bb5f8[_0x64cc('0x4c')][_0x64cc('0x2a')]=_0x2bb5f8[_0x64cc('0x4f')]['originalname'];_0x2bb5f8[_0x64cc('0x4c')]['basename']=_0x2bb5f8[_0x64cc('0x4f')][_0x64cc('0x50')];_0x2bb5f8[_0x64cc('0x4c')][_0x64cc('0x30')]=_0x2bb5f8['file'][_0x64cc('0x51')];return db[_0x64cc('0x2d')][_0x64cc('0x4e')](_0x2bb5f8[_0x64cc('0x4c')])['then'](respondWithResult(_0x552836,0xc9))[_0x64cc('0x43')](handleError(_0x552836,null));};exports[_0x64cc('0x52')]=function(_0x539bea,_0x367116,_0x283c40){return db[_0x64cc('0x2d')][_0x64cc('0x53')]({'where':{'id':_0x539bea['params']['id']},'raw':!![]})[_0x64cc('0x26')](handleEntityNotFound(_0x367116,null))[_0x64cc('0x26')](function(_0x132202){if(_0x132202){var _0x5c580d=_0x132202['ChatOfflineMessageId']!==null;var _0x1dcb90=path['join'](config['root'],_0x64cc('0x54'));if(_0x5c580d){_0x1dcb90=path[_0x64cc('0x55')](_0x1dcb90,'offline-chat/');}var _0x24e68c=path[_0x64cc('0x55')](_0x1dcb90,_0x132202[_0x64cc('0x56')]);return _0x367116[_0x64cc('0x52')](_0x24e68c);}})['catch'](handleError(_0x367116,null));};