1e9f6ad1dbeeb22db140b9462d6f1ef763e7745f
[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 _0x8d33=['name','send','index','map','Attachment','rawAttributes','fieldName','type','query','filters','intersection','model','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','keys','include','find','length','get','omit','createdAt','updatedAt','body','create','file','originalname','basename','filename','mimetype','download','ChatOfflineMessageId','server/files/attachments/','join','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','offset','set','Content-Range','apply','reject','save','update','then','destroy','error'];(function(_0x57b236,_0x30614e){var _0x4feb29=function(_0x26d3e6){while(--_0x26d3e6){_0x57b236['push'](_0x57b236['shift']());}};_0x4feb29(++_0x30614e);}(_0x8d33,0x1a0));var _0x38d3=function(_0x3354d7,_0x5166f3){_0x3354d7=_0x3354d7-0x0;var _0x489c70=_0x8d33[_0x3354d7];return _0x489c70;};'use strict';var emlformat=require(_0x38d3('0x0'));var rimraf=require(_0x38d3('0x1'));var zipdir=require(_0x38d3('0x2'));var jsonpatch=require(_0x38d3('0x3'));var rp=require(_0x38d3('0x4'));var moment=require(_0x38d3('0x5'));var BPromise=require(_0x38d3('0x6'));var Mustache=require(_0x38d3('0x7'));var util=require(_0x38d3('0x8'));var path=require(_0x38d3('0x9'));var sox=require(_0x38d3('0xa'));var csv=require(_0x38d3('0xb'));var ejs=require(_0x38d3('0xc'));var fs=require('fs');var fs_extra=require(_0x38d3('0xd'));var _=require(_0x38d3('0xe'));var squel=require('squel');var crypto=require(_0x38d3('0xf'));var jsforce=require(_0x38d3('0x10'));var deskjs=require(_0x38d3('0x11'));var toCsv=require('to-csv');var querystring=require(_0x38d3('0x12'));var Papa=require(_0x38d3('0x13'));var Redis=require(_0x38d3('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x38d3('0x15'));var hardwareService=require(_0x38d3('0x16'));var logger=require(_0x38d3('0x17'))('api');var utils=require(_0x38d3('0x18'));var config=require(_0x38d3('0x19'));var licenseUtil=require(_0x38d3('0x1a'));var db=require(_0x38d3('0x1b'))['db'];function respondWithStatusCode(_0x2ab31f,_0x213736){_0x213736=_0x213736||0xcc;return function(_0x5173e2){if(_0x5173e2){return _0x2ab31f[_0x38d3('0x1c')](_0x213736);}return _0x2ab31f[_0x38d3('0x1d')](_0x213736)[_0x38d3('0x1e')]();};}function respondWithResult(_0x507e62,_0x14e4d3){_0x14e4d3=_0x14e4d3||0xc8;return function(_0x335954){if(_0x335954){return _0x507e62['status'](_0x14e4d3)[_0x38d3('0x1f')](_0x335954);}};}function respondWithFilteredResult(_0xf444fd,_0xc4dfa8){return function(_0x3902de){if(_0x3902de){var _0x52408d=typeof _0xc4dfa8['offset']==='undefined'&&typeof _0xc4dfa8[_0x38d3('0x20')]===_0x38d3('0x21');var _0x1955aa=_0x3902de['count'];var _0x4c31f4=_0x52408d?0x0:_0xc4dfa8[_0x38d3('0x22')];var _0x152b6e=_0x52408d?_0x3902de['count']:_0xc4dfa8[_0x38d3('0x22')]+_0xc4dfa8[_0x38d3('0x20')];var _0x39e608;if(_0x152b6e>=_0x1955aa){_0x152b6e=_0x1955aa;_0x39e608=0xc8;}else{_0x39e608=0xce;}_0xf444fd['status'](_0x39e608);return _0xf444fd[_0x38d3('0x23')](_0x38d3('0x24'),_0x4c31f4+'-'+_0x152b6e+'/'+_0x1955aa)[_0x38d3('0x1f')](_0x3902de);}return null;};}function patchUpdates(_0x32d74c){return function(_0xf72e67){try{jsonpatch[_0x38d3('0x25')](_0xf72e67,_0x32d74c,!![]);}catch(_0x1c2267){return BPromise[_0x38d3('0x26')](_0x1c2267);}return _0xf72e67[_0x38d3('0x27')]();};}function saveUpdates(_0x28a479,_0x30135c){return function(_0x1e9d54){if(_0x1e9d54){return _0x1e9d54[_0x38d3('0x28')](_0x28a479)[_0x38d3('0x29')](function(_0x40254d){return _0x40254d;});}return null;};}function removeEntity(_0x200f4a,_0x3ee75f){return function(_0x21722b){if(_0x21722b){return _0x21722b[_0x38d3('0x2a')]()['then'](function(){_0x200f4a[_0x38d3('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x44c352,_0x398aea){return function(_0x547b56){if(!_0x547b56){_0x44c352[_0x38d3('0x1c')](0x194);}return _0x547b56;};}function handleError(_0x21890c,_0x2d5d02){_0x2d5d02=_0x2d5d02||0x1f4;return function(_0x2dd571){logger[_0x38d3('0x2b')](_0x2dd571['stack']);if(_0x2dd571['name']){delete _0x2dd571[_0x38d3('0x2c')];}_0x21890c['status'](_0x2d5d02)[_0x38d3('0x2d')](_0x2dd571);};}exports[_0x38d3('0x2e')]=function(_0x119281,_0x5d8e63){var _0x394f33={},_0xa716df={},_0x152888={'count':0x0,'rows':[]};var _0x1042d5=_[_0x38d3('0x2f')](db[_0x38d3('0x30')][_0x38d3('0x31')],function(_0xb07851){return{'name':_0xb07851[_0x38d3('0x32')],'type':_0xb07851[_0x38d3('0x33')]['key']};});_0xa716df['model']=_['map'](_0x1042d5,_0x38d3('0x2c'));_0xa716df[_0x38d3('0x34')]=_['keys'](_0x119281[_0x38d3('0x34')]);_0xa716df[_0x38d3('0x35')]=_[_0x38d3('0x36')](_0xa716df[_0x38d3('0x37')],_0xa716df['query']);_0x394f33[_0x38d3('0x38')]=_[_0x38d3('0x36')](_0xa716df['model'],qs[_0x38d3('0x39')](_0x119281['query'][_0x38d3('0x39')]));_0x394f33[_0x38d3('0x38')]=_0x394f33[_0x38d3('0x38')]['length']?_0x394f33[_0x38d3('0x38')]:_0xa716df['model'];if(!_0x119281[_0x38d3('0x34')]['hasOwnProperty'](_0x38d3('0x3a'))){_0x394f33['limit']=qs[_0x38d3('0x20')](_0x119281[_0x38d3('0x34')][_0x38d3('0x20')]);_0x394f33['offset']=qs[_0x38d3('0x22')](_0x119281['query']['offset']);}_0x394f33[_0x38d3('0x3b')]=qs[_0x38d3('0x3c')](_0x119281[_0x38d3('0x34')][_0x38d3('0x3c')]);_0x394f33[_0x38d3('0x3d')]=qs['filters'](_[_0x38d3('0x3e')](_0x119281[_0x38d3('0x34')],_0xa716df['filters']),_0x1042d5);if(_0x119281[_0x38d3('0x34')][_0x38d3('0x3f')]){_0x394f33[_0x38d3('0x3d')]=_[_0x38d3('0x40')](_0x394f33['where'],{'$or':_[_0x38d3('0x2f')](_0x1042d5,function(_0x1256fa){if(_0x1256fa['type']!==_0x38d3('0x41')){var _0x197e52={};_0x197e52[_0x1256fa[_0x38d3('0x2c')]]={'$like':'%'+_0x119281[_0x38d3('0x34')][_0x38d3('0x3f')]+'%'};return _0x197e52;}})});}_0x394f33=_['merge']({},_0x394f33,_0x119281[_0x38d3('0x42')]);var _0x3d122f={'where':_0x394f33[_0x38d3('0x3d')]};return db['Attachment']['count'](_0x3d122f)[_0x38d3('0x29')](function(_0x592b63){_0x152888['count']=_0x592b63;if(_0x119281[_0x38d3('0x34')][_0x38d3('0x43')]){_0x394f33['include']=[{'all':!![]}];}return db[_0x38d3('0x30')][_0x38d3('0x44')](_0x394f33);})['then'](function(_0x10f0f4){_0x152888[_0x38d3('0x45')]=_0x10f0f4;return _0x152888;})[_0x38d3('0x29')](respondWithFilteredResult(_0x5d8e63,_0x394f33))[_0x38d3('0x46')](handleError(_0x5d8e63,null));};exports[_0x38d3('0x47')]=function(_0x1d0d39,_0x5ba956){var _0x573563={'raw':!![],'where':{'id':_0x1d0d39[_0x38d3('0x48')]['id']}},_0x401bc4={};_0x401bc4[_0x38d3('0x37')]=_[_0x38d3('0x49')](db[_0x38d3('0x30')][_0x38d3('0x31')]);_0x401bc4[_0x38d3('0x34')]=_['keys'](_0x1d0d39[_0x38d3('0x34')]);_0x401bc4['filters']=_[_0x38d3('0x36')](_0x401bc4[_0x38d3('0x37')],_0x401bc4['query']);_0x573563[_0x38d3('0x38')]=_[_0x38d3('0x36')](_0x401bc4[_0x38d3('0x37')],qs['fields'](_0x1d0d39[_0x38d3('0x34')][_0x38d3('0x39')]));_0x573563['attributes']=_0x573563['attributes']['length']?_0x573563[_0x38d3('0x38')]:_0x401bc4[_0x38d3('0x37')];if(_0x1d0d39[_0x38d3('0x34')][_0x38d3('0x43')]){_0x573563[_0x38d3('0x4a')]=[{'all':!![]}];}_0x573563=_['merge']({},_0x573563,_0x1d0d39[_0x38d3('0x42')]);return db[_0x38d3('0x30')][_0x38d3('0x4b')](_0x573563)[_0x38d3('0x29')](handleEntityNotFound(_0x5ba956,null))['then'](respondWithResult(_0x5ba956,null))[_0x38d3('0x46')](handleError(_0x5ba956,null));};exports['clone']=function(_0x24a7e1,_0x16d6bd){var _0x3e335a={'where':{'id':_0x24a7e1[_0x38d3('0x48')]['id']}},_0x163392={};_0x163392['model']=_[_0x38d3('0x49')](db['Attachment']['rawAttributes']);_0x3e335a[_0x38d3('0x38')]=_['intersection'](_0x163392[_0x38d3('0x37')],qs[_0x38d3('0x39')](_0x24a7e1[_0x38d3('0x34')][_0x38d3('0x39')]));_0x3e335a['attributes']=_0x3e335a[_0x38d3('0x38')][_0x38d3('0x4c')]?_0x3e335a[_0x38d3('0x38')]:_0x163392[_0x38d3('0x37')];if(_0x24a7e1[_0x38d3('0x34')][_0x38d3('0x43')]){_0x3e335a['include']=[{'all':!![]}];}_0x3e335a=_[_0x38d3('0x40')]({},_0x3e335a,_0x24a7e1[_0x38d3('0x42')]);return db[_0x38d3('0x30')][_0x38d3('0x4b')](_0x3e335a)[_0x38d3('0x29')](handleEntityNotFound(_0x16d6bd,null))[_0x38d3('0x29')](function(_0x40c993){if(_0x40c993){var _0x2e4c00=_0x40c993[_0x38d3('0x4d')]({'plain':!![]});_0x2e4c00=qs[_0x38d3('0x4e')](_0x2e4c00,['id',_0x38d3('0x4f'),_0x38d3('0x50')]);_0x24a7e1[_0x38d3('0x51')]=_['omit'](_0x24a7e1[_0x38d3('0x51')],['id',_0x38d3('0x4f'),_0x38d3('0x50')]);return db[_0x38d3('0x30')][_0x38d3('0x52')](_['merge'](_0x2e4c00,_0x24a7e1[_0x38d3('0x51')]),{'include':_0x24a7e1['query'][_0x38d3('0x43')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x16d6bd,0xc9))[_0x38d3('0x46')](handleError(_0x16d6bd,null));};exports[_0x38d3('0x28')]=function(_0x21dff5,_0x4abba8){if(_0x21dff5[_0x38d3('0x51')]['id']){delete _0x21dff5[_0x38d3('0x51')]['id'];}return db[_0x38d3('0x30')]['find']({'where':{'id':_0x21dff5['params']['id']}})[_0x38d3('0x29')](handleEntityNotFound(_0x4abba8,null))[_0x38d3('0x29')](saveUpdates(_0x21dff5[_0x38d3('0x51')],null))[_0x38d3('0x29')](respondWithResult(_0x4abba8,null))[_0x38d3('0x46')](handleError(_0x4abba8,null));};exports[_0x38d3('0x2a')]=function(_0xc7bfec,_0x28a3d6){return db[_0x38d3('0x30')][_0x38d3('0x4b')]({'where':{'id':_0xc7bfec[_0x38d3('0x48')]['id']}})['then'](handleEntityNotFound(_0x28a3d6,null))['then'](removeEntity(_0x28a3d6,null))['catch'](handleError(_0x28a3d6,null));};exports[_0x38d3('0x52')]=function(_0x83af43,_0x221f22,_0x1d027d){_0x83af43[_0x38d3('0x51')][_0x38d3('0x2c')]=_0x83af43[_0x38d3('0x53')][_0x38d3('0x54')];_0x83af43[_0x38d3('0x51')][_0x38d3('0x55')]=_0x83af43['file'][_0x38d3('0x56')];_0x83af43['body'][_0x38d3('0x33')]=_0x83af43[_0x38d3('0x53')][_0x38d3('0x57')];return db[_0x38d3('0x30')][_0x38d3('0x52')](_0x83af43[_0x38d3('0x51')])['then'](respondWithResult(_0x221f22,0xc9))[_0x38d3('0x46')](handleError(_0x221f22,null));};exports[_0x38d3('0x58')]=function(_0x294503,_0x3aae95,_0x4ba447){return db[_0x38d3('0x30')]['findOne']({'where':{'id':_0x294503[_0x38d3('0x48')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3aae95,null))[_0x38d3('0x29')](function(_0x312f63){if(_0x312f63){var _0x473d1f=_0x312f63[_0x38d3('0x59')]!==null;var _0x2270d5=path['join'](config['root'],_0x38d3('0x5a'));if(_0x473d1f){_0x2270d5=path[_0x38d3('0x5b')](_0x2270d5,'offline-chat/');}var _0x530023=path[_0x38d3('0x5b')](_0x2270d5,_0x312f63[_0x38d3('0x55')]);return _0x3aae95[_0x38d3('0x58')](_0x530023);}})[_0x38d3('0x46')](handleError(_0x3aae95,null));};