Built motion from commit (unavailable).|2.6.0
[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 _0xcdfd=['options','includeAll','include','findAll','rows','catch','show','params','Attachment','find','clone','get','omit','updatedAt','body','createdAt','create','destroy','file','originalname','basename','download','ChatOfflineMessageId','root','join','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','error','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL'];(function(_0xd73d53,_0x598443){var _0x560148=function(_0x3c8918){while(--_0x3c8918){_0xd73d53['push'](_0xd73d53['shift']());}};_0x560148(++_0x598443);}(_0xcdfd,0x1e1));var _0xdcdf=function(_0x1a8a13,_0x4f8b7d){_0x1a8a13=_0x1a8a13-0x0;var _0x14315a=_0xcdfd[_0x1a8a13];return _0x14315a;};'use strict';var emlformat=require(_0xdcdf('0x0'));var rimraf=require(_0xdcdf('0x1'));var zipdir=require(_0xdcdf('0x2'));var jsonpatch=require(_0xdcdf('0x3'));var rp=require(_0xdcdf('0x4'));var moment=require(_0xdcdf('0x5'));var BPromise=require(_0xdcdf('0x6'));var Mustache=require(_0xdcdf('0x7'));var util=require(_0xdcdf('0x8'));var path=require(_0xdcdf('0x9'));var sox=require('sox');var csv=require(_0xdcdf('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdcdf('0xb'));var _=require(_0xdcdf('0xc'));var squel=require(_0xdcdf('0xd'));var crypto=require(_0xdcdf('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xdcdf('0xf'));var toCsv=require(_0xdcdf('0xa'));var querystring=require(_0xdcdf('0x10'));var Papa=require('papaparse');var Redis=require(_0xdcdf('0x11'));var authService=require(_0xdcdf('0x12'));var qs=require(_0xdcdf('0x13'));var as=require(_0xdcdf('0x14'));var hardwareService=require(_0xdcdf('0x15'));var logger=require(_0xdcdf('0x16'))(_0xdcdf('0x17'));var utils=require(_0xdcdf('0x18'));var config=require(_0xdcdf('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xdcdf('0x1a'))['db'];function respondWithStatusCode(_0x51fec8,_0x2fd696){_0x2fd696=_0x2fd696||0xcc;return function(_0x1329f3){if(_0x1329f3){return _0x51fec8[_0xdcdf('0x1b')](_0x2fd696);}return _0x51fec8['status'](_0x2fd696)[_0xdcdf('0x1c')]();};}function respondWithResult(_0x7a2e3a,_0x4bfd5b){_0x4bfd5b=_0x4bfd5b||0xc8;return function(_0x384817){if(_0x384817){return _0x7a2e3a[_0xdcdf('0x1d')](_0x4bfd5b)['json'](_0x384817);}};}function respondWithFilteredResult(_0x25e362,_0x34c462){return function(_0x31c65f){if(_0x31c65f){var _0x1d02cb=typeof _0x34c462[_0xdcdf('0x1e')]===_0xdcdf('0x1f')&&typeof _0x34c462[_0xdcdf('0x20')]==='undefined';var _0x10186c=_0x31c65f[_0xdcdf('0x21')];var _0x3bb7dd=_0x1d02cb?0x0:_0x34c462[_0xdcdf('0x1e')];var _0x27ea9f=_0x1d02cb?_0x31c65f[_0xdcdf('0x21')]:_0x34c462[_0xdcdf('0x1e')]+_0x34c462[_0xdcdf('0x20')];var _0x3093c6;if(_0x27ea9f>=_0x10186c){_0x27ea9f=_0x10186c;_0x3093c6=0xc8;}else{_0x3093c6=0xce;}_0x25e362[_0xdcdf('0x1d')](_0x3093c6);return _0x25e362[_0xdcdf('0x22')](_0xdcdf('0x23'),_0x3bb7dd+'-'+_0x27ea9f+'/'+_0x10186c)['json'](_0x31c65f);}return null;};}function patchUpdates(_0xc9821f){return function(_0x41f381){try{jsonpatch[_0xdcdf('0x24')](_0x41f381,_0xc9821f,!![]);}catch(_0x3df5a6){return BPromise[_0xdcdf('0x25')](_0x3df5a6);}return _0x41f381['save']();};}function saveUpdates(_0x509ea1,_0x3aa1c3){return function(_0x5e0763){if(_0x5e0763){return _0x5e0763[_0xdcdf('0x26')](_0x509ea1)[_0xdcdf('0x27')](function(_0x1a5283){return _0x1a5283;});}return null;};}function removeEntity(_0x1dea5f,_0x1e8dc9){return function(_0x16adb8){if(_0x16adb8){return _0x16adb8['destroy']()[_0xdcdf('0x27')](function(){_0x1dea5f[_0xdcdf('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x209da4,_0x2d9cd7){return function(_0x4a2c23){if(!_0x4a2c23){_0x209da4[_0xdcdf('0x1b')](0x194);}return _0x4a2c23;};}function handleError(_0x48367c,_0x169ae3){_0x169ae3=_0x169ae3||0x1f4;return function(_0x4d427b){logger[_0xdcdf('0x28')](_0x4d427b[_0xdcdf('0x29')]);if(_0x4d427b['name']){delete _0x4d427b[_0xdcdf('0x2a')];}_0x48367c[_0xdcdf('0x1d')](_0x169ae3)['send'](_0x4d427b);};}exports[_0xdcdf('0x2b')]=function(_0x5fcd61,_0x209f03){var _0x1d7288={},_0x2fa603={},_0x3c63b3={'count':0x0,'rows':[]};var _0x338147=_['map'](db['Attachment'][_0xdcdf('0x2c')],function(_0x1dfa62){return{'name':_0x1dfa62[_0xdcdf('0x2d')],'type':_0x1dfa62[_0xdcdf('0x2e')][_0xdcdf('0x2f')]};});_0x2fa603[_0xdcdf('0x30')]=_[_0xdcdf('0x31')](_0x338147,_0xdcdf('0x2a'));_0x2fa603[_0xdcdf('0x32')]=_[_0xdcdf('0x33')](_0x5fcd61[_0xdcdf('0x32')]);_0x2fa603[_0xdcdf('0x34')]=_[_0xdcdf('0x35')](_0x2fa603['model'],_0x2fa603['query']);_0x1d7288[_0xdcdf('0x36')]=_[_0xdcdf('0x35')](_0x2fa603['model'],qs[_0xdcdf('0x37')](_0x5fcd61[_0xdcdf('0x32')][_0xdcdf('0x37')]));_0x1d7288[_0xdcdf('0x36')]=_0x1d7288[_0xdcdf('0x36')][_0xdcdf('0x38')]?_0x1d7288[_0xdcdf('0x36')]:_0x2fa603['model'];if(!_0x5fcd61['query'][_0xdcdf('0x39')](_0xdcdf('0x3a'))){_0x1d7288[_0xdcdf('0x20')]=qs[_0xdcdf('0x20')](_0x5fcd61['query'][_0xdcdf('0x20')]);_0x1d7288['offset']=qs[_0xdcdf('0x1e')](_0x5fcd61[_0xdcdf('0x32')][_0xdcdf('0x1e')]);}_0x1d7288['order']=qs['sort'](_0x5fcd61['query'][_0xdcdf('0x3b')]);_0x1d7288[_0xdcdf('0x3c')]=qs['filters'](_[_0xdcdf('0x3d')](_0x5fcd61[_0xdcdf('0x32')],_0x2fa603[_0xdcdf('0x34')]),_0x338147);if(_0x5fcd61[_0xdcdf('0x32')][_0xdcdf('0x3e')]){_0x1d7288[_0xdcdf('0x3c')]=_[_0xdcdf('0x3f')](_0x1d7288[_0xdcdf('0x3c')],{'$or':_[_0xdcdf('0x31')](_0x338147,function(_0x51d8fd){if(_0x51d8fd[_0xdcdf('0x2e')]!==_0xdcdf('0x40')){var _0x50da3f={};_0x50da3f[_0x51d8fd[_0xdcdf('0x2a')]]={'$like':'%'+_0x5fcd61[_0xdcdf('0x32')][_0xdcdf('0x3e')]+'%'};return _0x50da3f;}})});}_0x1d7288=_[_0xdcdf('0x3f')]({},_0x1d7288,_0x5fcd61[_0xdcdf('0x41')]);var _0x16a03c={'where':_0x1d7288['where']};return db['Attachment'][_0xdcdf('0x21')](_0x16a03c)[_0xdcdf('0x27')](function(_0x403bc3){_0x3c63b3['count']=_0x403bc3;if(_0x5fcd61['query'][_0xdcdf('0x42')]){_0x1d7288[_0xdcdf('0x43')]=[{'all':!![]}];}return db['Attachment'][_0xdcdf('0x44')](_0x1d7288);})[_0xdcdf('0x27')](function(_0x296f91){_0x3c63b3[_0xdcdf('0x45')]=_0x296f91;return _0x3c63b3;})[_0xdcdf('0x27')](respondWithFilteredResult(_0x209f03,_0x1d7288))[_0xdcdf('0x46')](handleError(_0x209f03,null));};exports[_0xdcdf('0x47')]=function(_0xbc098b,_0x3ee525){var _0x1e0ef6={'raw':!![],'where':{'id':_0xbc098b[_0xdcdf('0x48')]['id']}},_0x2d6e87={};_0x2d6e87['model']=_['keys'](db[_0xdcdf('0x49')]['rawAttributes']);_0x2d6e87['query']=_['keys'](_0xbc098b[_0xdcdf('0x32')]);_0x2d6e87[_0xdcdf('0x34')]=_[_0xdcdf('0x35')](_0x2d6e87[_0xdcdf('0x30')],_0x2d6e87[_0xdcdf('0x32')]);_0x1e0ef6[_0xdcdf('0x36')]=_[_0xdcdf('0x35')](_0x2d6e87[_0xdcdf('0x30')],qs[_0xdcdf('0x37')](_0xbc098b[_0xdcdf('0x32')][_0xdcdf('0x37')]));_0x1e0ef6[_0xdcdf('0x36')]=_0x1e0ef6[_0xdcdf('0x36')][_0xdcdf('0x38')]?_0x1e0ef6[_0xdcdf('0x36')]:_0x2d6e87[_0xdcdf('0x30')];if(_0xbc098b['query'][_0xdcdf('0x42')]){_0x1e0ef6[_0xdcdf('0x43')]=[{'all':!![]}];}_0x1e0ef6=_[_0xdcdf('0x3f')]({},_0x1e0ef6,_0xbc098b['options']);return db[_0xdcdf('0x49')][_0xdcdf('0x4a')](_0x1e0ef6)[_0xdcdf('0x27')](handleEntityNotFound(_0x3ee525,null))[_0xdcdf('0x27')](respondWithResult(_0x3ee525,null))[_0xdcdf('0x46')](handleError(_0x3ee525,null));};exports[_0xdcdf('0x4b')]=function(_0x4b6538,_0x32ffae){var _0x1beb38={'where':{'id':_0x4b6538['params']['id']}},_0x4e340a={};_0x4e340a['model']=_[_0xdcdf('0x33')](db[_0xdcdf('0x49')][_0xdcdf('0x2c')]);_0x1beb38[_0xdcdf('0x36')]=_['intersection'](_0x4e340a[_0xdcdf('0x30')],qs[_0xdcdf('0x37')](_0x4b6538[_0xdcdf('0x32')][_0xdcdf('0x37')]));_0x1beb38[_0xdcdf('0x36')]=_0x1beb38[_0xdcdf('0x36')]['length']?_0x1beb38[_0xdcdf('0x36')]:_0x4e340a[_0xdcdf('0x30')];if(_0x4b6538[_0xdcdf('0x32')][_0xdcdf('0x42')]){_0x1beb38[_0xdcdf('0x43')]=[{'all':!![]}];}_0x1beb38=_['merge']({},_0x1beb38,_0x4b6538[_0xdcdf('0x41')]);return db[_0xdcdf('0x49')]['find'](_0x1beb38)['then'](handleEntityNotFound(_0x32ffae,null))[_0xdcdf('0x27')](function(_0x2741b6){if(_0x2741b6){var _0x2268e5=_0x2741b6[_0xdcdf('0x4c')]({'plain':!![]});_0x2268e5=qs[_0xdcdf('0x4d')](_0x2268e5,['id','createdAt',_0xdcdf('0x4e')]);_0x4b6538[_0xdcdf('0x4f')]=_[_0xdcdf('0x4d')](_0x4b6538['body'],['id',_0xdcdf('0x50'),'updatedAt']);return db[_0xdcdf('0x49')][_0xdcdf('0x51')](_[_0xdcdf('0x3f')](_0x2268e5,_0x4b6538[_0xdcdf('0x4f')]),{'include':_0x4b6538[_0xdcdf('0x32')][_0xdcdf('0x42')]?[{'all':!![]}]:undefined});}})[_0xdcdf('0x27')](respondWithResult(_0x32ffae,0xc9))['catch'](handleError(_0x32ffae,null));};exports[_0xdcdf('0x26')]=function(_0x4e3a55,_0x58ab22){if(_0x4e3a55[_0xdcdf('0x4f')]['id']){delete _0x4e3a55[_0xdcdf('0x4f')]['id'];}return db[_0xdcdf('0x49')][_0xdcdf('0x4a')]({'where':{'id':_0x4e3a55['params']['id']}})['then'](handleEntityNotFound(_0x58ab22,null))[_0xdcdf('0x27')](saveUpdates(_0x4e3a55[_0xdcdf('0x4f')],null))[_0xdcdf('0x27')](respondWithResult(_0x58ab22,null))[_0xdcdf('0x46')](handleError(_0x58ab22,null));};exports[_0xdcdf('0x52')]=function(_0x3f2fd3,_0x281834){return db[_0xdcdf('0x49')][_0xdcdf('0x4a')]({'where':{'id':_0x3f2fd3[_0xdcdf('0x48')]['id']}})['then'](handleEntityNotFound(_0x281834,null))['then'](removeEntity(_0x281834,null))[_0xdcdf('0x46')](handleError(_0x281834,null));};exports[_0xdcdf('0x51')]=function(_0x5232be,_0x8b0c99,_0x42d1ca){_0x5232be['body'][_0xdcdf('0x2a')]=_0x5232be[_0xdcdf('0x53')][_0xdcdf('0x54')];_0x5232be[_0xdcdf('0x4f')][_0xdcdf('0x55')]=_0x5232be[_0xdcdf('0x53')]['filename'];_0x5232be[_0xdcdf('0x4f')][_0xdcdf('0x2e')]=_0x5232be[_0xdcdf('0x53')]['mimetype'];return db[_0xdcdf('0x49')]['create'](_0x5232be[_0xdcdf('0x4f')])[_0xdcdf('0x27')](respondWithResult(_0x8b0c99,0xc9))['catch'](handleError(_0x8b0c99,null));};exports[_0xdcdf('0x56')]=function(_0x6d2068,_0x3f74b3,_0x1d6046){return db[_0xdcdf('0x49')]['findOne']({'where':{'id':_0x6d2068[_0xdcdf('0x48')]['id']},'raw':!![]})[_0xdcdf('0x27')](handleEntityNotFound(_0x3f74b3,null))[_0xdcdf('0x27')](function(_0x571faf){if(_0x571faf){var _0x245732=_0x571faf[_0xdcdf('0x57')]!==null;var _0x649b8d=path['join'](config[_0xdcdf('0x58')],'server/files/attachments/');if(_0x245732){_0x649b8d=path[_0xdcdf('0x59')](_0x649b8d,_0xdcdf('0x5a'));}var _0x270d10=path[_0xdcdf('0x59')](_0x649b8d,_0x571faf[_0xdcdf('0x55')]);return _0x3f74b3[_0xdcdf('0x56')](_0x270d10);}})[_0xdcdf('0x46')](handleError(_0x3f74b3,null));};