21283dd6779b84e6a5c9d816ba0de5de131a1129
[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 _0x6706=['basename','file','filename','mimetype','findOne','root','server/files/attachments/','offline-chat/','download','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','destroy','error','stack','send','index','map','Attachment','rawAttributes','fieldName','type','model','name','keys','filters','intersection','fields','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','then','includeAll','include','findAll','show','params','catch','clone','find','get','omit','createdAt','updatedAt','body','create','originalname'];(function(_0x1cbcb2,_0x1237a3){var _0x41ac9f=function(_0xe32e6f){while(--_0xe32e6f){_0x1cbcb2['push'](_0x1cbcb2['shift']());}};_0x41ac9f(++_0x1237a3);}(_0x6706,0x181));var _0x6670=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6706[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6670('0x0'));var rimraf=require(_0x6670('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6670('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6670('0x3'));var Mustache=require(_0x6670('0x4'));var util=require(_0x6670('0x5'));var path=require(_0x6670('0x6'));var sox=require(_0x6670('0x7'));var csv=require('to-csv');var ejs=require(_0x6670('0x8'));var fs=require('fs');var fs_extra=require(_0x6670('0x9'));var _=require(_0x6670('0xa'));var squel=require(_0x6670('0xb'));var crypto=require(_0x6670('0xc'));var jsforce=require(_0x6670('0xd'));var deskjs=require(_0x6670('0xe'));var toCsv=require(_0x6670('0xf'));var querystring=require(_0x6670('0x10'));var Papa=require(_0x6670('0x11'));var Redis=require('ioredis');var authService=require(_0x6670('0x12'));var qs=require(_0x6670('0x13'));var as=require(_0x6670('0x14'));var hardwareService=require(_0x6670('0x15'));var logger=require(_0x6670('0x16'))(_0x6670('0x17'));var utils=require(_0x6670('0x18'));var config=require(_0x6670('0x19'));var licenseUtil=require(_0x6670('0x1a'));var db=require(_0x6670('0x1b'))['db'];function respondWithStatusCode(_0x18a508,_0x1c40a8){_0x1c40a8=_0x1c40a8||0xcc;return function(_0x16806a){if(_0x16806a){return _0x18a508[_0x6670('0x1c')](_0x1c40a8);}return _0x18a508[_0x6670('0x1d')](_0x1c40a8)[_0x6670('0x1e')]();};}function respondWithResult(_0x5a510e,_0x497e1a){_0x497e1a=_0x497e1a||0xc8;return function(_0x40b0a5){if(_0x40b0a5){return _0x5a510e[_0x6670('0x1d')](_0x497e1a)[_0x6670('0x1f')](_0x40b0a5);}};}function respondWithFilteredResult(_0x55973f,_0x81e63){return function(_0x21b96f){if(_0x21b96f){var _0x3cbbae=typeof _0x81e63[_0x6670('0x20')]===_0x6670('0x21')&&typeof _0x81e63['limit']===_0x6670('0x21');var _0x2dfb6f=_0x21b96f[_0x6670('0x22')];var _0x5ece22=_0x3cbbae?0x0:_0x81e63[_0x6670('0x20')];var _0x32a7c7=_0x3cbbae?_0x21b96f[_0x6670('0x22')]:_0x81e63[_0x6670('0x20')]+_0x81e63[_0x6670('0x23')];var _0x3d1e8c;if(_0x32a7c7>=_0x2dfb6f){_0x32a7c7=_0x2dfb6f;_0x3d1e8c=0xc8;}else{_0x3d1e8c=0xce;}_0x55973f['status'](_0x3d1e8c);return _0x55973f[_0x6670('0x24')](_0x6670('0x25'),_0x5ece22+'-'+_0x32a7c7+'/'+_0x2dfb6f)[_0x6670('0x1f')](_0x21b96f);}return null;};}function patchUpdates(_0x36b68d){return function(_0x1370c8){try{jsonpatch['apply'](_0x1370c8,_0x36b68d,!![]);}catch(_0x298595){return BPromise[_0x6670('0x26')](_0x298595);}return _0x1370c8[_0x6670('0x27')]();};}function saveUpdates(_0x45beaa,_0x25d1ad){return function(_0x2ba99a){if(_0x2ba99a){return _0x2ba99a[_0x6670('0x28')](_0x45beaa)['then'](function(_0x1bc780){return _0x1bc780;});}return null;};}function removeEntity(_0x4e2547,_0x3fb274){return function(_0x359b84){if(_0x359b84){return _0x359b84[_0x6670('0x29')]()['then'](function(){_0x4e2547['status'](0xcc)[_0x6670('0x1e')]();});}};}function handleEntityNotFound(_0x2815ea,_0x3b8d99){return function(_0x4f0743){if(!_0x4f0743){_0x2815ea['sendStatus'](0x194);}return _0x4f0743;};}function handleError(_0x510357,_0x1deb5b){_0x1deb5b=_0x1deb5b||0x1f4;return function(_0x3a8d5b){logger[_0x6670('0x2a')](_0x3a8d5b[_0x6670('0x2b')]);if(_0x3a8d5b['name']){delete _0x3a8d5b['name'];}_0x510357[_0x6670('0x1d')](_0x1deb5b)[_0x6670('0x2c')](_0x3a8d5b);};}exports[_0x6670('0x2d')]=function(_0x308bd8,_0x45f50b){var _0x20d562={},_0x4ceb09={},_0x1a4889={'count':0x0,'rows':[]};var _0x4f2fd8=_[_0x6670('0x2e')](db[_0x6670('0x2f')][_0x6670('0x30')],function(_0x1dcb5f){return{'name':_0x1dcb5f[_0x6670('0x31')],'type':_0x1dcb5f[_0x6670('0x32')]['key']};});_0x4ceb09[_0x6670('0x33')]=_[_0x6670('0x2e')](_0x4f2fd8,_0x6670('0x34'));_0x4ceb09['query']=_[_0x6670('0x35')](_0x308bd8['query']);_0x4ceb09[_0x6670('0x36')]=_[_0x6670('0x37')](_0x4ceb09[_0x6670('0x33')],_0x4ceb09['query']);_0x20d562['attributes']=_[_0x6670('0x37')](_0x4ceb09['model'],qs[_0x6670('0x38')](_0x308bd8[_0x6670('0x39')][_0x6670('0x38')]));_0x20d562['attributes']=_0x20d562[_0x6670('0x3a')][_0x6670('0x3b')]?_0x20d562[_0x6670('0x3a')]:_0x4ceb09[_0x6670('0x33')];if(!_0x308bd8[_0x6670('0x39')][_0x6670('0x3c')](_0x6670('0x3d'))){_0x20d562[_0x6670('0x23')]=qs['limit'](_0x308bd8[_0x6670('0x39')]['limit']);_0x20d562[_0x6670('0x20')]=qs[_0x6670('0x20')](_0x308bd8[_0x6670('0x39')][_0x6670('0x20')]);}_0x20d562[_0x6670('0x3e')]=qs[_0x6670('0x3f')](_0x308bd8[_0x6670('0x39')][_0x6670('0x3f')]);_0x20d562[_0x6670('0x40')]=qs[_0x6670('0x36')](_['pick'](_0x308bd8['query'],_0x4ceb09['filters']),_0x4f2fd8);if(_0x308bd8[_0x6670('0x39')][_0x6670('0x41')]){_0x20d562['where']=_[_0x6670('0x42')](_0x20d562[_0x6670('0x40')],{'$or':_['map'](_0x4f2fd8,function(_0x5192ac){if(_0x5192ac['type']!==_0x6670('0x43')){var _0xc38d58={};_0xc38d58[_0x5192ac[_0x6670('0x34')]]={'$like':'%'+_0x308bd8[_0x6670('0x39')][_0x6670('0x41')]+'%'};return _0xc38d58;}})});}_0x20d562=_[_0x6670('0x42')]({},_0x20d562,_0x308bd8[_0x6670('0x44')]);var _0x428f0a={'where':_0x20d562['where']};return db[_0x6670('0x2f')][_0x6670('0x22')](_0x428f0a)[_0x6670('0x45')](function(_0x520f15){_0x1a4889[_0x6670('0x22')]=_0x520f15;if(_0x308bd8[_0x6670('0x39')][_0x6670('0x46')]){_0x20d562[_0x6670('0x47')]=[{'all':!![]}];}return db[_0x6670('0x2f')][_0x6670('0x48')](_0x20d562);})['then'](function(_0x50e43c){_0x1a4889['rows']=_0x50e43c;return _0x1a4889;})[_0x6670('0x45')](respondWithFilteredResult(_0x45f50b,_0x20d562))['catch'](handleError(_0x45f50b,null));};exports[_0x6670('0x49')]=function(_0x39d56e,_0x13c49b){var _0x2186f9={'raw':!![],'where':{'id':_0x39d56e[_0x6670('0x4a')]['id']}},_0x328ef5={};_0x328ef5['model']=_['keys'](db[_0x6670('0x2f')][_0x6670('0x30')]);_0x328ef5['query']=_['keys'](_0x39d56e[_0x6670('0x39')]);_0x328ef5['filters']=_[_0x6670('0x37')](_0x328ef5[_0x6670('0x33')],_0x328ef5[_0x6670('0x39')]);_0x2186f9['attributes']=_['intersection'](_0x328ef5[_0x6670('0x33')],qs[_0x6670('0x38')](_0x39d56e[_0x6670('0x39')][_0x6670('0x38')]));_0x2186f9[_0x6670('0x3a')]=_0x2186f9[_0x6670('0x3a')][_0x6670('0x3b')]?_0x2186f9[_0x6670('0x3a')]:_0x328ef5['model'];if(_0x39d56e[_0x6670('0x39')]['includeAll']){_0x2186f9[_0x6670('0x47')]=[{'all':!![]}];}_0x2186f9=_[_0x6670('0x42')]({},_0x2186f9,_0x39d56e[_0x6670('0x44')]);return db[_0x6670('0x2f')]['find'](_0x2186f9)[_0x6670('0x45')](handleEntityNotFound(_0x13c49b,null))[_0x6670('0x45')](respondWithResult(_0x13c49b,null))[_0x6670('0x4b')](handleError(_0x13c49b,null));};exports[_0x6670('0x4c')]=function(_0x310b43,_0xb50f79){var _0x1fa1a5={'where':{'id':_0x310b43[_0x6670('0x4a')]['id']}},_0x329683={};_0x329683[_0x6670('0x33')]=_[_0x6670('0x35')](db[_0x6670('0x2f')][_0x6670('0x30')]);_0x1fa1a5[_0x6670('0x3a')]=_[_0x6670('0x37')](_0x329683[_0x6670('0x33')],qs[_0x6670('0x38')](_0x310b43['query'][_0x6670('0x38')]));_0x1fa1a5['attributes']=_0x1fa1a5[_0x6670('0x3a')]['length']?_0x1fa1a5['attributes']:_0x329683['model'];if(_0x310b43[_0x6670('0x39')][_0x6670('0x46')]){_0x1fa1a5[_0x6670('0x47')]=[{'all':!![]}];}_0x1fa1a5=_['merge']({},_0x1fa1a5,_0x310b43[_0x6670('0x44')]);return db['Attachment'][_0x6670('0x4d')](_0x1fa1a5)[_0x6670('0x45')](handleEntityNotFound(_0xb50f79,null))[_0x6670('0x45')](function(_0x286936){if(_0x286936){var _0x2b1867=_0x286936[_0x6670('0x4e')]({'plain':!![]});_0x2b1867=qs[_0x6670('0x4f')](_0x2b1867,['id',_0x6670('0x50'),_0x6670('0x51')]);_0x310b43[_0x6670('0x52')]=_[_0x6670('0x4f')](_0x310b43[_0x6670('0x52')],['id','createdAt','updatedAt']);return db[_0x6670('0x2f')][_0x6670('0x53')](_[_0x6670('0x42')](_0x2b1867,_0x310b43['body']),{'include':_0x310b43['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0x6670('0x45')](respondWithResult(_0xb50f79,0xc9))[_0x6670('0x4b')](handleError(_0xb50f79,null));};exports[_0x6670('0x28')]=function(_0x575d2c,_0x46febc){if(_0x575d2c['body']['id']){delete _0x575d2c['body']['id'];}return db['Attachment']['find']({'where':{'id':_0x575d2c[_0x6670('0x4a')]['id']}})['then'](handleEntityNotFound(_0x46febc,null))[_0x6670('0x45')](saveUpdates(_0x575d2c[_0x6670('0x52')],null))[_0x6670('0x45')](respondWithResult(_0x46febc,null))[_0x6670('0x4b')](handleError(_0x46febc,null));};exports[_0x6670('0x29')]=function(_0x20547d,_0x51ee67){return db[_0x6670('0x2f')]['find']({'where':{'id':_0x20547d['params']['id']}})['then'](handleEntityNotFound(_0x51ee67,null))[_0x6670('0x45')](removeEntity(_0x51ee67,null))[_0x6670('0x4b')](handleError(_0x51ee67,null));};exports['create']=function(_0x5430a5,_0x1c4203,_0x54e411){_0x5430a5[_0x6670('0x52')][_0x6670('0x34')]=_0x5430a5['file'][_0x6670('0x54')];_0x5430a5['body'][_0x6670('0x55')]=_0x5430a5[_0x6670('0x56')][_0x6670('0x57')];_0x5430a5['body'][_0x6670('0x32')]=_0x5430a5['file'][_0x6670('0x58')];return db[_0x6670('0x2f')]['create'](_0x5430a5[_0x6670('0x52')])[_0x6670('0x45')](respondWithResult(_0x1c4203,0xc9))['catch'](handleError(_0x1c4203,null));};exports['download']=function(_0x4486c4,_0x2090fa,_0x841af3){return db[_0x6670('0x2f')][_0x6670('0x59')]({'where':{'id':_0x4486c4[_0x6670('0x4a')]['id']},'raw':!![]})[_0x6670('0x45')](handleEntityNotFound(_0x2090fa,null))[_0x6670('0x45')](function(_0x9877ab){if(_0x9877ab){var _0x2c5652=_0x9877ab['ChatOfflineMessageId']!==null;var _0x3fa17f=path['join'](config[_0x6670('0x5a')],_0x6670('0x5b'));if(_0x2c5652){_0x3fa17f=path['join'](_0x3fa17f,_0x6670('0x5c'));}var _0x1c6bf3=path['join'](_0x3fa17f,_0x9877ab['basename']);return _0x2090fa[_0x6670('0x5d')](_0x1c6bf3);}})['catch'](handleError(_0x2090fa,null));};