Built motion from commit (unavailable).|2.5.4
[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 _0xfacd=['sox','to-csv','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','end','offset','limit','status','Content-Range','json','save','update','destroy','then','sendStatus','name','index','Attachment','rawAttributes','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','filter','VIRTUAL','merge','count','includeAll','include','findAll','rows','catch','params','keys','options','find','clone','get','omit','body','createdAt','updatedAt','create','file','originalname','basename','filename','mimetype','download','findOne','join','root','server/files/attachments/','eml-format','fast-json-patch','bluebird','mustache','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfacd,0x180));var _0xdfac=function(_0x353fae,_0x40b5ac){_0x353fae=_0x353fae-0x0;var _0x4326e9=_0xfacd[_0x353fae];return _0x4326e9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xdfac('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xdfac('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xdfac('0x2'));var Mustache=require(_0xdfac('0x3'));var util=require(_0xdfac('0x4'));var path=require(_0xdfac('0x5'));var sox=require(_0xdfac('0x6'));var csv=require(_0xdfac('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xdfac('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xdfac('0x9'));var toCsv=require(_0xdfac('0x7'));var querystring=require(_0xdfac('0xa'));var Papa=require('papaparse');var Redis=require(_0xdfac('0xb'));var authService=require('../../components/auth/service');var qs=require(_0xdfac('0xc'));var as=require(_0xdfac('0xd'));var hardwareService=require(_0xdfac('0xe'));var logger=require(_0xdfac('0xf'))(_0xdfac('0x10'));var utils=require(_0xdfac('0x11'));var config=require(_0xdfac('0x12'));var db=require(_0xdfac('0x13'))['db'];function respondWithStatusCode(_0x3152c5,_0x219540){_0x219540=_0x219540||0xcc;return function(_0x5d31f8){if(_0x5d31f8){return _0x3152c5['sendStatus'](_0x219540);}return _0x3152c5['status'](_0x219540)[_0xdfac('0x14')]();};}function respondWithResult(_0x3312a4,_0x452ed2){_0x452ed2=_0x452ed2||0xc8;return function(_0x53885f){if(_0x53885f){return _0x3312a4['status'](_0x452ed2)['json'](_0x53885f);}};}function respondWithFilteredResult(_0x3ab08e,_0x3f4e5f){return function(_0x3cf8cf){if(_0x3cf8cf){var _0x15e7b4=_0x3cf8cf['count'],_0x15ac37=_0x3f4e5f[_0xdfac('0x15')],_0x236841=_0x3f4e5f[_0xdfac('0x15')]+_0x3f4e5f[_0xdfac('0x16')],_0x3346b0;if(_0x236841>=_0x15e7b4){_0x236841=_0x15e7b4;_0x3346b0=0xc8;}else{_0x3346b0=0xce;}_0x3ab08e[_0xdfac('0x17')](_0x3346b0);return _0x3ab08e['set'](_0xdfac('0x18'),_0x15ac37+'-'+_0x236841+'/'+_0x15e7b4)[_0xdfac('0x19')](_0x3cf8cf);}return null;};}function patchUpdates(_0xb24de9){return function(_0x13b90e){try{jsonpatch['apply'](_0x13b90e,_0xb24de9,!![]);}catch(_0x5ece58){return BPromise['reject'](_0x5ece58);}return _0x13b90e[_0xdfac('0x1a')]();};}function saveUpdates(_0x41cc97,_0x1f0bb5){return function(_0x72bba7){if(_0x72bba7){return _0x72bba7[_0xdfac('0x1b')](_0x41cc97)['then'](function(_0x4134ef){return _0x4134ef;});}return null;};}function removeEntity(_0x10e6cc,_0x5d3d9b){return function(_0x4a9678){if(_0x4a9678){return _0x4a9678[_0xdfac('0x1c')]()[_0xdfac('0x1d')](function(){_0x10e6cc['status'](0xcc)[_0xdfac('0x14')]();});}};}function handleEntityNotFound(_0x1eb14d,_0x2bf1e4){return function(_0x5e53e4){if(!_0x5e53e4){_0x1eb14d[_0xdfac('0x1e')](0x194);}return _0x5e53e4;};}function handleError(_0x4e6d28,_0x33e436){_0x33e436=_0x33e436||0x1f4;return function(_0x3a11d6){logger['error'](_0x3a11d6['stack']);if(_0x3a11d6[_0xdfac('0x1f')]){delete _0x3a11d6['name'];}_0x4e6d28[_0xdfac('0x17')](_0x33e436)['send'](_0x3a11d6);};}exports[_0xdfac('0x20')]=function(_0x2ff6eb,_0x3c7827){var _0x3bae74={},_0x515616={},_0xf1f328={'count':0x0,'rows':[]};var _0x33ecdc=_['map'](db[_0xdfac('0x21')][_0xdfac('0x22')],function(_0x3fcb82){return{'name':_0x3fcb82['fieldName'],'type':_0x3fcb82['type'][_0xdfac('0x23')]};});_0x515616[_0xdfac('0x24')]=_[_0xdfac('0x25')](_0x33ecdc,_0xdfac('0x1f'));_0x515616[_0xdfac('0x26')]=_['keys'](_0x2ff6eb[_0xdfac('0x26')]);_0x515616[_0xdfac('0x27')]=_[_0xdfac('0x28')](_0x515616[_0xdfac('0x24')],_0x515616[_0xdfac('0x26')]);_0x3bae74[_0xdfac('0x29')]=_[_0xdfac('0x28')](_0x515616[_0xdfac('0x24')],qs[_0xdfac('0x2a')](_0x2ff6eb[_0xdfac('0x26')]['fields']));_0x3bae74[_0xdfac('0x29')]=_0x3bae74[_0xdfac('0x29')][_0xdfac('0x2b')]?_0x3bae74[_0xdfac('0x29')]:_0x515616[_0xdfac('0x24')];if(!_0x2ff6eb[_0xdfac('0x26')][_0xdfac('0x2c')](_0xdfac('0x2d'))){_0x3bae74[_0xdfac('0x16')]=qs['limit'](_0x2ff6eb[_0xdfac('0x26')][_0xdfac('0x16')]);_0x3bae74[_0xdfac('0x15')]=qs[_0xdfac('0x15')](_0x2ff6eb[_0xdfac('0x26')][_0xdfac('0x15')]);}_0x3bae74[_0xdfac('0x2e')]=qs['sort'](_0x2ff6eb['query']['sort']);_0x3bae74[_0xdfac('0x2f')]=qs['filters'](_['pick'](_0x2ff6eb[_0xdfac('0x26')],_0x515616['filters']),_0x33ecdc);if(_0x2ff6eb['query'][_0xdfac('0x30')]){_0x3bae74['where']=_['merge'](_0x3bae74[_0xdfac('0x2f')],{'$or':_[_0xdfac('0x25')](_0x33ecdc,function(_0x3dc616){if(_0x3dc616['type']!==_0xdfac('0x31')){var _0x43c132={};_0x43c132[_0x3dc616['name']]={'$like':'%'+_0x2ff6eb[_0xdfac('0x26')][_0xdfac('0x30')]+'%'};return _0x43c132;}})});}_0x3bae74=_[_0xdfac('0x32')]({},_0x3bae74,_0x2ff6eb['options']);var _0x2c386c={'where':_0x3bae74[_0xdfac('0x2f')]};return db[_0xdfac('0x21')][_0xdfac('0x33')](_0x2c386c)['then'](function(_0x571109){_0xf1f328['count']=_0x571109;if(_0x2ff6eb[_0xdfac('0x26')][_0xdfac('0x34')]){_0x3bae74[_0xdfac('0x35')]=[{'all':!![]}];}return db['Attachment'][_0xdfac('0x36')](_0x3bae74);})[_0xdfac('0x1d')](function(_0x10385a){_0xf1f328[_0xdfac('0x37')]=_0x10385a;return _0xf1f328;})[_0xdfac('0x1d')](respondWithFilteredResult(_0x3c7827,_0x3bae74))[_0xdfac('0x38')](handleError(_0x3c7827,null));};exports['show']=function(_0xbdafeb,_0x431aa5){var _0x369a0b={'raw':!![],'where':{'id':_0xbdafeb[_0xdfac('0x39')]['id']}},_0x7c4da1={};_0x7c4da1['model']=_[_0xdfac('0x3a')](db[_0xdfac('0x21')][_0xdfac('0x22')]);_0x7c4da1['query']=_[_0xdfac('0x3a')](_0xbdafeb[_0xdfac('0x26')]);_0x7c4da1['filters']=_[_0xdfac('0x28')](_0x7c4da1['model'],_0x7c4da1['query']);_0x369a0b['attributes']=_[_0xdfac('0x28')](_0x7c4da1[_0xdfac('0x24')],qs['fields'](_0xbdafeb[_0xdfac('0x26')][_0xdfac('0x2a')]));_0x369a0b[_0xdfac('0x29')]=_0x369a0b[_0xdfac('0x29')][_0xdfac('0x2b')]?_0x369a0b[_0xdfac('0x29')]:_0x7c4da1[_0xdfac('0x24')];if(_0xbdafeb['query']['includeAll']){_0x369a0b[_0xdfac('0x35')]=[{'all':!![]}];}_0x369a0b=_[_0xdfac('0x32')]({},_0x369a0b,_0xbdafeb[_0xdfac('0x3b')]);return db[_0xdfac('0x21')][_0xdfac('0x3c')](_0x369a0b)[_0xdfac('0x1d')](handleEntityNotFound(_0x431aa5,null))[_0xdfac('0x1d')](respondWithResult(_0x431aa5,null))[_0xdfac('0x38')](handleError(_0x431aa5,null));};exports[_0xdfac('0x3d')]=function(_0xddcd22,_0x47ea6e){var _0x49ed11={'where':{'id':_0xddcd22[_0xdfac('0x39')]['id']}},_0x5c62b4={};_0x5c62b4[_0xdfac('0x24')]=_[_0xdfac('0x3a')](db[_0xdfac('0x21')]['rawAttributes']);_0x49ed11[_0xdfac('0x29')]=_[_0xdfac('0x28')](_0x5c62b4[_0xdfac('0x24')],qs['fields'](_0xddcd22[_0xdfac('0x26')][_0xdfac('0x2a')]));_0x49ed11['attributes']=_0x49ed11[_0xdfac('0x29')]['length']?_0x49ed11[_0xdfac('0x29')]:_0x5c62b4['model'];if(_0xddcd22[_0xdfac('0x26')][_0xdfac('0x34')]){_0x49ed11['include']=[{'all':!![]}];}_0x49ed11=_['merge']({},_0x49ed11,_0xddcd22[_0xdfac('0x3b')]);return db[_0xdfac('0x21')]['find'](_0x49ed11)[_0xdfac('0x1d')](handleEntityNotFound(_0x47ea6e,null))[_0xdfac('0x1d')](function(_0x36a00e){if(_0x36a00e){var _0xcebaf1=_0x36a00e[_0xdfac('0x3e')]({'plain':!![]});_0xcebaf1=qs[_0xdfac('0x3f')](_0xcebaf1,['id','createdAt','updatedAt']);_0xddcd22[_0xdfac('0x40')]=_['omit'](_0xddcd22[_0xdfac('0x40')],['id',_0xdfac('0x41'),_0xdfac('0x42')]);return db['Attachment'][_0xdfac('0x43')](_[_0xdfac('0x32')](_0xcebaf1,_0xddcd22[_0xdfac('0x40')]),{'include':_0xddcd22[_0xdfac('0x26')][_0xdfac('0x34')]?[{'all':!![]}]:undefined});}})[_0xdfac('0x1d')](respondWithResult(_0x47ea6e,0xc9))[_0xdfac('0x38')](handleError(_0x47ea6e,null));};exports[_0xdfac('0x1b')]=function(_0x213394,_0x1534b3){if(_0x213394['body']['id']){delete _0x213394[_0xdfac('0x40')]['id'];}return db[_0xdfac('0x21')][_0xdfac('0x3c')]({'where':{'id':_0x213394[_0xdfac('0x39')]['id']}})['then'](handleEntityNotFound(_0x1534b3,null))[_0xdfac('0x1d')](saveUpdates(_0x213394['body'],null))[_0xdfac('0x1d')](respondWithResult(_0x1534b3,null))[_0xdfac('0x38')](handleError(_0x1534b3,null));};exports['destroy']=function(_0x536024,_0x2413ae){return db['Attachment']['find']({'where':{'id':_0x536024[_0xdfac('0x39')]['id']}})[_0xdfac('0x1d')](handleEntityNotFound(_0x2413ae,null))[_0xdfac('0x1d')](removeEntity(_0x2413ae,null))[_0xdfac('0x38')](handleError(_0x2413ae,null));};exports[_0xdfac('0x43')]=function(_0x58d066,_0xf093d0,_0x4ca8a6){_0x58d066[_0xdfac('0x40')]['name']=_0x58d066[_0xdfac('0x44')][_0xdfac('0x45')];_0x58d066[_0xdfac('0x40')][_0xdfac('0x46')]=_0x58d066[_0xdfac('0x44')][_0xdfac('0x47')];_0x58d066[_0xdfac('0x40')]['type']=_0x58d066[_0xdfac('0x44')][_0xdfac('0x48')];return db[_0xdfac('0x21')][_0xdfac('0x43')](_0x58d066[_0xdfac('0x40')])[_0xdfac('0x1d')](respondWithResult(_0xf093d0,0xc9))[_0xdfac('0x38')](handleError(_0xf093d0,null));};exports[_0xdfac('0x49')]=function(_0x26b3e9,_0x5c2ef7,_0x4a8074){return db[_0xdfac('0x21')][_0xdfac('0x4a')]({'where':{'id':_0x26b3e9[_0xdfac('0x39')]['id']},'raw':!![]})[_0xdfac('0x1d')](handleEntityNotFound(_0x5c2ef7,null))[_0xdfac('0x1d')](function(_0x276fc8){if(_0x276fc8){return _0x5c2ef7[_0xdfac('0x49')](path[_0xdfac('0x4b')](config[_0xdfac('0x4c')],_0xdfac('0x4d'),_0x276fc8[_0xdfac('0x46')]));}})[_0xdfac('0x38')](handleError(_0x5c2ef7,null));};