149e9f8b9a891dee6b1d6d83921916cd012f2cfe
[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 _0x7050=['filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','rows','show','params','keys','options','find','catch','clone','get','omit','updatedAt','body','create','originalname','file','mimetype','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','query'];(function(_0x31c133,_0x3075f7){var _0x596121=function(_0xcb270e){while(--_0xcb270e){_0x31c133['push'](_0x31c133['shift']());}};_0x596121(++_0x3075f7);}(_0x7050,0x133));var _0x0705=function(_0xce6f11,_0x3c3137){_0xce6f11=_0xce6f11-0x0;var _0x35b709=_0x7050[_0xce6f11];return _0x35b709;};'use strict';var emlformat=require(_0x0705('0x0'));var rimraf=require(_0x0705('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0705('0x2'));var rp=require(_0x0705('0x3'));var moment=require('moment');var BPromise=require(_0x0705('0x4'));var Mustache=require(_0x0705('0x5'));var util=require('util');var path=require('path');var sox=require(_0x0705('0x6'));var csv=require(_0x0705('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0705('0x8'));var _=require(_0x0705('0x9'));var squel=require(_0x0705('0xa'));var crypto=require(_0x0705('0xb'));var jsforce=require(_0x0705('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x0705('0x7'));var querystring=require(_0x0705('0xd'));var Papa=require(_0x0705('0xe'));var Redis=require(_0x0705('0xf'));var authService=require(_0x0705('0x10'));var qs=require(_0x0705('0x11'));var as=require(_0x0705('0x12'));var hardwareService=require(_0x0705('0x13'));var logger=require(_0x0705('0x14'))(_0x0705('0x15'));var utils=require(_0x0705('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0705('0x17'));var db=require(_0x0705('0x18'))['db'];function respondWithStatusCode(_0x28fe3f,_0xad5331){_0xad5331=_0xad5331||0xcc;return function(_0x22bbf8){if(_0x22bbf8){return _0x28fe3f[_0x0705('0x19')](_0xad5331);}return _0x28fe3f[_0x0705('0x1a')](_0xad5331)[_0x0705('0x1b')]();};}function respondWithResult(_0x132ccc,_0x389264){_0x389264=_0x389264||0xc8;return function(_0x587e38){if(_0x587e38){return _0x132ccc['status'](_0x389264)[_0x0705('0x1c')](_0x587e38);}};}function respondWithFilteredResult(_0x33a818,_0x1ecb94){return function(_0x2a9615){if(_0x2a9615){var _0x1bd6d4=typeof _0x1ecb94[_0x0705('0x1d')]===_0x0705('0x1e')&&typeof _0x1ecb94[_0x0705('0x1f')]===_0x0705('0x1e');var _0x394eb2=_0x2a9615['count'];var _0x150c90=_0x1bd6d4?0x0:_0x1ecb94['offset'];var _0x1e93ed=_0x1bd6d4?_0x2a9615[_0x0705('0x20')]:_0x1ecb94['offset']+_0x1ecb94['limit'];var _0x1409e1;if(_0x1e93ed>=_0x394eb2){_0x1e93ed=_0x394eb2;_0x1409e1=0xc8;}else{_0x1409e1=0xce;}_0x33a818[_0x0705('0x1a')](_0x1409e1);return _0x33a818['set']('Content-Range',_0x150c90+'-'+_0x1e93ed+'/'+_0x394eb2)['json'](_0x2a9615);}return null;};}function patchUpdates(_0x410cc8){return function(_0x52357f){try{jsonpatch[_0x0705('0x21')](_0x52357f,_0x410cc8,!![]);}catch(_0x17f62d){return BPromise[_0x0705('0x22')](_0x17f62d);}return _0x52357f[_0x0705('0x23')]();};}function saveUpdates(_0x38820e,_0x4eb750){return function(_0x11e545){if(_0x11e545){return _0x11e545[_0x0705('0x24')](_0x38820e)[_0x0705('0x25')](function(_0x127862){return _0x127862;});}return null;};}function removeEntity(_0x1676ce,_0x46ff09){return function(_0x2fc9c5){if(_0x2fc9c5){return _0x2fc9c5[_0x0705('0x26')]()[_0x0705('0x25')](function(){_0x1676ce[_0x0705('0x1a')](0xcc)[_0x0705('0x1b')]();});}};}function handleEntityNotFound(_0x165aeb,_0x59c838){return function(_0x1c9af7){if(!_0x1c9af7){_0x165aeb['sendStatus'](0x194);}return _0x1c9af7;};}function handleError(_0x126625,_0x3580ef){_0x3580ef=_0x3580ef||0x1f4;return function(_0x16f031){logger[_0x0705('0x27')](_0x16f031[_0x0705('0x28')]);if(_0x16f031[_0x0705('0x29')]){delete _0x16f031[_0x0705('0x29')];}_0x126625[_0x0705('0x1a')](_0x3580ef)[_0x0705('0x2a')](_0x16f031);};}exports[_0x0705('0x2b')]=function(_0x39b10b,_0xe9179c){var _0x107291={},_0x5da229={},_0x5dda14={'count':0x0,'rows':[]};var _0x3df7a1=_[_0x0705('0x2c')](db[_0x0705('0x2d')][_0x0705('0x2e')],function(_0xe70f83){return{'name':_0xe70f83[_0x0705('0x2f')],'type':_0xe70f83['type']['key']};});_0x5da229['model']=_[_0x0705('0x2c')](_0x3df7a1,'name');_0x5da229['query']=_['keys'](_0x39b10b[_0x0705('0x30')]);_0x5da229[_0x0705('0x31')]=_[_0x0705('0x32')](_0x5da229[_0x0705('0x33')],_0x5da229[_0x0705('0x30')]);_0x107291[_0x0705('0x34')]=_[_0x0705('0x32')](_0x5da229[_0x0705('0x33')],qs[_0x0705('0x35')](_0x39b10b[_0x0705('0x30')][_0x0705('0x35')]));_0x107291[_0x0705('0x34')]=_0x107291[_0x0705('0x34')][_0x0705('0x36')]?_0x107291[_0x0705('0x34')]:_0x5da229[_0x0705('0x33')];if(!_0x39b10b['query'][_0x0705('0x37')](_0x0705('0x38'))){_0x107291[_0x0705('0x1f')]=qs[_0x0705('0x1f')](_0x39b10b[_0x0705('0x30')][_0x0705('0x1f')]);_0x107291[_0x0705('0x1d')]=qs[_0x0705('0x1d')](_0x39b10b[_0x0705('0x30')][_0x0705('0x1d')]);}_0x107291[_0x0705('0x39')]=qs[_0x0705('0x3a')](_0x39b10b[_0x0705('0x30')][_0x0705('0x3a')]);_0x107291[_0x0705('0x3b')]=qs[_0x0705('0x31')](_[_0x0705('0x3c')](_0x39b10b[_0x0705('0x30')],_0x5da229['filters']),_0x3df7a1);if(_0x39b10b[_0x0705('0x30')][_0x0705('0x3d')]){_0x107291['where']=_[_0x0705('0x3e')](_0x107291[_0x0705('0x3b')],{'$or':_['map'](_0x3df7a1,function(_0x3abc7b){if(_0x3abc7b[_0x0705('0x3f')]!==_0x0705('0x40')){var _0x236525={};_0x236525[_0x3abc7b[_0x0705('0x29')]]={'$like':'%'+_0x39b10b[_0x0705('0x30')][_0x0705('0x3d')]+'%'};return _0x236525;}})});}_0x107291=_['merge']({},_0x107291,_0x39b10b['options']);var _0x5a8dc6={'where':_0x107291[_0x0705('0x3b')]};return db['Attachment'][_0x0705('0x20')](_0x5a8dc6)[_0x0705('0x25')](function(_0x30fbb1){_0x5dda14[_0x0705('0x20')]=_0x30fbb1;if(_0x39b10b[_0x0705('0x30')][_0x0705('0x41')]){_0x107291[_0x0705('0x42')]=[{'all':!![]}];}return db['Attachment']['findAll'](_0x107291);})[_0x0705('0x25')](function(_0x2ee0c0){_0x5dda14[_0x0705('0x43')]=_0x2ee0c0;return _0x5dda14;})[_0x0705('0x25')](respondWithFilteredResult(_0xe9179c,_0x107291))['catch'](handleError(_0xe9179c,null));};exports[_0x0705('0x44')]=function(_0xeba155,_0x30198e){var _0x130b70={'raw':!![],'where':{'id':_0xeba155[_0x0705('0x45')]['id']}},_0x10e079={};_0x10e079['model']=_[_0x0705('0x46')](db[_0x0705('0x2d')][_0x0705('0x2e')]);_0x10e079['query']=_['keys'](_0xeba155[_0x0705('0x30')]);_0x10e079[_0x0705('0x31')]=_['intersection'](_0x10e079[_0x0705('0x33')],_0x10e079[_0x0705('0x30')]);_0x130b70[_0x0705('0x34')]=_['intersection'](_0x10e079[_0x0705('0x33')],qs[_0x0705('0x35')](_0xeba155['query'][_0x0705('0x35')]));_0x130b70[_0x0705('0x34')]=_0x130b70[_0x0705('0x34')][_0x0705('0x36')]?_0x130b70[_0x0705('0x34')]:_0x10e079[_0x0705('0x33')];if(_0xeba155[_0x0705('0x30')][_0x0705('0x41')]){_0x130b70['include']=[{'all':!![]}];}_0x130b70=_['merge']({},_0x130b70,_0xeba155[_0x0705('0x47')]);return db[_0x0705('0x2d')][_0x0705('0x48')](_0x130b70)[_0x0705('0x25')](handleEntityNotFound(_0x30198e,null))['then'](respondWithResult(_0x30198e,null))[_0x0705('0x49')](handleError(_0x30198e,null));};exports[_0x0705('0x4a')]=function(_0x158494,_0x22f131){var _0x5e2d4d={'where':{'id':_0x158494[_0x0705('0x45')]['id']}},_0x1c0faf={};_0x1c0faf[_0x0705('0x33')]=_[_0x0705('0x46')](db[_0x0705('0x2d')]['rawAttributes']);_0x5e2d4d['attributes']=_[_0x0705('0x32')](_0x1c0faf[_0x0705('0x33')],qs[_0x0705('0x35')](_0x158494[_0x0705('0x30')][_0x0705('0x35')]));_0x5e2d4d['attributes']=_0x5e2d4d[_0x0705('0x34')][_0x0705('0x36')]?_0x5e2d4d[_0x0705('0x34')]:_0x1c0faf['model'];if(_0x158494[_0x0705('0x30')][_0x0705('0x41')]){_0x5e2d4d[_0x0705('0x42')]=[{'all':!![]}];}_0x5e2d4d=_[_0x0705('0x3e')]({},_0x5e2d4d,_0x158494[_0x0705('0x47')]);return db[_0x0705('0x2d')][_0x0705('0x48')](_0x5e2d4d)[_0x0705('0x25')](handleEntityNotFound(_0x22f131,null))['then'](function(_0x1b87e2){if(_0x1b87e2){var _0x1266d5=_0x1b87e2[_0x0705('0x4b')]({'plain':!![]});_0x1266d5=qs[_0x0705('0x4c')](_0x1266d5,['id','createdAt',_0x0705('0x4d')]);_0x158494[_0x0705('0x4e')]=_['omit'](_0x158494[_0x0705('0x4e')],['id','createdAt','updatedAt']);return db[_0x0705('0x2d')][_0x0705('0x4f')](_[_0x0705('0x3e')](_0x1266d5,_0x158494[_0x0705('0x4e')]),{'include':_0x158494[_0x0705('0x30')][_0x0705('0x41')]?[{'all':!![]}]:undefined});}})[_0x0705('0x25')](respondWithResult(_0x22f131,0xc9))[_0x0705('0x49')](handleError(_0x22f131,null));};exports[_0x0705('0x24')]=function(_0xd9892d,_0x551e6f){if(_0xd9892d['body']['id']){delete _0xd9892d[_0x0705('0x4e')]['id'];}return db[_0x0705('0x2d')][_0x0705('0x48')]({'where':{'id':_0xd9892d['params']['id']}})[_0x0705('0x25')](handleEntityNotFound(_0x551e6f,null))[_0x0705('0x25')](saveUpdates(_0xd9892d[_0x0705('0x4e')],null))[_0x0705('0x25')](respondWithResult(_0x551e6f,null))[_0x0705('0x49')](handleError(_0x551e6f,null));};exports[_0x0705('0x26')]=function(_0x44ae2f,_0x1f690d){return db[_0x0705('0x2d')]['find']({'where':{'id':_0x44ae2f['params']['id']}})[_0x0705('0x25')](handleEntityNotFound(_0x1f690d,null))[_0x0705('0x25')](removeEntity(_0x1f690d,null))['catch'](handleError(_0x1f690d,null));};exports[_0x0705('0x4f')]=function(_0x5b6b4c,_0x371509,_0x59bc38){_0x5b6b4c[_0x0705('0x4e')][_0x0705('0x29')]=_0x5b6b4c['file'][_0x0705('0x50')];_0x5b6b4c[_0x0705('0x4e')]['basename']=_0x5b6b4c[_0x0705('0x51')]['filename'];_0x5b6b4c[_0x0705('0x4e')]['type']=_0x5b6b4c[_0x0705('0x51')][_0x0705('0x52')];return db[_0x0705('0x2d')][_0x0705('0x4f')](_0x5b6b4c['body'])[_0x0705('0x25')](respondWithResult(_0x371509,0xc9))[_0x0705('0x49')](handleError(_0x371509,null));};exports['download']=function(_0x165ac6,_0xa7f3bf,_0xb81750){return db[_0x0705('0x2d')][_0x0705('0x53')]({'where':{'id':_0x165ac6['params']['id']},'raw':!![]})[_0x0705('0x25')](handleEntityNotFound(_0xa7f3bf,null))['then'](function(_0x2e1536){if(_0x2e1536){var _0xd6c419=_0x2e1536[_0x0705('0x54')]!==null;var _0x2fd615=path[_0x0705('0x55')](config[_0x0705('0x56')],_0x0705('0x57'));if(_0xd6c419){_0x2fd615=path[_0x0705('0x55')](_0x2fd615,_0x0705('0x58'));}var _0x1f1046=path[_0x0705('0x55')](_0x2fd615,_0x2e1536['basename']);return _0xa7f3bf['download'](_0x1f1046);}})[_0x0705('0x49')](handleError(_0xa7f3bf,null));};