d09c0e6beb7a612c53cca3056033103c284eebdf
[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 _0x6e98=['intersection','find','catch','params','omit','createdAt','updatedAt','body','file','originalname','basename','filename','mimetype','create','download','findOne','root','server/files/attachments/','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','count','offset','json','reject','update','then','destroy','error','stack','name','map','Attachment','rawAttributes','fieldName','keys','query','filters','fields','attributes','length','model','hasOwnProperty','nolimit','limit','sort','where','pick','filter','type','merge','includeAll','include','findAll','rows'];(function(_0x3bdb7c,_0x2b2e13){var _0x299ed4=function(_0xef4f5a){while(--_0xef4f5a){_0x3bdb7c['push'](_0x3bdb7c['shift']());}};_0x299ed4(++_0x2b2e13);}(_0x6e98,0xff));var _0x86e9=function(_0xf93076,_0x1acb30){_0xf93076=_0xf93076-0x0;var _0x33d1da=_0x6e98[_0xf93076];return _0x33d1da;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x86e9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x86e9('0x1'));var rp=require('request-promise');var moment=require(_0x86e9('0x2'));var BPromise=require(_0x86e9('0x3'));var Mustache=require(_0x86e9('0x4'));var util=require(_0x86e9('0x5'));var path=require(_0x86e9('0x6'));var sox=require(_0x86e9('0x7'));var csv=require(_0x86e9('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x86e9('0x9'));var squel=require(_0x86e9('0xa'));var crypto=require(_0x86e9('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x86e9('0xc'));var toCsv=require('to-csv');var querystring=require(_0x86e9('0xd'));var Papa=require(_0x86e9('0xe'));var Redis=require(_0x86e9('0xf'));var authService=require(_0x86e9('0x10'));var qs=require(_0x86e9('0x11'));var as=require(_0x86e9('0x12'));var hardwareService=require(_0x86e9('0x13'));var logger=require(_0x86e9('0x14'))(_0x86e9('0x15'));var utils=require(_0x86e9('0x16'));var config=require('../../config/environment');var db=require(_0x86e9('0x17'))['db'];function respondWithStatusCode(_0xeec1d5,_0x11e4eb){_0x11e4eb=_0x11e4eb||0xcc;return function(_0x1dd62a){if(_0x1dd62a){return _0xeec1d5[_0x86e9('0x18')](_0x11e4eb);}return _0xeec1d5['status'](_0x11e4eb)[_0x86e9('0x19')]();};}function respondWithResult(_0x596a1c,_0x2fadb7){_0x2fadb7=_0x2fadb7||0xc8;return function(_0x20b1b4){if(_0x20b1b4){return _0x596a1c[_0x86e9('0x1a')](_0x2fadb7)['json'](_0x20b1b4);}};}function respondWithFilteredResult(_0x8fdfd,_0x227461){return function(_0x10f2ef){if(_0x10f2ef){var _0x26ea51=_0x10f2ef[_0x86e9('0x1b')],_0x197097=_0x227461[_0x86e9('0x1c')],_0x54b6ef=_0x227461[_0x86e9('0x1c')]+_0x227461['limit'],_0x20f48a;if(_0x54b6ef>=_0x26ea51){_0x54b6ef=_0x26ea51;_0x20f48a=0xc8;}else{_0x20f48a=0xce;}_0x8fdfd[_0x86e9('0x1a')](_0x20f48a);return _0x8fdfd['set']('Content-Range',_0x197097+'-'+_0x54b6ef+'/'+_0x26ea51)[_0x86e9('0x1d')](_0x10f2ef);}return null;};}function patchUpdates(_0x49d03f){return function(_0x5efb16){try{jsonpatch['apply'](_0x5efb16,_0x49d03f,!![]);}catch(_0x3f6db7){return BPromise[_0x86e9('0x1e')](_0x3f6db7);}return _0x5efb16['save']();};}function saveUpdates(_0x3e526a,_0x2de0e1){return function(_0x433dfa){if(_0x433dfa){return _0x433dfa[_0x86e9('0x1f')](_0x3e526a)[_0x86e9('0x20')](function(_0x2a8450){return _0x2a8450;});}return null;};}function removeEntity(_0x5bb92f,_0x45064a){return function(_0x1cc1c3){if(_0x1cc1c3){return _0x1cc1c3[_0x86e9('0x21')]()[_0x86e9('0x20')](function(){_0x5bb92f[_0x86e9('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd4298,_0x54527d){return function(_0x48ab9d){if(!_0x48ab9d){_0xd4298[_0x86e9('0x18')](0x194);}return _0x48ab9d;};}function handleError(_0x27de41,_0x46f0f8){_0x46f0f8=_0x46f0f8||0x1f4;return function(_0x309081){logger[_0x86e9('0x22')](_0x309081[_0x86e9('0x23')]);if(_0x309081[_0x86e9('0x24')]){delete _0x309081[_0x86e9('0x24')];}_0x27de41['status'](_0x46f0f8)['send'](_0x309081);};}exports['index']=function(_0x3fc785,_0x1208d7){var _0x14ef6b={},_0x41645f={},_0x39aae0={'count':0x0,'rows':[]};var _0x481619=_[_0x86e9('0x25')](db[_0x86e9('0x26')][_0x86e9('0x27')],function(_0x3bf0d9){return{'name':_0x3bf0d9[_0x86e9('0x28')],'type':_0x3bf0d9['type']['key']};});_0x41645f['model']=_[_0x86e9('0x25')](_0x481619,_0x86e9('0x24'));_0x41645f['query']=_[_0x86e9('0x29')](_0x3fc785[_0x86e9('0x2a')]);_0x41645f[_0x86e9('0x2b')]=_['intersection'](_0x41645f['model'],_0x41645f['query']);_0x14ef6b['attributes']=_['intersection'](_0x41645f['model'],qs['fields'](_0x3fc785[_0x86e9('0x2a')][_0x86e9('0x2c')]));_0x14ef6b['attributes']=_0x14ef6b[_0x86e9('0x2d')][_0x86e9('0x2e')]?_0x14ef6b['attributes']:_0x41645f[_0x86e9('0x2f')];if(!_0x3fc785[_0x86e9('0x2a')][_0x86e9('0x30')](_0x86e9('0x31'))){_0x14ef6b[_0x86e9('0x32')]=qs[_0x86e9('0x32')](_0x3fc785[_0x86e9('0x2a')]['limit']);_0x14ef6b[_0x86e9('0x1c')]=qs['offset'](_0x3fc785['query'][_0x86e9('0x1c')]);}_0x14ef6b['order']=qs[_0x86e9('0x33')](_0x3fc785[_0x86e9('0x2a')][_0x86e9('0x33')]);_0x14ef6b[_0x86e9('0x34')]=qs[_0x86e9('0x2b')](_[_0x86e9('0x35')](_0x3fc785[_0x86e9('0x2a')],_0x41645f[_0x86e9('0x2b')]),_0x481619);if(_0x3fc785['query'][_0x86e9('0x36')]){_0x14ef6b[_0x86e9('0x34')]=_['merge'](_0x14ef6b[_0x86e9('0x34')],{'$or':_[_0x86e9('0x25')](_0x481619,function(_0x405889){if(_0x405889[_0x86e9('0x37')]!=='VIRTUAL'){var _0x259380={};_0x259380[_0x405889[_0x86e9('0x24')]]={'$like':'%'+_0x3fc785[_0x86e9('0x2a')][_0x86e9('0x36')]+'%'};return _0x259380;}})});}_0x14ef6b=_[_0x86e9('0x38')]({},_0x14ef6b,_0x3fc785['options']);var _0x3d3280={'where':_0x14ef6b[_0x86e9('0x34')]};return db[_0x86e9('0x26')]['count'](_0x3d3280)[_0x86e9('0x20')](function(_0x2a9210){_0x39aae0['count']=_0x2a9210;if(_0x3fc785[_0x86e9('0x2a')][_0x86e9('0x39')]){_0x14ef6b[_0x86e9('0x3a')]=[{'all':!![]}];}return db[_0x86e9('0x26')][_0x86e9('0x3b')](_0x14ef6b);})[_0x86e9('0x20')](function(_0x1e0a98){_0x39aae0[_0x86e9('0x3c')]=_0x1e0a98;return _0x39aae0;})['then'](respondWithFilteredResult(_0x1208d7,_0x14ef6b))['catch'](handleError(_0x1208d7,null));};exports['show']=function(_0x37e225,_0x5ea145){var _0x10755b={'raw':!![],'where':{'id':_0x37e225['params']['id']}},_0x30362c={};_0x30362c['model']=_['keys'](db[_0x86e9('0x26')][_0x86e9('0x27')]);_0x30362c['query']=_[_0x86e9('0x29')](_0x37e225[_0x86e9('0x2a')]);_0x30362c[_0x86e9('0x2b')]=_['intersection'](_0x30362c[_0x86e9('0x2f')],_0x30362c['query']);_0x10755b['attributes']=_[_0x86e9('0x3d')](_0x30362c[_0x86e9('0x2f')],qs['fields'](_0x37e225[_0x86e9('0x2a')][_0x86e9('0x2c')]));_0x10755b['attributes']=_0x10755b[_0x86e9('0x2d')][_0x86e9('0x2e')]?_0x10755b[_0x86e9('0x2d')]:_0x30362c[_0x86e9('0x2f')];if(_0x37e225[_0x86e9('0x2a')][_0x86e9('0x39')]){_0x10755b[_0x86e9('0x3a')]=[{'all':!![]}];}_0x10755b=_[_0x86e9('0x38')]({},_0x10755b,_0x37e225['options']);return db['Attachment'][_0x86e9('0x3e')](_0x10755b)[_0x86e9('0x20')](handleEntityNotFound(_0x5ea145,null))[_0x86e9('0x20')](respondWithResult(_0x5ea145,null))[_0x86e9('0x3f')](handleError(_0x5ea145,null));};exports['clone']=function(_0x296f9d,_0x4c21ca){var _0x2cead2={'where':{'id':_0x296f9d[_0x86e9('0x40')]['id']}},_0x4e0f55={};_0x4e0f55[_0x86e9('0x2f')]=_['keys'](db[_0x86e9('0x26')][_0x86e9('0x27')]);_0x2cead2[_0x86e9('0x2d')]=_[_0x86e9('0x3d')](_0x4e0f55['model'],qs[_0x86e9('0x2c')](_0x296f9d['query'][_0x86e9('0x2c')]));_0x2cead2[_0x86e9('0x2d')]=_0x2cead2[_0x86e9('0x2d')]['length']?_0x2cead2['attributes']:_0x4e0f55[_0x86e9('0x2f')];if(_0x296f9d[_0x86e9('0x2a')]['includeAll']){_0x2cead2[_0x86e9('0x3a')]=[{'all':!![]}];}_0x2cead2=_['merge']({},_0x2cead2,_0x296f9d['options']);return db['Attachment']['find'](_0x2cead2)[_0x86e9('0x20')](handleEntityNotFound(_0x4c21ca,null))[_0x86e9('0x20')](function(_0x1fa238){if(_0x1fa238){var _0x36f416=_0x1fa238['get']({'plain':!![]});_0x36f416=qs[_0x86e9('0x41')](_0x36f416,['id',_0x86e9('0x42'),_0x86e9('0x43')]);_0x296f9d['body']=_[_0x86e9('0x41')](_0x296f9d[_0x86e9('0x44')],['id','createdAt',_0x86e9('0x43')]);return db['Attachment']['create'](_[_0x86e9('0x38')](_0x36f416,_0x296f9d['body']),{'include':_0x296f9d[_0x86e9('0x2a')][_0x86e9('0x39')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4c21ca,0xc9))[_0x86e9('0x3f')](handleError(_0x4c21ca,null));};exports[_0x86e9('0x1f')]=function(_0x34207e,_0x5cc2fe){if(_0x34207e[_0x86e9('0x44')]['id']){delete _0x34207e[_0x86e9('0x44')]['id'];}return db['Attachment'][_0x86e9('0x3e')]({'where':{'id':_0x34207e[_0x86e9('0x40')]['id']}})[_0x86e9('0x20')](handleEntityNotFound(_0x5cc2fe,null))['then'](saveUpdates(_0x34207e['body'],null))[_0x86e9('0x20')](respondWithResult(_0x5cc2fe,null))[_0x86e9('0x3f')](handleError(_0x5cc2fe,null));};exports[_0x86e9('0x21')]=function(_0x2855cb,_0x46ce1f){return db[_0x86e9('0x26')][_0x86e9('0x3e')]({'where':{'id':_0x2855cb['params']['id']}})['then'](handleEntityNotFound(_0x46ce1f,null))[_0x86e9('0x20')](removeEntity(_0x46ce1f,null))['catch'](handleError(_0x46ce1f,null));};exports['create']=function(_0x4375f1,_0x59775c,_0x2dc8c1){_0x4375f1['body'][_0x86e9('0x24')]=_0x4375f1[_0x86e9('0x45')][_0x86e9('0x46')];_0x4375f1[_0x86e9('0x44')][_0x86e9('0x47')]=_0x4375f1[_0x86e9('0x45')][_0x86e9('0x48')];_0x4375f1[_0x86e9('0x44')][_0x86e9('0x37')]=_0x4375f1[_0x86e9('0x45')][_0x86e9('0x49')];return db[_0x86e9('0x26')][_0x86e9('0x4a')](_0x4375f1[_0x86e9('0x44')])[_0x86e9('0x20')](respondWithResult(_0x59775c,0xc9))['catch'](handleError(_0x59775c,null));};exports[_0x86e9('0x4b')]=function(_0x150017,_0x4461d9,_0x3aeafb){return db[_0x86e9('0x26')][_0x86e9('0x4c')]({'where':{'id':_0x150017[_0x86e9('0x40')]['id']},'raw':!![]})[_0x86e9('0x20')](handleEntityNotFound(_0x4461d9,null))[_0x86e9('0x20')](function(_0x47b673){if(_0x47b673){return _0x4461d9[_0x86e9('0x4b')](path['join'](config[_0x86e9('0x4d')],_0x86e9('0x4e'),_0x47b673[_0x86e9('0x47')]));}})[_0x86e9('0x3f')](handleError(_0x4461d9,null));};