710434285ad1edac75357877b870000577f7fd60
[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 _0xb139=['where','pick','filter','merge','type','options','include','findAll','catch','show','params','length','includeAll','find','clone','createdAt','updatedAt','body','create','update','file','originalname','basename','filename','download','findOne','join','root','server/files/attachments/','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','count','offset','set','json','reject','then','destroy','stack','name','send','index','map','Attachment','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','nolimit','limit','sort'];(function(_0x3410dc,_0x3b264c){var _0x57d2ee=function(_0x7d4653){while(--_0x7d4653){_0x3410dc['push'](_0x3410dc['shift']());}};_0x57d2ee(++_0x3b264c);}(_0xb139,0x10a));var _0x9b13=function(_0x4936c6,_0x1eb864){_0x4936c6=_0x4936c6-0x0;var _0x2a9aec=_0xb139[_0x4936c6];return _0x2a9aec;};'use strict';var pdf=require(_0x9b13('0x0'));var emlformat=require(_0x9b13('0x1'));var rimraf=require(_0x9b13('0x2'));var zipdir=require(_0x9b13('0x3'));var jsonpatch=require(_0x9b13('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9b13('0x5'));var Mustache=require(_0x9b13('0x6'));var util=require(_0x9b13('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x9b13('0x8'));var ejs=require(_0x9b13('0x9'));var fs=require('fs');var _=require(_0x9b13('0xa'));var squel=require(_0x9b13('0xb'));var crypto=require(_0x9b13('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9b13('0xd'));var Papa=require('papaparse');var Redis=require(_0x9b13('0xe'));var authService=require(_0x9b13('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9b13('0x10'));var logger=require(_0x9b13('0x11'))(_0x9b13('0x12'));var utils=require('../../config/utils');var config=require(_0x9b13('0x13'));var licenseUtil=require(_0x9b13('0x14'));var db=require(_0x9b13('0x15'))['db'];function respondWithStatusCode(_0x4f5af7,_0x249dd6){_0x249dd6=_0x249dd6||0xcc;return function(_0x5defb4){if(_0x5defb4){return _0x4f5af7['sendStatus'](_0x249dd6);}return _0x4f5af7[_0x9b13('0x16')](_0x249dd6)[_0x9b13('0x17')]();};}function respondWithResult(_0x599aa8,_0x42cf8f){_0x42cf8f=_0x42cf8f||0xc8;return function(_0x9a9539){if(_0x9a9539){return _0x599aa8[_0x9b13('0x16')](_0x42cf8f)['json'](_0x9a9539);}};}function respondWithFilteredResult(_0x33c468,_0x4b95a7){return function(_0x4f2406){if(_0x4f2406){var _0x5dc829=_0x4f2406[_0x9b13('0x18')],_0x4e6800=_0x4b95a7[_0x9b13('0x19')],_0x500fb6=_0x4b95a7['offset']+_0x4b95a7['limit'],_0x4d2b97;if(_0x500fb6>=_0x5dc829){_0x500fb6=_0x5dc829;_0x4d2b97=0xc8;}else{_0x4d2b97=0xce;}_0x33c468[_0x9b13('0x16')](_0x4d2b97);return _0x33c468[_0x9b13('0x1a')]('Content-Range',_0x4e6800+'-'+_0x500fb6+'/'+_0x5dc829)[_0x9b13('0x1b')](_0x4f2406);}return null;};}function patchUpdates(_0x1c0608){return function(_0x20712e){try{jsonpatch['apply'](_0x20712e,_0x1c0608,!![]);}catch(_0x75a8a){return BPromise[_0x9b13('0x1c')](_0x75a8a);}return _0x20712e['save']();};}function saveUpdates(_0x317a9c,_0x361e8c){return function(_0x260b3b){if(_0x260b3b){return _0x260b3b['update'](_0x317a9c)[_0x9b13('0x1d')](function(_0x1a9bf1){return _0x1a9bf1;});}return null;};}function removeEntity(_0x1ce8b9,_0x4292dd){return function(_0x2f0780){if(_0x2f0780){return _0x2f0780[_0x9b13('0x1e')]()[_0x9b13('0x1d')](function(){_0x1ce8b9[_0x9b13('0x16')](0xcc)[_0x9b13('0x17')]();});}};}function handleEntityNotFound(_0x56ad78,_0xeda4e4){return function(_0x5ccf81){if(!_0x5ccf81){_0x56ad78['sendStatus'](0x194);}return _0x5ccf81;};}function handleError(_0xbeda5,_0x47cebf){_0x47cebf=_0x47cebf||0x1f4;return function(_0x4514a5){logger['error'](_0x4514a5[_0x9b13('0x1f')]);if(_0x4514a5[_0x9b13('0x20')]){delete _0x4514a5[_0x9b13('0x20')];}_0xbeda5[_0x9b13('0x16')](_0x47cebf)[_0x9b13('0x21')](_0x4514a5);};}exports[_0x9b13('0x22')]=function(_0x560733,_0x3dc98f){var _0x2f4597={},_0x40e352={},_0x42651d={'count':0x0,'rows':[]};var _0x1db9b5=_[_0x9b13('0x23')](db[_0x9b13('0x24')][_0x9b13('0x25')],function(_0x537800){return{'name':_0x537800[_0x9b13('0x26')],'type':_0x537800['type'][_0x9b13('0x27')]};});_0x40e352[_0x9b13('0x28')]=_[_0x9b13('0x23')](_0x1db9b5,_0x9b13('0x20'));_0x40e352[_0x9b13('0x29')]=_[_0x9b13('0x2a')](_0x560733[_0x9b13('0x29')]);_0x40e352[_0x9b13('0x2b')]=_[_0x9b13('0x2c')](_0x40e352[_0x9b13('0x28')],_0x40e352[_0x9b13('0x29')]);_0x2f4597['attributes']=_[_0x9b13('0x2c')](_0x40e352[_0x9b13('0x28')],qs[_0x9b13('0x2d')](_0x560733[_0x9b13('0x29')][_0x9b13('0x2d')]));_0x2f4597['attributes']=_0x2f4597[_0x9b13('0x2e')]['length']?_0x2f4597[_0x9b13('0x2e')]:_0x40e352[_0x9b13('0x28')];if(!_0x560733[_0x9b13('0x29')]['hasOwnProperty'](_0x9b13('0x2f'))){_0x2f4597[_0x9b13('0x30')]=qs[_0x9b13('0x30')](_0x560733[_0x9b13('0x29')][_0x9b13('0x30')]);_0x2f4597[_0x9b13('0x19')]=qs[_0x9b13('0x19')](_0x560733[_0x9b13('0x29')][_0x9b13('0x19')]);}_0x2f4597['order']=qs[_0x9b13('0x31')](_0x560733[_0x9b13('0x29')][_0x9b13('0x31')]);_0x2f4597[_0x9b13('0x32')]=qs[_0x9b13('0x2b')](_[_0x9b13('0x33')](_0x560733['query'],_0x40e352[_0x9b13('0x2b')]),_0x1db9b5);if(_0x560733['query'][_0x9b13('0x34')]){_0x2f4597['where']=_[_0x9b13('0x35')](_0x2f4597[_0x9b13('0x32')],{'$or':_[_0x9b13('0x23')](_0x1db9b5,function(_0x35388a){if(_0x35388a[_0x9b13('0x36')]!=='VIRTUAL'){var _0x1ff329={};_0x1ff329[_0x35388a[_0x9b13('0x20')]]={'$like':'%'+_0x560733['query'][_0x9b13('0x34')]+'%'};return _0x1ff329;}})});}_0x2f4597=_[_0x9b13('0x35')]({},_0x2f4597,_0x560733[_0x9b13('0x37')]);var _0x38f196={'where':_0x2f4597[_0x9b13('0x32')]};return db[_0x9b13('0x24')]['count'](_0x38f196)[_0x9b13('0x1d')](function(_0x3f20f0){_0x42651d[_0x9b13('0x18')]=_0x3f20f0;if(_0x560733[_0x9b13('0x29')]['includeAll']){_0x2f4597[_0x9b13('0x38')]=[{'all':!![]}];}return db[_0x9b13('0x24')][_0x9b13('0x39')](_0x2f4597);})[_0x9b13('0x1d')](function(_0x2e598d){_0x42651d['rows']=_0x2e598d;return _0x42651d;})[_0x9b13('0x1d')](respondWithFilteredResult(_0x3dc98f,_0x2f4597))[_0x9b13('0x3a')](handleError(_0x3dc98f,null));};exports[_0x9b13('0x3b')]=function(_0x523578,_0x3e3def){var _0xb770de={'raw':!![],'where':{'id':_0x523578[_0x9b13('0x3c')]['id']}},_0x58deec={};_0x58deec[_0x9b13('0x28')]=_[_0x9b13('0x2a')](db['Attachment'][_0x9b13('0x25')]);_0x58deec[_0x9b13('0x29')]=_['keys'](_0x523578[_0x9b13('0x29')]);_0x58deec['filters']=_['intersection'](_0x58deec['model'],_0x58deec[_0x9b13('0x29')]);_0xb770de['attributes']=_[_0x9b13('0x2c')](_0x58deec[_0x9b13('0x28')],qs[_0x9b13('0x2d')](_0x523578[_0x9b13('0x29')][_0x9b13('0x2d')]));_0xb770de['attributes']=_0xb770de['attributes'][_0x9b13('0x3d')]?_0xb770de['attributes']:_0x58deec[_0x9b13('0x28')];if(_0x523578['query'][_0x9b13('0x3e')]){_0xb770de[_0x9b13('0x38')]=[{'all':!![]}];}_0xb770de=_[_0x9b13('0x35')]({},_0xb770de,_0x523578[_0x9b13('0x37')]);return db['Attachment'][_0x9b13('0x3f')](_0xb770de)['then'](handleEntityNotFound(_0x3e3def,null))['then'](respondWithResult(_0x3e3def,null))[_0x9b13('0x3a')](handleError(_0x3e3def,null));};exports[_0x9b13('0x40')]=function(_0x28bc6c,_0x11c3d6){var _0x3c98f2={'where':{'id':_0x28bc6c[_0x9b13('0x3c')]['id']}},_0x44e587={};_0x44e587[_0x9b13('0x28')]=_[_0x9b13('0x2a')](db[_0x9b13('0x24')][_0x9b13('0x25')]);_0x3c98f2[_0x9b13('0x2e')]=_[_0x9b13('0x2c')](_0x44e587[_0x9b13('0x28')],qs[_0x9b13('0x2d')](_0x28bc6c['query'][_0x9b13('0x2d')]));_0x3c98f2[_0x9b13('0x2e')]=_0x3c98f2[_0x9b13('0x2e')]['length']?_0x3c98f2[_0x9b13('0x2e')]:_0x44e587[_0x9b13('0x28')];if(_0x28bc6c[_0x9b13('0x29')][_0x9b13('0x3e')]){_0x3c98f2[_0x9b13('0x38')]=[{'all':!![]}];}_0x3c98f2=_[_0x9b13('0x35')]({},_0x3c98f2,_0x28bc6c[_0x9b13('0x37')]);return db[_0x9b13('0x24')][_0x9b13('0x3f')](_0x3c98f2)[_0x9b13('0x1d')](handleEntityNotFound(_0x11c3d6,null))[_0x9b13('0x1d')](function(_0x37b770){if(_0x37b770){var _0xe67d0=_0x37b770['get']({'plain':!![]});_0xe67d0=qs['omit'](_0xe67d0,['id',_0x9b13('0x41'),_0x9b13('0x42')]);_0x28bc6c[_0x9b13('0x43')]=_['omit'](_0x28bc6c[_0x9b13('0x43')],['id',_0x9b13('0x41'),_0x9b13('0x42')]);return db[_0x9b13('0x24')][_0x9b13('0x44')](_[_0x9b13('0x35')](_0xe67d0,_0x28bc6c[_0x9b13('0x43')]),{'include':_0x28bc6c[_0x9b13('0x29')]['includeAll']?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x11c3d6,0xc9))[_0x9b13('0x3a')](handleError(_0x11c3d6,null));};exports[_0x9b13('0x45')]=function(_0x1d1f3f,_0x51fd7d){if(_0x1d1f3f[_0x9b13('0x43')]['id']){delete _0x1d1f3f[_0x9b13('0x43')]['id'];}return db[_0x9b13('0x24')][_0x9b13('0x3f')]({'where':{'id':_0x1d1f3f[_0x9b13('0x3c')]['id']}})[_0x9b13('0x1d')](handleEntityNotFound(_0x51fd7d,null))[_0x9b13('0x1d')](saveUpdates(_0x1d1f3f[_0x9b13('0x43')],null))[_0x9b13('0x1d')](respondWithResult(_0x51fd7d,null))[_0x9b13('0x3a')](handleError(_0x51fd7d,null));};exports[_0x9b13('0x1e')]=function(_0x4948e6,_0x4df2b0){return db[_0x9b13('0x24')][_0x9b13('0x3f')]({'where':{'id':_0x4948e6[_0x9b13('0x3c')]['id']}})['then'](handleEntityNotFound(_0x4df2b0,null))[_0x9b13('0x1d')](removeEntity(_0x4df2b0,null))[_0x9b13('0x3a')](handleError(_0x4df2b0,null));};exports[_0x9b13('0x44')]=function(_0x2ea514,_0x21a5fa,_0x33cd5c){_0x2ea514['body'][_0x9b13('0x20')]=_0x2ea514[_0x9b13('0x46')][_0x9b13('0x47')];_0x2ea514[_0x9b13('0x43')][_0x9b13('0x48')]=_0x2ea514[_0x9b13('0x46')][_0x9b13('0x49')];_0x2ea514['body'][_0x9b13('0x36')]=_0x2ea514[_0x9b13('0x46')]['mimetype'];return db[_0x9b13('0x24')]['create'](_0x2ea514['body'])[_0x9b13('0x1d')](respondWithResult(_0x21a5fa,0xc9))['catch'](handleError(_0x21a5fa,null));};exports[_0x9b13('0x4a')]=function(_0x4206dd,_0xb248a3,_0x32c13c){return db[_0x9b13('0x24')][_0x9b13('0x4b')]({'where':{'id':_0x4206dd[_0x9b13('0x3c')]['id']},'raw':!![]})[_0x9b13('0x1d')](handleEntityNotFound(_0xb248a3,null))[_0x9b13('0x1d')](function(_0x3b1f41){if(_0x3b1f41){return _0xb248a3[_0x9b13('0x4a')](path[_0x9b13('0x4c')](config[_0x9b13('0x4d')],_0x9b13('0x4e'),_0x3b1f41[_0x9b13('0x48')]));}})[_0x9b13('0x3a')](handleError(_0xb248a3,null));};