d2ba285bde83c41b69cdd9d68bd8651ce5785e24
[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 _0x96fe=['send','map','rawAttributes','type','query','keys','intersection','attributes','fields','length','model','hasOwnProperty','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','Attachment','includeAll','findAll','rows','catch','show','params','include','find','clone','get','omit','createdAt','updatedAt','body','create','update','file','basename','filename','download','ChatOfflineMessageId','join','server/files/attachments/','offline-chat/','zip-dir','fast-json-patch','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','end','json','undefined','limit','count','offset','status','set','Content-Range','apply','reject','save','then','destroy','sendStatus','name'];(function(_0x46d0c9,_0x526bfa){var _0x174506=function(_0x654bc6){while(--_0x654bc6){_0x46d0c9['push'](_0x46d0c9['shift']());}};_0x174506(++_0x526bfa);}(_0x96fe,0x1cd));var _0xe96f=function(_0x582c5b,_0x13e6ae){_0x582c5b=_0x582c5b-0x0;var _0xb73f6d=_0x96fe[_0x582c5b];return _0xb73f6d;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe96f('0x0'));var jsonpatch=require(_0xe96f('0x1'));var rp=require('request-promise');var moment=require(_0xe96f('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xe96f('0x3'));var sox=require(_0xe96f('0x4'));var csv=require(_0xe96f('0x5'));var ejs=require(_0xe96f('0x6'));var fs=require('fs');var fs_extra=require(_0xe96f('0x7'));var _=require(_0xe96f('0x8'));var squel=require(_0xe96f('0x9'));var crypto=require('crypto');var jsforce=require(_0xe96f('0xa'));var deskjs=require(_0xe96f('0xb'));var toCsv=require(_0xe96f('0x5'));var querystring=require(_0xe96f('0xc'));var Papa=require(_0xe96f('0xd'));var Redis=require(_0xe96f('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xe96f('0xf'));var as=require(_0xe96f('0x10'));var hardwareService=require(_0xe96f('0x11'));var logger=require('../../config/logger')(_0xe96f('0x12'));var utils=require(_0xe96f('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xe96f('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49c6c3,_0x53fdde){_0x53fdde=_0x53fdde||0xcc;return function(_0x5b995d){if(_0x5b995d){return _0x49c6c3['sendStatus'](_0x53fdde);}return _0x49c6c3['status'](_0x53fdde)[_0xe96f('0x15')]();};}function respondWithResult(_0x14705e,_0x5ca28d){_0x5ca28d=_0x5ca28d||0xc8;return function(_0x5c817f){if(_0x5c817f){return _0x14705e['status'](_0x5ca28d)[_0xe96f('0x16')](_0x5c817f);}};}function respondWithFilteredResult(_0x4a7250,_0x147168){return function(_0x5ca612){if(_0x5ca612){var _0x3cad9b=typeof _0x147168['offset']===_0xe96f('0x17')&&typeof _0x147168[_0xe96f('0x18')]===_0xe96f('0x17');var _0x54e25c=_0x5ca612[_0xe96f('0x19')];var _0x3ab2e9=_0x3cad9b?0x0:_0x147168[_0xe96f('0x1a')];var _0x3a2112=_0x3cad9b?_0x5ca612['count']:_0x147168[_0xe96f('0x1a')]+_0x147168[_0xe96f('0x18')];var _0x18991a;if(_0x3a2112>=_0x54e25c){_0x3a2112=_0x54e25c;_0x18991a=0xc8;}else{_0x18991a=0xce;}_0x4a7250[_0xe96f('0x1b')](_0x18991a);return _0x4a7250[_0xe96f('0x1c')](_0xe96f('0x1d'),_0x3ab2e9+'-'+_0x3a2112+'/'+_0x54e25c)['json'](_0x5ca612);}return null;};}function patchUpdates(_0x190856){return function(_0x356f99){try{jsonpatch[_0xe96f('0x1e')](_0x356f99,_0x190856,!![]);}catch(_0x35f603){return BPromise[_0xe96f('0x1f')](_0x35f603);}return _0x356f99[_0xe96f('0x20')]();};}function saveUpdates(_0x52f4fc,_0x490b79){return function(_0x4fc6c4){if(_0x4fc6c4){return _0x4fc6c4['update'](_0x52f4fc)[_0xe96f('0x21')](function(_0x429a38){return _0x429a38;});}return null;};}function removeEntity(_0x119ce1,_0x3078f8){return function(_0x3d14b6){if(_0x3d14b6){return _0x3d14b6[_0xe96f('0x22')]()[_0xe96f('0x21')](function(){_0x119ce1[_0xe96f('0x1b')](0xcc)[_0xe96f('0x15')]();});}};}function handleEntityNotFound(_0x4eb338,_0x1c4171){return function(_0x7a5579){if(!_0x7a5579){_0x4eb338[_0xe96f('0x23')](0x194);}return _0x7a5579;};}function handleError(_0x1d4ebe,_0x488a51){_0x488a51=_0x488a51||0x1f4;return function(_0x4bb9d7){logger['error'](_0x4bb9d7['stack']);if(_0x4bb9d7[_0xe96f('0x24')]){delete _0x4bb9d7[_0xe96f('0x24')];}_0x1d4ebe['status'](_0x488a51)[_0xe96f('0x25')](_0x4bb9d7);};}exports['index']=function(_0x1356d5,_0xe9a0bc){var _0x52e83a={},_0x470e18={},_0x39abfe={'count':0x0,'rows':[]};var _0xef6c6d=_[_0xe96f('0x26')](db['Attachment'][_0xe96f('0x27')],function(_0xef67f5){return{'name':_0xef67f5['fieldName'],'type':_0xef67f5[_0xe96f('0x28')]['key']};});_0x470e18['model']=_['map'](_0xef6c6d,_0xe96f('0x24'));_0x470e18[_0xe96f('0x29')]=_[_0xe96f('0x2a')](_0x1356d5[_0xe96f('0x29')]);_0x470e18['filters']=_[_0xe96f('0x2b')](_0x470e18['model'],_0x470e18[_0xe96f('0x29')]);_0x52e83a[_0xe96f('0x2c')]=_['intersection'](_0x470e18['model'],qs[_0xe96f('0x2d')](_0x1356d5[_0xe96f('0x29')][_0xe96f('0x2d')]));_0x52e83a[_0xe96f('0x2c')]=_0x52e83a[_0xe96f('0x2c')][_0xe96f('0x2e')]?_0x52e83a[_0xe96f('0x2c')]:_0x470e18[_0xe96f('0x2f')];if(!_0x1356d5[_0xe96f('0x29')][_0xe96f('0x30')]('nolimit')){_0x52e83a[_0xe96f('0x18')]=qs[_0xe96f('0x18')](_0x1356d5[_0xe96f('0x29')][_0xe96f('0x18')]);_0x52e83a[_0xe96f('0x1a')]=qs[_0xe96f('0x1a')](_0x1356d5[_0xe96f('0x29')][_0xe96f('0x1a')]);}_0x52e83a[_0xe96f('0x31')]=qs[_0xe96f('0x32')](_0x1356d5[_0xe96f('0x29')][_0xe96f('0x32')]);_0x52e83a['where']=qs[_0xe96f('0x33')](_[_0xe96f('0x34')](_0x1356d5[_0xe96f('0x29')],_0x470e18[_0xe96f('0x33')]),_0xef6c6d);if(_0x1356d5[_0xe96f('0x29')][_0xe96f('0x35')]){_0x52e83a[_0xe96f('0x36')]=_[_0xe96f('0x37')](_0x52e83a['where'],{'$or':_[_0xe96f('0x26')](_0xef6c6d,function(_0x5a9309){if(_0x5a9309[_0xe96f('0x28')]!==_0xe96f('0x38')){var _0x26a440={};_0x26a440[_0x5a9309[_0xe96f('0x24')]]={'$like':'%'+_0x1356d5[_0xe96f('0x29')]['filter']+'%'};return _0x26a440;}})});}_0x52e83a=_[_0xe96f('0x37')]({},_0x52e83a,_0x1356d5[_0xe96f('0x39')]);var _0x17a403={'where':_0x52e83a[_0xe96f('0x36')]};return db[_0xe96f('0x3a')][_0xe96f('0x19')](_0x17a403)['then'](function(_0x249c21){_0x39abfe[_0xe96f('0x19')]=_0x249c21;if(_0x1356d5['query'][_0xe96f('0x3b')]){_0x52e83a['include']=[{'all':!![]}];}return db[_0xe96f('0x3a')][_0xe96f('0x3c')](_0x52e83a);})[_0xe96f('0x21')](function(_0x2d21d8){_0x39abfe[_0xe96f('0x3d')]=_0x2d21d8;return _0x39abfe;})[_0xe96f('0x21')](respondWithFilteredResult(_0xe9a0bc,_0x52e83a))[_0xe96f('0x3e')](handleError(_0xe9a0bc,null));};exports[_0xe96f('0x3f')]=function(_0x272c42,_0x5bd240){var _0x6a1991={'raw':!![],'where':{'id':_0x272c42[_0xe96f('0x40')]['id']}},_0x4706e6={};_0x4706e6[_0xe96f('0x2f')]=_[_0xe96f('0x2a')](db[_0xe96f('0x3a')][_0xe96f('0x27')]);_0x4706e6[_0xe96f('0x29')]=_[_0xe96f('0x2a')](_0x272c42[_0xe96f('0x29')]);_0x4706e6[_0xe96f('0x33')]=_[_0xe96f('0x2b')](_0x4706e6[_0xe96f('0x2f')],_0x4706e6[_0xe96f('0x29')]);_0x6a1991[_0xe96f('0x2c')]=_['intersection'](_0x4706e6['model'],qs[_0xe96f('0x2d')](_0x272c42[_0xe96f('0x29')]['fields']));_0x6a1991[_0xe96f('0x2c')]=_0x6a1991['attributes']['length']?_0x6a1991[_0xe96f('0x2c')]:_0x4706e6[_0xe96f('0x2f')];if(_0x272c42[_0xe96f('0x29')][_0xe96f('0x3b')]){_0x6a1991[_0xe96f('0x41')]=[{'all':!![]}];}_0x6a1991=_[_0xe96f('0x37')]({},_0x6a1991,_0x272c42[_0xe96f('0x39')]);return db[_0xe96f('0x3a')][_0xe96f('0x42')](_0x6a1991)[_0xe96f('0x21')](handleEntityNotFound(_0x5bd240,null))[_0xe96f('0x21')](respondWithResult(_0x5bd240,null))[_0xe96f('0x3e')](handleError(_0x5bd240,null));};exports[_0xe96f('0x43')]=function(_0x57f7a8,_0x3fc2bc){var _0x1f509b={'where':{'id':_0x57f7a8['params']['id']}},_0x2be0ac={};_0x2be0ac['model']=_[_0xe96f('0x2a')](db['Attachment'][_0xe96f('0x27')]);_0x1f509b[_0xe96f('0x2c')]=_[_0xe96f('0x2b')](_0x2be0ac[_0xe96f('0x2f')],qs[_0xe96f('0x2d')](_0x57f7a8['query'][_0xe96f('0x2d')]));_0x1f509b[_0xe96f('0x2c')]=_0x1f509b[_0xe96f('0x2c')]['length']?_0x1f509b[_0xe96f('0x2c')]:_0x2be0ac[_0xe96f('0x2f')];if(_0x57f7a8[_0xe96f('0x29')][_0xe96f('0x3b')]){_0x1f509b[_0xe96f('0x41')]=[{'all':!![]}];}_0x1f509b=_['merge']({},_0x1f509b,_0x57f7a8[_0xe96f('0x39')]);return db['Attachment'][_0xe96f('0x42')](_0x1f509b)[_0xe96f('0x21')](handleEntityNotFound(_0x3fc2bc,null))[_0xe96f('0x21')](function(_0x55bc19){if(_0x55bc19){var _0x7b74dc=_0x55bc19[_0xe96f('0x44')]({'plain':!![]});_0x7b74dc=qs[_0xe96f('0x45')](_0x7b74dc,['id',_0xe96f('0x46'),_0xe96f('0x47')]);_0x57f7a8['body']=_['omit'](_0x57f7a8[_0xe96f('0x48')],['id','createdAt',_0xe96f('0x47')]);return db[_0xe96f('0x3a')][_0xe96f('0x49')](_[_0xe96f('0x37')](_0x7b74dc,_0x57f7a8[_0xe96f('0x48')]),{'include':_0x57f7a8[_0xe96f('0x29')][_0xe96f('0x3b')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x3fc2bc,0xc9))[_0xe96f('0x3e')](handleError(_0x3fc2bc,null));};exports[_0xe96f('0x4a')]=function(_0x12357f,_0x38f16e){if(_0x12357f[_0xe96f('0x48')]['id']){delete _0x12357f[_0xe96f('0x48')]['id'];}return db['Attachment'][_0xe96f('0x42')]({'where':{'id':_0x12357f[_0xe96f('0x40')]['id']}})[_0xe96f('0x21')](handleEntityNotFound(_0x38f16e,null))[_0xe96f('0x21')](saveUpdates(_0x12357f[_0xe96f('0x48')],null))[_0xe96f('0x21')](respondWithResult(_0x38f16e,null))[_0xe96f('0x3e')](handleError(_0x38f16e,null));};exports[_0xe96f('0x22')]=function(_0x2dfb91,_0x3ca750){return db[_0xe96f('0x3a')][_0xe96f('0x42')]({'where':{'id':_0x2dfb91['params']['id']}})[_0xe96f('0x21')](handleEntityNotFound(_0x3ca750,null))[_0xe96f('0x21')](removeEntity(_0x3ca750,null))[_0xe96f('0x3e')](handleError(_0x3ca750,null));};exports[_0xe96f('0x49')]=function(_0x36e21b,_0x1b172,_0x43dd44){_0x36e21b[_0xe96f('0x48')][_0xe96f('0x24')]=_0x36e21b[_0xe96f('0x4b')]['originalname'];_0x36e21b['body'][_0xe96f('0x4c')]=_0x36e21b[_0xe96f('0x4b')][_0xe96f('0x4d')];_0x36e21b['body'][_0xe96f('0x28')]=_0x36e21b['file']['mimetype'];return db[_0xe96f('0x3a')][_0xe96f('0x49')](_0x36e21b['body'])[_0xe96f('0x21')](respondWithResult(_0x1b172,0xc9))[_0xe96f('0x3e')](handleError(_0x1b172,null));};exports[_0xe96f('0x4e')]=function(_0x15ce5d,_0x1feed7,_0x8fbf0a){return db[_0xe96f('0x3a')]['findOne']({'where':{'id':_0x15ce5d[_0xe96f('0x40')]['id']},'raw':!![]})[_0xe96f('0x21')](handleEntityNotFound(_0x1feed7,null))[_0xe96f('0x21')](function(_0x2c2553){if(_0x2c2553){var _0x16b998=_0x2c2553[_0xe96f('0x4f')]!==null;var _0x36b3b3=path[_0xe96f('0x50')](config['root'],_0xe96f('0x51'));if(_0x16b998){_0x36b3b3=path[_0xe96f('0x50')](_0x36b3b3,_0xe96f('0x52'));}var _0x2eeabf=path[_0xe96f('0x50')](_0x36b3b3,_0x2c2553['basename']);return _0x1feed7['download'](_0x2eeabf);}})[_0xe96f('0x3e')](handleError(_0x1feed7,null));};