ce5538c3a5b25fc98bbfc5d7daad670a8060bb7a
[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 _0x7303=['includeAll','findAll','rows','catch','show','params','include','options','clone','find','get','omit','createdAt','updatedAt','body','create','destroy','basename','file','filename','download','findOne','server/files/attachments/','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','offset','limit','set','Content-Range','apply','reject','save','update','then','end','sendStatus','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','query','keys','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','VIRTUAL','merge','count'];(function(_0x3b2bc5,_0x36e7da){var _0x2c48bd=function(_0x331ad4){while(--_0x331ad4){_0x3b2bc5['push'](_0x3b2bc5['shift']());}};_0x2c48bd(++_0x36e7da);}(_0x7303,0x113));var _0x3730=function(_0x44924c,_0x35a69e){_0x44924c=_0x44924c-0x0;var _0x1c9d5e=_0x7303[_0x44924c];return _0x1c9d5e;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x3730('0x0'));var zipdir=require(_0x3730('0x1'));var jsonpatch=require(_0x3730('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3730('0x3'));var Mustache=require(_0x3730('0x4'));var util=require(_0x3730('0x5'));var path=require(_0x3730('0x6'));var sox=require('sox');var csv=require(_0x3730('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x3730('0x8'));var squel=require(_0x3730('0x9'));var crypto=require(_0x3730('0xa'));var jsforce=require(_0x3730('0xb'));var deskjs=require(_0x3730('0xc'));var toCsv=require(_0x3730('0x7'));var querystring=require(_0x3730('0xd'));var Papa=require(_0x3730('0xe'));var Redis=require('ioredis');var authService=require(_0x3730('0xf'));var qs=require(_0x3730('0x10'));var as=require(_0x3730('0x11'));var hardwareService=require(_0x3730('0x12'));var logger=require(_0x3730('0x13'))(_0x3730('0x14'));var utils=require(_0x3730('0x15'));var config=require(_0x3730('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x3730('0x17'))['db'];function respondWithStatusCode(_0x2d44b4,_0x4ae609){_0x4ae609=_0x4ae609||0xcc;return function(_0x6a27a3){if(_0x6a27a3){return _0x2d44b4['sendStatus'](_0x4ae609);}return _0x2d44b4[_0x3730('0x18')](_0x4ae609)['end']();};}function respondWithResult(_0x2f5740,_0x411347){_0x411347=_0x411347||0xc8;return function(_0x54b9a2){if(_0x54b9a2){return _0x2f5740[_0x3730('0x18')](_0x411347)['json'](_0x54b9a2);}};}function respondWithFilteredResult(_0x287976,_0x2fdedb){return function(_0xfb1576){if(_0xfb1576){var _0x25962e=_0xfb1576['count'],_0x521a25=_0x2fdedb[_0x3730('0x19')],_0x4850c8=_0x2fdedb[_0x3730('0x19')]+_0x2fdedb[_0x3730('0x1a')],_0xc072b;if(_0x4850c8>=_0x25962e){_0x4850c8=_0x25962e;_0xc072b=0xc8;}else{_0xc072b=0xce;}_0x287976[_0x3730('0x18')](_0xc072b);return _0x287976[_0x3730('0x1b')](_0x3730('0x1c'),_0x521a25+'-'+_0x4850c8+'/'+_0x25962e)['json'](_0xfb1576);}return null;};}function patchUpdates(_0x5d515a){return function(_0x38164b){try{jsonpatch[_0x3730('0x1d')](_0x38164b,_0x5d515a,!![]);}catch(_0x286cc9){return BPromise[_0x3730('0x1e')](_0x286cc9);}return _0x38164b[_0x3730('0x1f')]();};}function saveUpdates(_0x3aa241,_0x373180){return function(_0x3b5f31){if(_0x3b5f31){return _0x3b5f31[_0x3730('0x20')](_0x3aa241)[_0x3730('0x21')](function(_0x44a846){return _0x44a846;});}return null;};}function removeEntity(_0x2d4d19,_0x5ae646){return function(_0x5aa703){if(_0x5aa703){return _0x5aa703['destroy']()[_0x3730('0x21')](function(){_0x2d4d19['status'](0xcc)[_0x3730('0x22')]();});}};}function handleEntityNotFound(_0x4f048e,_0x50dcdc){return function(_0x1db99c){if(!_0x1db99c){_0x4f048e[_0x3730('0x23')](0x194);}return _0x1db99c;};}function handleError(_0x5f3da6,_0x47aa72){_0x47aa72=_0x47aa72||0x1f4;return function(_0xb6e6da){logger[_0x3730('0x24')](_0xb6e6da[_0x3730('0x25')]);if(_0xb6e6da['name']){delete _0xb6e6da[_0x3730('0x26')];}_0x5f3da6[_0x3730('0x18')](_0x47aa72)[_0x3730('0x27')](_0xb6e6da);};}exports[_0x3730('0x28')]=function(_0x13d0b5,_0x4953ba){var _0x230853={},_0x3feadd={},_0x34a995={'count':0x0,'rows':[]};var _0x2dbc00=_[_0x3730('0x29')](db[_0x3730('0x2a')][_0x3730('0x2b')],function(_0x4953ef){return{'name':_0x4953ef[_0x3730('0x2c')],'type':_0x4953ef[_0x3730('0x2d')]['key']};});_0x3feadd['model']=_['map'](_0x2dbc00,_0x3730('0x26'));_0x3feadd[_0x3730('0x2e')]=_[_0x3730('0x2f')](_0x13d0b5[_0x3730('0x2e')]);_0x3feadd['filters']=_['intersection'](_0x3feadd[_0x3730('0x30')],_0x3feadd[_0x3730('0x2e')]);_0x230853[_0x3730('0x31')]=_[_0x3730('0x32')](_0x3feadd[_0x3730('0x30')],qs[_0x3730('0x33')](_0x13d0b5[_0x3730('0x2e')]['fields']));_0x230853[_0x3730('0x31')]=_0x230853['attributes'][_0x3730('0x34')]?_0x230853['attributes']:_0x3feadd[_0x3730('0x30')];if(!_0x13d0b5[_0x3730('0x2e')][_0x3730('0x35')]('nolimit')){_0x230853[_0x3730('0x1a')]=qs[_0x3730('0x1a')](_0x13d0b5[_0x3730('0x2e')][_0x3730('0x1a')]);_0x230853[_0x3730('0x19')]=qs[_0x3730('0x19')](_0x13d0b5['query'][_0x3730('0x19')]);}_0x230853[_0x3730('0x36')]=qs['sort'](_0x13d0b5['query'][_0x3730('0x37')]);_0x230853[_0x3730('0x38')]=qs[_0x3730('0x39')](_['pick'](_0x13d0b5[_0x3730('0x2e')],_0x3feadd[_0x3730('0x39')]),_0x2dbc00);if(_0x13d0b5[_0x3730('0x2e')]['filter']){_0x230853[_0x3730('0x38')]=_['merge'](_0x230853[_0x3730('0x38')],{'$or':_[_0x3730('0x29')](_0x2dbc00,function(_0x2be615){if(_0x2be615['type']!==_0x3730('0x3a')){var _0x9ce9b6={};_0x9ce9b6[_0x2be615['name']]={'$like':'%'+_0x13d0b5['query']['filter']+'%'};return _0x9ce9b6;}})});}_0x230853=_[_0x3730('0x3b')]({},_0x230853,_0x13d0b5['options']);var _0xf4a83e={'where':_0x230853[_0x3730('0x38')]};return db['Attachment'][_0x3730('0x3c')](_0xf4a83e)[_0x3730('0x21')](function(_0x934be){_0x34a995['count']=_0x934be;if(_0x13d0b5[_0x3730('0x2e')][_0x3730('0x3d')]){_0x230853['include']=[{'all':!![]}];}return db[_0x3730('0x2a')][_0x3730('0x3e')](_0x230853);})['then'](function(_0x2a3876){_0x34a995[_0x3730('0x3f')]=_0x2a3876;return _0x34a995;})[_0x3730('0x21')](respondWithFilteredResult(_0x4953ba,_0x230853))[_0x3730('0x40')](handleError(_0x4953ba,null));};exports[_0x3730('0x41')]=function(_0x5a5509,_0x4f40cb){var _0x5a7e57={'raw':!![],'where':{'id':_0x5a5509[_0x3730('0x42')]['id']}},_0x5bc626={};_0x5bc626[_0x3730('0x30')]=_['keys'](db[_0x3730('0x2a')]['rawAttributes']);_0x5bc626[_0x3730('0x2e')]=_[_0x3730('0x2f')](_0x5a5509[_0x3730('0x2e')]);_0x5bc626[_0x3730('0x39')]=_[_0x3730('0x32')](_0x5bc626[_0x3730('0x30')],_0x5bc626['query']);_0x5a7e57['attributes']=_['intersection'](_0x5bc626[_0x3730('0x30')],qs[_0x3730('0x33')](_0x5a5509[_0x3730('0x2e')][_0x3730('0x33')]));_0x5a7e57['attributes']=_0x5a7e57[_0x3730('0x31')][_0x3730('0x34')]?_0x5a7e57[_0x3730('0x31')]:_0x5bc626['model'];if(_0x5a5509['query'][_0x3730('0x3d')]){_0x5a7e57[_0x3730('0x43')]=[{'all':!![]}];}_0x5a7e57=_[_0x3730('0x3b')]({},_0x5a7e57,_0x5a5509[_0x3730('0x44')]);return db['Attachment']['find'](_0x5a7e57)[_0x3730('0x21')](handleEntityNotFound(_0x4f40cb,null))[_0x3730('0x21')](respondWithResult(_0x4f40cb,null))[_0x3730('0x40')](handleError(_0x4f40cb,null));};exports[_0x3730('0x45')]=function(_0x1b3df3,_0x4f4200){var _0xff1518={'where':{'id':_0x1b3df3[_0x3730('0x42')]['id']}},_0xc81511={};_0xc81511['model']=_[_0x3730('0x2f')](db[_0x3730('0x2a')]['rawAttributes']);_0xff1518[_0x3730('0x31')]=_[_0x3730('0x32')](_0xc81511['model'],qs[_0x3730('0x33')](_0x1b3df3[_0x3730('0x2e')][_0x3730('0x33')]));_0xff1518[_0x3730('0x31')]=_0xff1518[_0x3730('0x31')][_0x3730('0x34')]?_0xff1518[_0x3730('0x31')]:_0xc81511[_0x3730('0x30')];if(_0x1b3df3[_0x3730('0x2e')][_0x3730('0x3d')]){_0xff1518[_0x3730('0x43')]=[{'all':!![]}];}_0xff1518=_[_0x3730('0x3b')]({},_0xff1518,_0x1b3df3[_0x3730('0x44')]);return db[_0x3730('0x2a')][_0x3730('0x46')](_0xff1518)[_0x3730('0x21')](handleEntityNotFound(_0x4f4200,null))[_0x3730('0x21')](function(_0x2fdcf5){if(_0x2fdcf5){var _0x2be5c3=_0x2fdcf5[_0x3730('0x47')]({'plain':!![]});_0x2be5c3=qs[_0x3730('0x48')](_0x2be5c3,['id',_0x3730('0x49'),_0x3730('0x4a')]);_0x1b3df3[_0x3730('0x4b')]=_['omit'](_0x1b3df3[_0x3730('0x4b')],['id',_0x3730('0x49'),_0x3730('0x4a')]);return db[_0x3730('0x2a')][_0x3730('0x4c')](_[_0x3730('0x3b')](_0x2be5c3,_0x1b3df3['body']),{'include':_0x1b3df3[_0x3730('0x2e')][_0x3730('0x3d')]?[{'all':!![]}]:undefined});}})[_0x3730('0x21')](respondWithResult(_0x4f4200,0xc9))[_0x3730('0x40')](handleError(_0x4f4200,null));};exports[_0x3730('0x20')]=function(_0x2dfc72,_0x50c37e){if(_0x2dfc72[_0x3730('0x4b')]['id']){delete _0x2dfc72['body']['id'];}return db[_0x3730('0x2a')][_0x3730('0x46')]({'where':{'id':_0x2dfc72['params']['id']}})[_0x3730('0x21')](handleEntityNotFound(_0x50c37e,null))[_0x3730('0x21')](saveUpdates(_0x2dfc72[_0x3730('0x4b')],null))[_0x3730('0x21')](respondWithResult(_0x50c37e,null))['catch'](handleError(_0x50c37e,null));};exports[_0x3730('0x4d')]=function(_0x30ff8c,_0x2c9ae4){return db[_0x3730('0x2a')][_0x3730('0x46')]({'where':{'id':_0x30ff8c[_0x3730('0x42')]['id']}})[_0x3730('0x21')](handleEntityNotFound(_0x2c9ae4,null))[_0x3730('0x21')](removeEntity(_0x2c9ae4,null))['catch'](handleError(_0x2c9ae4,null));};exports[_0x3730('0x4c')]=function(_0x36a4c8,_0x4213eb,_0x4e4e38){_0x36a4c8[_0x3730('0x4b')]['name']=_0x36a4c8['file']['originalname'];_0x36a4c8[_0x3730('0x4b')][_0x3730('0x4e')]=_0x36a4c8[_0x3730('0x4f')][_0x3730('0x50')];_0x36a4c8[_0x3730('0x4b')][_0x3730('0x2d')]=_0x36a4c8[_0x3730('0x4f')]['mimetype'];return db[_0x3730('0x2a')][_0x3730('0x4c')](_0x36a4c8[_0x3730('0x4b')])[_0x3730('0x21')](respondWithResult(_0x4213eb,0xc9))[_0x3730('0x40')](handleError(_0x4213eb,null));};exports[_0x3730('0x51')]=function(_0x5a274c,_0x5d457e,_0xdb7d61){return db[_0x3730('0x2a')][_0x3730('0x52')]({'where':{'id':_0x5a274c['params']['id']},'raw':!![]})[_0x3730('0x21')](handleEntityNotFound(_0x5d457e,null))['then'](function(_0x28800c){if(_0x28800c){return _0x5d457e[_0x3730('0x51')](path['join'](config['root'],_0x3730('0x53'),_0x28800c[_0x3730('0x4e')]));}})[_0x3730('0x40')](handleError(_0x5d457e,null));};