fe4564896dfbb9054bf6a41c0c2011973f366b01
[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 _0x4648=['model','query','intersection','attributes','fields','nolimit','sort','where','filters','merge','VIRTUAL','options','includeAll','include','findAll','show','keys','length','find','catch','clone','params','get','omit','createdAt','updatedAt','body','create','destroy','file','originalname','basename','filename','mimetype','findOne','join','root','server/files/attachments/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','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','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','update','then','name','map','Attachment','rawAttributes','type','key'];(function(_0x407f56,_0x4e47e1){var _0x409c7d=function(_0x5baf36){while(--_0x5baf36){_0x407f56['push'](_0x407f56['shift']());}};_0x409c7d(++_0x4e47e1);}(_0x4648,0x1ca));var _0x8464=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x4648[_0x1035c1];return _0x308d67;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8464('0x0'));var rimraf=require(_0x8464('0x1'));var zipdir=require(_0x8464('0x2'));var jsonpatch=require(_0x8464('0x3'));var rp=require(_0x8464('0x4'));var moment=require('moment');var BPromise=require(_0x8464('0x5'));var Mustache=require('mustache');var util=require(_0x8464('0x6'));var path=require(_0x8464('0x7'));var sox=require(_0x8464('0x8'));var csv=require(_0x8464('0x9'));var ejs=require(_0x8464('0xa'));var fs=require('fs');var _=require(_0x8464('0xb'));var squel=require(_0x8464('0xc'));var crypto=require(_0x8464('0xd'));var jsforce=require(_0x8464('0xe'));var deskjs=require(_0x8464('0xf'));var toCsv=require(_0x8464('0x9'));var querystring=require(_0x8464('0x10'));var Papa=require(_0x8464('0x11'));var Redis=require('ioredis');var authService=require(_0x8464('0x12'));var qs=require(_0x8464('0x13'));var as=require(_0x8464('0x14'));var hardwareService=require(_0x8464('0x15'));var logger=require(_0x8464('0x16'))(_0x8464('0x17'));var utils=require(_0x8464('0x18'));var config=require(_0x8464('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x8464('0x1a'))['db'];function respondWithStatusCode(_0x5b78ee,_0x5558df){_0x5558df=_0x5558df||0xcc;return function(_0x413268){if(_0x413268){return _0x5b78ee[_0x8464('0x1b')](_0x5558df);}return _0x5b78ee[_0x8464('0x1c')](_0x5558df)[_0x8464('0x1d')]();};}function respondWithResult(_0x22cb2e,_0x599213){_0x599213=_0x599213||0xc8;return function(_0xa82015){if(_0xa82015){return _0x22cb2e[_0x8464('0x1c')](_0x599213)['json'](_0xa82015);}};}function respondWithFilteredResult(_0x1abae2,_0x2418ef){return function(_0x417f3d){if(_0x417f3d){var _0xfbc72a=_0x417f3d[_0x8464('0x1e')],_0xc43d16=_0x2418ef[_0x8464('0x1f')],_0xa7d63f=_0x2418ef[_0x8464('0x1f')]+_0x2418ef[_0x8464('0x20')],_0x473662;if(_0xa7d63f>=_0xfbc72a){_0xa7d63f=_0xfbc72a;_0x473662=0xc8;}else{_0x473662=0xce;}_0x1abae2[_0x8464('0x1c')](_0x473662);return _0x1abae2[_0x8464('0x21')](_0x8464('0x22'),_0xc43d16+'-'+_0xa7d63f+'/'+_0xfbc72a)[_0x8464('0x23')](_0x417f3d);}return null;};}function patchUpdates(_0x1b0ae5){return function(_0x5d8d41){try{jsonpatch[_0x8464('0x24')](_0x5d8d41,_0x1b0ae5,!![]);}catch(_0x3b4812){return BPromise['reject'](_0x3b4812);}return _0x5d8d41[_0x8464('0x25')]();};}function saveUpdates(_0x3a568a,_0x169f20){return function(_0x44e2d2){if(_0x44e2d2){return _0x44e2d2[_0x8464('0x26')](_0x3a568a)[_0x8464('0x27')](function(_0x3d92aa){return _0x3d92aa;});}return null;};}function removeEntity(_0x4a7aa8,_0x6c8f8e){return function(_0x473425){if(_0x473425){return _0x473425['destroy']()[_0x8464('0x27')](function(){_0x4a7aa8[_0x8464('0x1c')](0xcc)[_0x8464('0x1d')]();});}};}function handleEntityNotFound(_0x290a3a,_0x20ecc1){return function(_0x334cb4){if(!_0x334cb4){_0x290a3a['sendStatus'](0x194);}return _0x334cb4;};}function handleError(_0x325c4a,_0x394719){_0x394719=_0x394719||0x1f4;return function(_0x160a8c){logger['error'](_0x160a8c['stack']);if(_0x160a8c[_0x8464('0x28')]){delete _0x160a8c['name'];}_0x325c4a[_0x8464('0x1c')](_0x394719)['send'](_0x160a8c);};}exports['index']=function(_0x554a32,_0x2a1a8d){var _0x3b5adc={},_0x1bc32b={},_0x80187a={'count':0x0,'rows':[]};var _0x555d2f=_[_0x8464('0x29')](db[_0x8464('0x2a')][_0x8464('0x2b')],function(_0x583ecc){return{'name':_0x583ecc['fieldName'],'type':_0x583ecc[_0x8464('0x2c')][_0x8464('0x2d')]};});_0x1bc32b[_0x8464('0x2e')]=_[_0x8464('0x29')](_0x555d2f,_0x8464('0x28'));_0x1bc32b[_0x8464('0x2f')]=_['keys'](_0x554a32[_0x8464('0x2f')]);_0x1bc32b['filters']=_[_0x8464('0x30')](_0x1bc32b['model'],_0x1bc32b['query']);_0x3b5adc[_0x8464('0x31')]=_['intersection'](_0x1bc32b['model'],qs['fields'](_0x554a32[_0x8464('0x2f')][_0x8464('0x32')]));_0x3b5adc[_0x8464('0x31')]=_0x3b5adc[_0x8464('0x31')]['length']?_0x3b5adc[_0x8464('0x31')]:_0x1bc32b[_0x8464('0x2e')];if(!_0x554a32[_0x8464('0x2f')]['hasOwnProperty'](_0x8464('0x33'))){_0x3b5adc[_0x8464('0x20')]=qs[_0x8464('0x20')](_0x554a32[_0x8464('0x2f')][_0x8464('0x20')]);_0x3b5adc[_0x8464('0x1f')]=qs['offset'](_0x554a32[_0x8464('0x2f')][_0x8464('0x1f')]);}_0x3b5adc['order']=qs[_0x8464('0x34')](_0x554a32[_0x8464('0x2f')][_0x8464('0x34')]);_0x3b5adc[_0x8464('0x35')]=qs[_0x8464('0x36')](_['pick'](_0x554a32[_0x8464('0x2f')],_0x1bc32b[_0x8464('0x36')]),_0x555d2f);if(_0x554a32[_0x8464('0x2f')]['filter']){_0x3b5adc['where']=_[_0x8464('0x37')](_0x3b5adc[_0x8464('0x35')],{'$or':_['map'](_0x555d2f,function(_0x20ebdf){if(_0x20ebdf[_0x8464('0x2c')]!==_0x8464('0x38')){var _0x15d2a8={};_0x15d2a8[_0x20ebdf['name']]={'$like':'%'+_0x554a32['query']['filter']+'%'};return _0x15d2a8;}})});}_0x3b5adc=_[_0x8464('0x37')]({},_0x3b5adc,_0x554a32[_0x8464('0x39')]);var _0x1b97d8={'where':_0x3b5adc[_0x8464('0x35')]};return db[_0x8464('0x2a')]['count'](_0x1b97d8)['then'](function(_0x1e096d){_0x80187a['count']=_0x1e096d;if(_0x554a32[_0x8464('0x2f')][_0x8464('0x3a')]){_0x3b5adc[_0x8464('0x3b')]=[{'all':!![]}];}return db[_0x8464('0x2a')][_0x8464('0x3c')](_0x3b5adc);})[_0x8464('0x27')](function(_0x3dcef9){_0x80187a['rows']=_0x3dcef9;return _0x80187a;})[_0x8464('0x27')](respondWithFilteredResult(_0x2a1a8d,_0x3b5adc))['catch'](handleError(_0x2a1a8d,null));};exports[_0x8464('0x3d')]=function(_0x202880,_0x568f0c){var _0x343034={'raw':!![],'where':{'id':_0x202880['params']['id']}},_0x394a33={};_0x394a33[_0x8464('0x2e')]=_[_0x8464('0x3e')](db[_0x8464('0x2a')][_0x8464('0x2b')]);_0x394a33[_0x8464('0x2f')]=_[_0x8464('0x3e')](_0x202880['query']);_0x394a33[_0x8464('0x36')]=_[_0x8464('0x30')](_0x394a33[_0x8464('0x2e')],_0x394a33[_0x8464('0x2f')]);_0x343034[_0x8464('0x31')]=_[_0x8464('0x30')](_0x394a33[_0x8464('0x2e')],qs[_0x8464('0x32')](_0x202880[_0x8464('0x2f')]['fields']));_0x343034['attributes']=_0x343034[_0x8464('0x31')][_0x8464('0x3f')]?_0x343034[_0x8464('0x31')]:_0x394a33['model'];if(_0x202880['query'][_0x8464('0x3a')]){_0x343034[_0x8464('0x3b')]=[{'all':!![]}];}_0x343034=_[_0x8464('0x37')]({},_0x343034,_0x202880['options']);return db[_0x8464('0x2a')][_0x8464('0x40')](_0x343034)[_0x8464('0x27')](handleEntityNotFound(_0x568f0c,null))[_0x8464('0x27')](respondWithResult(_0x568f0c,null))[_0x8464('0x41')](handleError(_0x568f0c,null));};exports[_0x8464('0x42')]=function(_0x363cd4,_0x548f75){var _0x4df06e={'where':{'id':_0x363cd4[_0x8464('0x43')]['id']}},_0x5e6ba6={};_0x5e6ba6[_0x8464('0x2e')]=_[_0x8464('0x3e')](db['Attachment'][_0x8464('0x2b')]);_0x4df06e[_0x8464('0x31')]=_[_0x8464('0x30')](_0x5e6ba6['model'],qs['fields'](_0x363cd4[_0x8464('0x2f')]['fields']));_0x4df06e['attributes']=_0x4df06e[_0x8464('0x31')][_0x8464('0x3f')]?_0x4df06e[_0x8464('0x31')]:_0x5e6ba6[_0x8464('0x2e')];if(_0x363cd4[_0x8464('0x2f')][_0x8464('0x3a')]){_0x4df06e[_0x8464('0x3b')]=[{'all':!![]}];}_0x4df06e=_[_0x8464('0x37')]({},_0x4df06e,_0x363cd4[_0x8464('0x39')]);return db['Attachment'][_0x8464('0x40')](_0x4df06e)['then'](handleEntityNotFound(_0x548f75,null))[_0x8464('0x27')](function(_0x2fd7f7){if(_0x2fd7f7){var _0x3af8b2=_0x2fd7f7[_0x8464('0x44')]({'plain':!![]});_0x3af8b2=qs[_0x8464('0x45')](_0x3af8b2,['id',_0x8464('0x46'),_0x8464('0x47')]);_0x363cd4[_0x8464('0x48')]=_[_0x8464('0x45')](_0x363cd4[_0x8464('0x48')],['id','createdAt',_0x8464('0x47')]);return db[_0x8464('0x2a')][_0x8464('0x49')](_[_0x8464('0x37')](_0x3af8b2,_0x363cd4[_0x8464('0x48')]),{'include':_0x363cd4[_0x8464('0x2f')][_0x8464('0x3a')]?[{'all':!![]}]:undefined});}})[_0x8464('0x27')](respondWithResult(_0x548f75,0xc9))[_0x8464('0x41')](handleError(_0x548f75,null));};exports['update']=function(_0x2fa7b6,_0x3f9a08){if(_0x2fa7b6[_0x8464('0x48')]['id']){delete _0x2fa7b6[_0x8464('0x48')]['id'];}return db[_0x8464('0x2a')][_0x8464('0x40')]({'where':{'id':_0x2fa7b6['params']['id']}})[_0x8464('0x27')](handleEntityNotFound(_0x3f9a08,null))[_0x8464('0x27')](saveUpdates(_0x2fa7b6[_0x8464('0x48')],null))['then'](respondWithResult(_0x3f9a08,null))['catch'](handleError(_0x3f9a08,null));};exports[_0x8464('0x4a')]=function(_0x5aa71c,_0x3b9680){return db[_0x8464('0x2a')][_0x8464('0x40')]({'where':{'id':_0x5aa71c[_0x8464('0x43')]['id']}})[_0x8464('0x27')](handleEntityNotFound(_0x3b9680,null))['then'](removeEntity(_0x3b9680,null))[_0x8464('0x41')](handleError(_0x3b9680,null));};exports[_0x8464('0x49')]=function(_0x472104,_0x41c57e,_0x484f4a){_0x472104['body']['name']=_0x472104[_0x8464('0x4b')][_0x8464('0x4c')];_0x472104[_0x8464('0x48')][_0x8464('0x4d')]=_0x472104[_0x8464('0x4b')][_0x8464('0x4e')];_0x472104[_0x8464('0x48')][_0x8464('0x2c')]=_0x472104[_0x8464('0x4b')][_0x8464('0x4f')];return db['Attachment'][_0x8464('0x49')](_0x472104['body'])[_0x8464('0x27')](respondWithResult(_0x41c57e,0xc9))[_0x8464('0x41')](handleError(_0x41c57e,null));};exports['download']=function(_0x302ca4,_0x2695d9,_0x4eb5ff){return db[_0x8464('0x2a')][_0x8464('0x50')]({'where':{'id':_0x302ca4['params']['id']},'raw':!![]})[_0x8464('0x27')](handleEntityNotFound(_0x2695d9,null))[_0x8464('0x27')](function(_0x4553b5){if(_0x4553b5){return _0x2695d9['download'](path[_0x8464('0x51')](config[_0x8464('0x52')],_0x8464('0x53'),_0x4553b5[_0x8464('0x4d')]));}})[_0x8464('0x41')](handleError(_0x2695d9,null));};