7347f8f9413202afca87a18e529fdad2a0219752
[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 _0x7579=['rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','get','omit','body','updatedAt','create','file','originalname','basename','filename','mimetype','download','root','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','count','offset','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','map','Attachment'];(function(_0xf20d,_0x53cff5){var _0x1e4e99=function(_0x28310c){while(--_0x28310c){_0xf20d['push'](_0xf20d['shift']());}};_0x1e4e99(++_0x53cff5);}(_0x7579,0x1e2));var _0x9757=function(_0x501a3e,_0x8f28f1){_0x501a3e=_0x501a3e-0x0;var _0x5d2eef=_0x7579[_0x501a3e];return _0x5d2eef;};'use strict';var pdf=require(_0x9757('0x0'));var emlformat=require(_0x9757('0x1'));var rimraf=require(_0x9757('0x2'));var zipdir=require(_0x9757('0x3'));var jsonpatch=require(_0x9757('0x4'));var rp=require(_0x9757('0x5'));var moment=require('moment');var BPromise=require(_0x9757('0x6'));var Mustache=require(_0x9757('0x7'));var util=require(_0x9757('0x8'));var path=require(_0x9757('0x9'));var sox=require('sox');var csv=require(_0x9757('0xa'));var ejs=require(_0x9757('0xb'));var fs=require('fs');var _=require(_0x9757('0xc'));var squel=require('squel');var crypto=require(_0x9757('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9757('0xe'));var toCsv=require(_0x9757('0xa'));var querystring=require(_0x9757('0xf'));var Papa=require('papaparse');var Redis=require(_0x9757('0x10'));var authService=require(_0x9757('0x11'));var qs=require(_0x9757('0x12'));var as=require(_0x9757('0x13'));var hardwareService=require(_0x9757('0x14'));var logger=require(_0x9757('0x15'))(_0x9757('0x16'));var utils=require(_0x9757('0x17'));var config=require(_0x9757('0x18'));var licenseUtil=require(_0x9757('0x19'));var db=require(_0x9757('0x1a'))['db'];function respondWithStatusCode(_0x5c19c9,_0x2f2200){_0x2f2200=_0x2f2200||0xcc;return function(_0x1d32ee){if(_0x1d32ee){return _0x5c19c9[_0x9757('0x1b')](_0x2f2200);}return _0x5c19c9['status'](_0x2f2200)[_0x9757('0x1c')]();};}function respondWithResult(_0x39fa5c,_0x413d55){_0x413d55=_0x413d55||0xc8;return function(_0x14f67c){if(_0x14f67c){return _0x39fa5c[_0x9757('0x1d')](_0x413d55)[_0x9757('0x1e')](_0x14f67c);}};}function respondWithFilteredResult(_0x105e56,_0x4b994d){return function(_0x1fd6f6){if(_0x1fd6f6){var _0x55ded7=_0x1fd6f6[_0x9757('0x1f')],_0x17ab45=_0x4b994d[_0x9757('0x20')],_0xcc8f94=_0x4b994d[_0x9757('0x20')]+_0x4b994d['limit'],_0xad2a22;if(_0xcc8f94>=_0x55ded7){_0xcc8f94=_0x55ded7;_0xad2a22=0xc8;}else{_0xad2a22=0xce;}_0x105e56[_0x9757('0x1d')](_0xad2a22);return _0x105e56[_0x9757('0x21')](_0x9757('0x22'),_0x17ab45+'-'+_0xcc8f94+'/'+_0x55ded7)[_0x9757('0x1e')](_0x1fd6f6);}return null;};}function patchUpdates(_0x3716de){return function(_0xd2306b){try{jsonpatch[_0x9757('0x23')](_0xd2306b,_0x3716de,!![]);}catch(_0x593e43){return BPromise[_0x9757('0x24')](_0x593e43);}return _0xd2306b['save']();};}function saveUpdates(_0x517504,_0x37c889){return function(_0x1e2869){if(_0x1e2869){return _0x1e2869[_0x9757('0x25')](_0x517504)[_0x9757('0x26')](function(_0x559135){return _0x559135;});}return null;};}function removeEntity(_0x4ef000,_0x53d21c){return function(_0x73dac4){if(_0x73dac4){return _0x73dac4[_0x9757('0x27')]()[_0x9757('0x26')](function(){_0x4ef000[_0x9757('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x11f5ac,_0x160108){return function(_0x5d6554){if(!_0x5d6554){_0x11f5ac[_0x9757('0x1b')](0x194);}return _0x5d6554;};}function handleError(_0x956048,_0x58caa8){_0x58caa8=_0x58caa8||0x1f4;return function(_0x2b6915){logger[_0x9757('0x28')](_0x2b6915[_0x9757('0x29')]);if(_0x2b6915[_0x9757('0x2a')]){delete _0x2b6915[_0x9757('0x2a')];}_0x956048[_0x9757('0x1d')](_0x58caa8)['send'](_0x2b6915);};}exports[_0x9757('0x2b')]=function(_0x57c770,_0x2f2fe7){var _0x398c48={},_0x58ae5e={},_0x490e10={'count':0x0,'rows':[]};var _0x2f0ae8=_[_0x9757('0x2c')](db[_0x9757('0x2d')][_0x9757('0x2e')],function(_0x4ebdb6){return{'name':_0x4ebdb6[_0x9757('0x2f')],'type':_0x4ebdb6[_0x9757('0x30')][_0x9757('0x31')]};});_0x58ae5e[_0x9757('0x32')]=_[_0x9757('0x2c')](_0x2f0ae8,_0x9757('0x2a'));_0x58ae5e['query']=_[_0x9757('0x33')](_0x57c770[_0x9757('0x34')]);_0x58ae5e[_0x9757('0x35')]=_[_0x9757('0x36')](_0x58ae5e[_0x9757('0x32')],_0x58ae5e[_0x9757('0x34')]);_0x398c48[_0x9757('0x37')]=_['intersection'](_0x58ae5e[_0x9757('0x32')],qs[_0x9757('0x38')](_0x57c770[_0x9757('0x34')][_0x9757('0x38')]));_0x398c48[_0x9757('0x37')]=_0x398c48[_0x9757('0x37')][_0x9757('0x39')]?_0x398c48[_0x9757('0x37')]:_0x58ae5e['model'];if(!_0x57c770[_0x9757('0x34')]['hasOwnProperty'](_0x9757('0x3a'))){_0x398c48[_0x9757('0x3b')]=qs['limit'](_0x57c770[_0x9757('0x34')][_0x9757('0x3b')]);_0x398c48[_0x9757('0x20')]=qs[_0x9757('0x20')](_0x57c770[_0x9757('0x34')][_0x9757('0x20')]);}_0x398c48[_0x9757('0x3c')]=qs[_0x9757('0x3d')](_0x57c770[_0x9757('0x34')][_0x9757('0x3d')]);_0x398c48['where']=qs[_0x9757('0x35')](_[_0x9757('0x3e')](_0x57c770[_0x9757('0x34')],_0x58ae5e['filters']),_0x2f0ae8);if(_0x57c770[_0x9757('0x34')][_0x9757('0x3f')]){_0x398c48[_0x9757('0x40')]=_[_0x9757('0x41')](_0x398c48[_0x9757('0x40')],{'$or':_[_0x9757('0x2c')](_0x2f0ae8,function(_0x241a81){if(_0x241a81[_0x9757('0x30')]!==_0x9757('0x42')){var _0x478c3c={};_0x478c3c[_0x241a81['name']]={'$like':'%'+_0x57c770[_0x9757('0x34')][_0x9757('0x3f')]+'%'};return _0x478c3c;}})});}_0x398c48=_[_0x9757('0x41')]({},_0x398c48,_0x57c770[_0x9757('0x43')]);var _0x4f779b={'where':_0x398c48[_0x9757('0x40')]};return db['Attachment'][_0x9757('0x1f')](_0x4f779b)[_0x9757('0x26')](function(_0x2df1a8){_0x490e10['count']=_0x2df1a8;if(_0x57c770[_0x9757('0x34')][_0x9757('0x44')]){_0x398c48[_0x9757('0x45')]=[{'all':!![]}];}return db['Attachment'][_0x9757('0x46')](_0x398c48);})['then'](function(_0x50f0e4){_0x490e10[_0x9757('0x47')]=_0x50f0e4;return _0x490e10;})[_0x9757('0x26')](respondWithFilteredResult(_0x2f2fe7,_0x398c48))[_0x9757('0x48')](handleError(_0x2f2fe7,null));};exports[_0x9757('0x49')]=function(_0xb90596,_0x4f30db){var _0x49429a={'raw':!![],'where':{'id':_0xb90596[_0x9757('0x4a')]['id']}},_0x4f1cdd={};_0x4f1cdd[_0x9757('0x32')]=_[_0x9757('0x33')](db['Attachment'][_0x9757('0x2e')]);_0x4f1cdd[_0x9757('0x34')]=_['keys'](_0xb90596[_0x9757('0x34')]);_0x4f1cdd[_0x9757('0x35')]=_[_0x9757('0x36')](_0x4f1cdd[_0x9757('0x32')],_0x4f1cdd['query']);_0x49429a[_0x9757('0x37')]=_[_0x9757('0x36')](_0x4f1cdd[_0x9757('0x32')],qs[_0x9757('0x38')](_0xb90596[_0x9757('0x34')][_0x9757('0x38')]));_0x49429a[_0x9757('0x37')]=_0x49429a[_0x9757('0x37')][_0x9757('0x39')]?_0x49429a['attributes']:_0x4f1cdd['model'];if(_0xb90596[_0x9757('0x34')][_0x9757('0x44')]){_0x49429a[_0x9757('0x45')]=[{'all':!![]}];}_0x49429a=_['merge']({},_0x49429a,_0xb90596[_0x9757('0x43')]);return db[_0x9757('0x2d')][_0x9757('0x4b')](_0x49429a)['then'](handleEntityNotFound(_0x4f30db,null))[_0x9757('0x26')](respondWithResult(_0x4f30db,null))[_0x9757('0x48')](handleError(_0x4f30db,null));};exports['clone']=function(_0x4c5597,_0x4e613d){var _0x45771a={'where':{'id':_0x4c5597[_0x9757('0x4a')]['id']}},_0x1a62b4={};_0x1a62b4['model']=_[_0x9757('0x33')](db['Attachment'][_0x9757('0x2e')]);_0x45771a[_0x9757('0x37')]=_['intersection'](_0x1a62b4[_0x9757('0x32')],qs[_0x9757('0x38')](_0x4c5597[_0x9757('0x34')][_0x9757('0x38')]));_0x45771a[_0x9757('0x37')]=_0x45771a['attributes'][_0x9757('0x39')]?_0x45771a[_0x9757('0x37')]:_0x1a62b4[_0x9757('0x32')];if(_0x4c5597[_0x9757('0x34')][_0x9757('0x44')]){_0x45771a[_0x9757('0x45')]=[{'all':!![]}];}_0x45771a=_[_0x9757('0x41')]({},_0x45771a,_0x4c5597['options']);return db['Attachment'][_0x9757('0x4b')](_0x45771a)['then'](handleEntityNotFound(_0x4e613d,null))['then'](function(_0x41419a){if(_0x41419a){var _0x59fed4=_0x41419a[_0x9757('0x4c')]({'plain':!![]});_0x59fed4=qs[_0x9757('0x4d')](_0x59fed4,['id','createdAt','updatedAt']);_0x4c5597[_0x9757('0x4e')]=_['omit'](_0x4c5597[_0x9757('0x4e')],['id','createdAt',_0x9757('0x4f')]);return db['Attachment'][_0x9757('0x50')](_[_0x9757('0x41')](_0x59fed4,_0x4c5597[_0x9757('0x4e')]),{'include':_0x4c5597[_0x9757('0x34')][_0x9757('0x44')]?[{'all':!![]}]:undefined});}})[_0x9757('0x26')](respondWithResult(_0x4e613d,0xc9))[_0x9757('0x48')](handleError(_0x4e613d,null));};exports[_0x9757('0x25')]=function(_0x4e820d,_0x463a6c){if(_0x4e820d[_0x9757('0x4e')]['id']){delete _0x4e820d[_0x9757('0x4e')]['id'];}return db[_0x9757('0x2d')][_0x9757('0x4b')]({'where':{'id':_0x4e820d[_0x9757('0x4a')]['id']}})[_0x9757('0x26')](handleEntityNotFound(_0x463a6c,null))[_0x9757('0x26')](saveUpdates(_0x4e820d[_0x9757('0x4e')],null))[_0x9757('0x26')](respondWithResult(_0x463a6c,null))[_0x9757('0x48')](handleError(_0x463a6c,null));};exports[_0x9757('0x27')]=function(_0x9d4d6,_0x4f43db){return db['Attachment'][_0x9757('0x4b')]({'where':{'id':_0x9d4d6['params']['id']}})[_0x9757('0x26')](handleEntityNotFound(_0x4f43db,null))[_0x9757('0x26')](removeEntity(_0x4f43db,null))[_0x9757('0x48')](handleError(_0x4f43db,null));};exports['create']=function(_0x157361,_0x338370,_0x123648){_0x157361[_0x9757('0x4e')][_0x9757('0x2a')]=_0x157361[_0x9757('0x51')][_0x9757('0x52')];_0x157361[_0x9757('0x4e')][_0x9757('0x53')]=_0x157361[_0x9757('0x51')][_0x9757('0x54')];_0x157361['body'][_0x9757('0x30')]=_0x157361[_0x9757('0x51')][_0x9757('0x55')];return db[_0x9757('0x2d')][_0x9757('0x50')](_0x157361[_0x9757('0x4e')])[_0x9757('0x26')](respondWithResult(_0x338370,0xc9))['catch'](handleError(_0x338370,null));};exports[_0x9757('0x56')]=function(_0xf2aa31,_0x2a91f4,_0x5063a2){return db['Attachment']['findOne']({'where':{'id':_0xf2aa31[_0x9757('0x4a')]['id']},'raw':!![]})[_0x9757('0x26')](handleEntityNotFound(_0x2a91f4,null))[_0x9757('0x26')](function(_0x4d7d40){if(_0x4d7d40){return _0x2a91f4[_0x9757('0x56')](path['join'](config[_0x9757('0x57')],'server/files/attachments/',_0x4d7d40['basename']));}})[_0x9757('0x48')](handleError(_0x2a91f4,null));};