301ee93c7c96438e6581c266ea3115661befaced
[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 _0x1e61=['filters','intersection','attributes','fields','length','order','sort','pick','filter','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','clone','rawAttributes','merge','get','omit','body','createdAt','updatedAt','create','file','originalname','filename','mimetype','download','findOne','join','root','server/files/attachments/','basename','html-pdf','eml-format','zip-dir','moment','bluebird','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','Content-Range','apply','save','then','destroy','sendStatus','error','stack','name','send','index','map','Attachment','fieldName','type','key','model','query','keys'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x1e61,0x120));var _0x11e6=function(_0x4fd570,_0x30ef71){_0x4fd570=_0x4fd570-0x0;var _0x4d4b0e=_0x1e61[_0x4fd570];return _0x4d4b0e;};'use strict';var pdf=require(_0x11e6('0x0'));var emlformat=require(_0x11e6('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x11e6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x11e6('0x3'));var BPromise=require(_0x11e6('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x11e6('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x11e6('0x6'));var fs=require('fs');var _=require(_0x11e6('0x7'));var squel=require(_0x11e6('0x8'));var crypto=require(_0x11e6('0x9'));var jsforce=require(_0x11e6('0xa'));var deskjs=require(_0x11e6('0xb'));var toCsv=require(_0x11e6('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x11e6('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x11e6('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x11e6('0xf'));var logger=require(_0x11e6('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x11e6('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x11e6('0x12'))['db'];function respondWithStatusCode(_0x552c2e,_0x507174){_0x507174=_0x507174||0xcc;return function(_0x5b0916){if(_0x5b0916){return _0x552c2e['sendStatus'](_0x507174);}return _0x552c2e[_0x11e6('0x13')](_0x507174)[_0x11e6('0x14')]();};}function respondWithResult(_0x1e9c5f,_0xfed724){_0xfed724=_0xfed724||0xc8;return function(_0x1419ba){if(_0x1419ba){return _0x1e9c5f['status'](_0xfed724)[_0x11e6('0x15')](_0x1419ba);}};}function respondWithFilteredResult(_0x5a25de,_0x358afc){return function(_0x55cd5d){if(_0x55cd5d){var _0x33582d=_0x55cd5d[_0x11e6('0x16')],_0x59e048=_0x358afc[_0x11e6('0x17')],_0xde9627=_0x358afc[_0x11e6('0x17')]+_0x358afc[_0x11e6('0x18')],_0xcdc43e;if(_0xde9627>=_0x33582d){_0xde9627=_0x33582d;_0xcdc43e=0xc8;}else{_0xcdc43e=0xce;}_0x5a25de[_0x11e6('0x13')](_0xcdc43e);return _0x5a25de['set'](_0x11e6('0x19'),_0x59e048+'-'+_0xde9627+'/'+_0x33582d)[_0x11e6('0x15')](_0x55cd5d);}return null;};}function patchUpdates(_0x39255b){return function(_0x2fc516){try{jsonpatch[_0x11e6('0x1a')](_0x2fc516,_0x39255b,!![]);}catch(_0x130806){return BPromise['reject'](_0x130806);}return _0x2fc516[_0x11e6('0x1b')]();};}function saveUpdates(_0x468996,_0x268929){return function(_0x34595b){if(_0x34595b){return _0x34595b['update'](_0x468996)[_0x11e6('0x1c')](function(_0x2d61f6){return _0x2d61f6;});}return null;};}function removeEntity(_0x5d0a9b,_0x15030f){return function(_0x2057ba){if(_0x2057ba){return _0x2057ba[_0x11e6('0x1d')]()[_0x11e6('0x1c')](function(){_0x5d0a9b['status'](0xcc)[_0x11e6('0x14')]();});}};}function handleEntityNotFound(_0x37ec3f,_0x47a101){return function(_0x1bd0fa){if(!_0x1bd0fa){_0x37ec3f[_0x11e6('0x1e')](0x194);}return _0x1bd0fa;};}function handleError(_0x349900,_0x4a6ecd){_0x4a6ecd=_0x4a6ecd||0x1f4;return function(_0x539fb6){logger[_0x11e6('0x1f')](_0x539fb6[_0x11e6('0x20')]);if(_0x539fb6[_0x11e6('0x21')]){delete _0x539fb6[_0x11e6('0x21')];}_0x349900[_0x11e6('0x13')](_0x4a6ecd)[_0x11e6('0x22')](_0x539fb6);};}exports[_0x11e6('0x23')]=function(_0x3cdf0e,_0x48222c){var _0x5bbab7={},_0x33aea6={},_0x290516={'count':0x0,'rows':[]};var _0xe5638a=_[_0x11e6('0x24')](db[_0x11e6('0x25')]['rawAttributes'],function(_0x289d5e){return{'name':_0x289d5e[_0x11e6('0x26')],'type':_0x289d5e[_0x11e6('0x27')][_0x11e6('0x28')]};});_0x33aea6[_0x11e6('0x29')]=_[_0x11e6('0x24')](_0xe5638a,_0x11e6('0x21'));_0x33aea6[_0x11e6('0x2a')]=_[_0x11e6('0x2b')](_0x3cdf0e['query']);_0x33aea6[_0x11e6('0x2c')]=_[_0x11e6('0x2d')](_0x33aea6['model'],_0x33aea6[_0x11e6('0x2a')]);_0x5bbab7[_0x11e6('0x2e')]=_['intersection'](_0x33aea6[_0x11e6('0x29')],qs[_0x11e6('0x2f')](_0x3cdf0e[_0x11e6('0x2a')][_0x11e6('0x2f')]));_0x5bbab7['attributes']=_0x5bbab7[_0x11e6('0x2e')][_0x11e6('0x30')]?_0x5bbab7['attributes']:_0x33aea6['model'];if(!_0x3cdf0e[_0x11e6('0x2a')]['hasOwnProperty']('nolimit')){_0x5bbab7['limit']=qs['limit'](_0x3cdf0e['query'][_0x11e6('0x18')]);_0x5bbab7[_0x11e6('0x17')]=qs[_0x11e6('0x17')](_0x3cdf0e['query'][_0x11e6('0x17')]);}_0x5bbab7[_0x11e6('0x31')]=qs[_0x11e6('0x32')](_0x3cdf0e[_0x11e6('0x2a')]['sort']);_0x5bbab7['where']=qs[_0x11e6('0x2c')](_[_0x11e6('0x33')](_0x3cdf0e[_0x11e6('0x2a')],_0x33aea6[_0x11e6('0x2c')]),_0xe5638a);if(_0x3cdf0e[_0x11e6('0x2a')][_0x11e6('0x34')]){_0x5bbab7[_0x11e6('0x35')]=_['merge'](_0x5bbab7[_0x11e6('0x35')],{'$or':_['map'](_0xe5638a,function(_0x150fb3){if(_0x150fb3[_0x11e6('0x27')]!==_0x11e6('0x36')){var _0x1160d6={};_0x1160d6[_0x150fb3['name']]={'$like':'%'+_0x3cdf0e[_0x11e6('0x2a')]['filter']+'%'};return _0x1160d6;}})});}_0x5bbab7=_['merge']({},_0x5bbab7,_0x3cdf0e[_0x11e6('0x37')]);var _0x3c40e2={'where':_0x5bbab7[_0x11e6('0x35')]};return db[_0x11e6('0x25')]['count'](_0x3c40e2)[_0x11e6('0x1c')](function(_0x1d9de8){_0x290516[_0x11e6('0x16')]=_0x1d9de8;if(_0x3cdf0e[_0x11e6('0x2a')][_0x11e6('0x38')]){_0x5bbab7[_0x11e6('0x39')]=[{'all':!![]}];}return db[_0x11e6('0x25')][_0x11e6('0x3a')](_0x5bbab7);})[_0x11e6('0x1c')](function(_0x21a2d8){_0x290516[_0x11e6('0x3b')]=_0x21a2d8;return _0x290516;})[_0x11e6('0x1c')](respondWithFilteredResult(_0x48222c,_0x5bbab7))[_0x11e6('0x3c')](handleError(_0x48222c,null));};exports[_0x11e6('0x3d')]=function(_0x16577d,_0x20906e){var _0x2df143={'raw':!![],'where':{'id':_0x16577d[_0x11e6('0x3e')]['id']}},_0x372c5f={};_0x372c5f[_0x11e6('0x29')]=_[_0x11e6('0x2b')](db['Attachment']['rawAttributes']);_0x372c5f['query']=_[_0x11e6('0x2b')](_0x16577d['query']);_0x372c5f[_0x11e6('0x2c')]=_[_0x11e6('0x2d')](_0x372c5f[_0x11e6('0x29')],_0x372c5f['query']);_0x2df143[_0x11e6('0x2e')]=_['intersection'](_0x372c5f['model'],qs['fields'](_0x16577d[_0x11e6('0x2a')][_0x11e6('0x2f')]));_0x2df143[_0x11e6('0x2e')]=_0x2df143[_0x11e6('0x2e')][_0x11e6('0x30')]?_0x2df143['attributes']:_0x372c5f[_0x11e6('0x29')];if(_0x16577d['query'][_0x11e6('0x38')]){_0x2df143[_0x11e6('0x39')]=[{'all':!![]}];}_0x2df143=_['merge']({},_0x2df143,_0x16577d[_0x11e6('0x37')]);return db[_0x11e6('0x25')][_0x11e6('0x3f')](_0x2df143)[_0x11e6('0x1c')](handleEntityNotFound(_0x20906e,null))[_0x11e6('0x1c')](respondWithResult(_0x20906e,null))['catch'](handleError(_0x20906e,null));};exports[_0x11e6('0x40')]=function(_0x3ff69c,_0x36ea8a){var _0x44ed0a={'where':{'id':_0x3ff69c[_0x11e6('0x3e')]['id']}},_0x31cc1e={};_0x31cc1e[_0x11e6('0x29')]=_[_0x11e6('0x2b')](db[_0x11e6('0x25')][_0x11e6('0x41')]);_0x44ed0a[_0x11e6('0x2e')]=_[_0x11e6('0x2d')](_0x31cc1e[_0x11e6('0x29')],qs['fields'](_0x3ff69c[_0x11e6('0x2a')][_0x11e6('0x2f')]));_0x44ed0a[_0x11e6('0x2e')]=_0x44ed0a[_0x11e6('0x2e')]['length']?_0x44ed0a[_0x11e6('0x2e')]:_0x31cc1e[_0x11e6('0x29')];if(_0x3ff69c[_0x11e6('0x2a')]['includeAll']){_0x44ed0a[_0x11e6('0x39')]=[{'all':!![]}];}_0x44ed0a=_[_0x11e6('0x42')]({},_0x44ed0a,_0x3ff69c[_0x11e6('0x37')]);return db['Attachment'][_0x11e6('0x3f')](_0x44ed0a)['then'](handleEntityNotFound(_0x36ea8a,null))['then'](function(_0x3153d5){if(_0x3153d5){var _0x4d3921=_0x3153d5[_0x11e6('0x43')]({'plain':!![]});_0x4d3921=qs[_0x11e6('0x44')](_0x4d3921,['id','createdAt','updatedAt']);_0x3ff69c['body']=_['omit'](_0x3ff69c[_0x11e6('0x45')],['id',_0x11e6('0x46'),_0x11e6('0x47')]);return db[_0x11e6('0x25')]['create'](_[_0x11e6('0x42')](_0x4d3921,_0x3ff69c[_0x11e6('0x45')]),{'include':_0x3ff69c[_0x11e6('0x2a')][_0x11e6('0x38')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x36ea8a,0xc9))[_0x11e6('0x3c')](handleError(_0x36ea8a,null));};exports['update']=function(_0x472a99,_0x17cd7d){if(_0x472a99[_0x11e6('0x45')]['id']){delete _0x472a99[_0x11e6('0x45')]['id'];}return db[_0x11e6('0x25')][_0x11e6('0x3f')]({'where':{'id':_0x472a99[_0x11e6('0x3e')]['id']}})[_0x11e6('0x1c')](handleEntityNotFound(_0x17cd7d,null))[_0x11e6('0x1c')](saveUpdates(_0x472a99[_0x11e6('0x45')],null))['then'](respondWithResult(_0x17cd7d,null))[_0x11e6('0x3c')](handleError(_0x17cd7d,null));};exports['destroy']=function(_0x2ca23c,_0x341417){return db[_0x11e6('0x25')]['find']({'where':{'id':_0x2ca23c[_0x11e6('0x3e')]['id']}})[_0x11e6('0x1c')](handleEntityNotFound(_0x341417,null))[_0x11e6('0x1c')](removeEntity(_0x341417,null))[_0x11e6('0x3c')](handleError(_0x341417,null));};exports[_0x11e6('0x48')]=function(_0x3c10e3,_0x495fc6,_0x2342e7){_0x3c10e3[_0x11e6('0x45')][_0x11e6('0x21')]=_0x3c10e3[_0x11e6('0x49')][_0x11e6('0x4a')];_0x3c10e3[_0x11e6('0x45')]['basename']=_0x3c10e3[_0x11e6('0x49')][_0x11e6('0x4b')];_0x3c10e3[_0x11e6('0x45')][_0x11e6('0x27')]=_0x3c10e3[_0x11e6('0x49')][_0x11e6('0x4c')];return db[_0x11e6('0x25')][_0x11e6('0x48')](_0x3c10e3['body'])[_0x11e6('0x1c')](respondWithResult(_0x495fc6,0xc9))[_0x11e6('0x3c')](handleError(_0x495fc6,null));};exports[_0x11e6('0x4d')]=function(_0x39d8c7,_0x2b7e26,_0x3505ba){return db['Attachment'][_0x11e6('0x4e')]({'where':{'id':_0x39d8c7[_0x11e6('0x3e')]['id']},'raw':!![]})[_0x11e6('0x1c')](handleEntityNotFound(_0x2b7e26,null))[_0x11e6('0x1c')](function(_0x20e095){if(_0x20e095){return _0x2b7e26[_0x11e6('0x4d')](path[_0x11e6('0x4f')](config[_0x11e6('0x50')],_0x11e6('0x51'),_0x20e095[_0x11e6('0x52')]));}})['catch'](handleError(_0x2b7e26,null));};