Built motion from commit fe909640.|2.6.8
[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 _0xa186=['type','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','clone','get','omit','createdAt','updatedAt','body','create','basename','filename','file','download','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','Attachment','rawAttributes'];(function(_0x27ee66,_0x3adc66){var _0x2a38a4=function(_0x28e593){while(--_0x28e593){_0x27ee66['push'](_0x27ee66['shift']());}};_0x2a38a4(++_0x3adc66);}(_0xa186,0x19a));var _0x6a18=function(_0x4ee9d,_0x3e3238){_0x4ee9d=_0x4ee9d-0x0;var _0x1cf1fd=_0xa186[_0x4ee9d];return _0x1cf1fd;};'use strict';var emlformat=require(_0x6a18('0x0'));var rimraf=require(_0x6a18('0x1'));var zipdir=require(_0x6a18('0x2'));var jsonpatch=require(_0x6a18('0x3'));var rp=require(_0x6a18('0x4'));var moment=require(_0x6a18('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6a18('0x6'));var util=require(_0x6a18('0x7'));var path=require('path');var sox=require(_0x6a18('0x8'));var csv=require(_0x6a18('0x9'));var ejs=require(_0x6a18('0xa'));var fs=require('fs');var fs_extra=require(_0x6a18('0xb'));var _=require(_0x6a18('0xc'));var squel=require(_0x6a18('0xd'));var crypto=require(_0x6a18('0xe'));var jsforce=require(_0x6a18('0xf'));var deskjs=require(_0x6a18('0x10'));var toCsv=require(_0x6a18('0x9'));var querystring=require(_0x6a18('0x11'));var Papa=require(_0x6a18('0x12'));var Redis=require(_0x6a18('0x13'));var authService=require(_0x6a18('0x14'));var qs=require(_0x6a18('0x15'));var as=require(_0x6a18('0x16'));var hardwareService=require(_0x6a18('0x17'));var logger=require('../../config/logger')(_0x6a18('0x18'));var utils=require(_0x6a18('0x19'));var config=require(_0x6a18('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x6a18('0x1b'))['db'];function respondWithStatusCode(_0xbb480e,_0x505c3f){_0x505c3f=_0x505c3f||0xcc;return function(_0x1440ca){if(_0x1440ca){return _0xbb480e[_0x6a18('0x1c')](_0x505c3f);}return _0xbb480e[_0x6a18('0x1d')](_0x505c3f)[_0x6a18('0x1e')]();};}function respondWithResult(_0x28470a,_0x5574f8){_0x5574f8=_0x5574f8||0xc8;return function(_0x4299ed){if(_0x4299ed){return _0x28470a[_0x6a18('0x1d')](_0x5574f8)[_0x6a18('0x1f')](_0x4299ed);}};}function respondWithFilteredResult(_0x667408,_0x275709){return function(_0x25de5c){if(_0x25de5c){var _0x4e9649=typeof _0x275709[_0x6a18('0x20')]==='undefined'&&typeof _0x275709[_0x6a18('0x21')]===_0x6a18('0x22');var _0x132855=_0x25de5c['count'];var _0x406440=_0x4e9649?0x0:_0x275709[_0x6a18('0x20')];var _0x33f8bb=_0x4e9649?_0x25de5c[_0x6a18('0x23')]:_0x275709['offset']+_0x275709[_0x6a18('0x21')];var _0x55aa44;if(_0x33f8bb>=_0x132855){_0x33f8bb=_0x132855;_0x55aa44=0xc8;}else{_0x55aa44=0xce;}_0x667408[_0x6a18('0x1d')](_0x55aa44);return _0x667408[_0x6a18('0x24')](_0x6a18('0x25'),_0x406440+'-'+_0x33f8bb+'/'+_0x132855)[_0x6a18('0x1f')](_0x25de5c);}return null;};}function patchUpdates(_0x81cb22){return function(_0x41062f){try{jsonpatch[_0x6a18('0x26')](_0x41062f,_0x81cb22,!![]);}catch(_0x1c4346){return BPromise[_0x6a18('0x27')](_0x1c4346);}return _0x41062f[_0x6a18('0x28')]();};}function saveUpdates(_0x3f28ae,_0x16c64f){return function(_0x3be0af){if(_0x3be0af){return _0x3be0af[_0x6a18('0x29')](_0x3f28ae)['then'](function(_0x53b30d){return _0x53b30d;});}return null;};}function removeEntity(_0x164962,_0x8e3673){return function(_0x5d4991){if(_0x5d4991){return _0x5d4991[_0x6a18('0x2a')]()[_0x6a18('0x2b')](function(){_0x164962['status'](0xcc)[_0x6a18('0x1e')]();});}};}function handleEntityNotFound(_0x3f4047,_0xc57200){return function(_0x1ec7e4){if(!_0x1ec7e4){_0x3f4047[_0x6a18('0x1c')](0x194);}return _0x1ec7e4;};}function handleError(_0x16b7e5,_0x590476){_0x590476=_0x590476||0x1f4;return function(_0x23c907){logger[_0x6a18('0x2c')](_0x23c907[_0x6a18('0x2d')]);if(_0x23c907['name']){delete _0x23c907[_0x6a18('0x2e')];}_0x16b7e5[_0x6a18('0x1d')](_0x590476)[_0x6a18('0x2f')](_0x23c907);};}exports['index']=function(_0x36974c,_0x2f00a5){var _0x234aae={},_0x339e13={},_0x3660c4={'count':0x0,'rows':[]};var _0x44037b=_['map'](db[_0x6a18('0x30')][_0x6a18('0x31')],function(_0x5f25b3){return{'name':_0x5f25b3['fieldName'],'type':_0x5f25b3[_0x6a18('0x32')]['key']};});_0x339e13[_0x6a18('0x33')]=_[_0x6a18('0x34')](_0x44037b,_0x6a18('0x2e'));_0x339e13['query']=_[_0x6a18('0x35')](_0x36974c[_0x6a18('0x36')]);_0x339e13[_0x6a18('0x37')]=_[_0x6a18('0x38')](_0x339e13[_0x6a18('0x33')],_0x339e13[_0x6a18('0x36')]);_0x234aae[_0x6a18('0x39')]=_[_0x6a18('0x38')](_0x339e13[_0x6a18('0x33')],qs[_0x6a18('0x3a')](_0x36974c['query'][_0x6a18('0x3a')]));_0x234aae[_0x6a18('0x39')]=_0x234aae[_0x6a18('0x39')][_0x6a18('0x3b')]?_0x234aae[_0x6a18('0x39')]:_0x339e13[_0x6a18('0x33')];if(!_0x36974c[_0x6a18('0x36')][_0x6a18('0x3c')]('nolimit')){_0x234aae[_0x6a18('0x21')]=qs[_0x6a18('0x21')](_0x36974c[_0x6a18('0x36')]['limit']);_0x234aae[_0x6a18('0x20')]=qs[_0x6a18('0x20')](_0x36974c['query']['offset']);}_0x234aae['order']=qs[_0x6a18('0x3d')](_0x36974c[_0x6a18('0x36')][_0x6a18('0x3d')]);_0x234aae['where']=qs[_0x6a18('0x37')](_[_0x6a18('0x3e')](_0x36974c[_0x6a18('0x36')],_0x339e13[_0x6a18('0x37')]),_0x44037b);if(_0x36974c['query'][_0x6a18('0x3f')]){_0x234aae[_0x6a18('0x40')]=_[_0x6a18('0x41')](_0x234aae['where'],{'$or':_[_0x6a18('0x34')](_0x44037b,function(_0x298c12){if(_0x298c12[_0x6a18('0x32')]!==_0x6a18('0x42')){var _0x30ee46={};_0x30ee46[_0x298c12[_0x6a18('0x2e')]]={'$like':'%'+_0x36974c[_0x6a18('0x36')][_0x6a18('0x3f')]+'%'};return _0x30ee46;}})});}_0x234aae=_['merge']({},_0x234aae,_0x36974c['options']);var _0x13b01f={'where':_0x234aae['where']};return db['Attachment'][_0x6a18('0x23')](_0x13b01f)[_0x6a18('0x2b')](function(_0x21ff4c){_0x3660c4['count']=_0x21ff4c;if(_0x36974c['query'][_0x6a18('0x43')]){_0x234aae[_0x6a18('0x44')]=[{'all':!![]}];}return db['Attachment'][_0x6a18('0x45')](_0x234aae);})[_0x6a18('0x2b')](function(_0x111d00){_0x3660c4[_0x6a18('0x46')]=_0x111d00;return _0x3660c4;})[_0x6a18('0x2b')](respondWithFilteredResult(_0x2f00a5,_0x234aae))[_0x6a18('0x47')](handleError(_0x2f00a5,null));};exports[_0x6a18('0x48')]=function(_0x556f4e,_0x13e26d){var _0x26df46={'raw':!![],'where':{'id':_0x556f4e[_0x6a18('0x49')]['id']}},_0x19c67b={};_0x19c67b[_0x6a18('0x33')]=_['keys'](db[_0x6a18('0x30')][_0x6a18('0x31')]);_0x19c67b['query']=_[_0x6a18('0x35')](_0x556f4e['query']);_0x19c67b[_0x6a18('0x37')]=_['intersection'](_0x19c67b['model'],_0x19c67b[_0x6a18('0x36')]);_0x26df46[_0x6a18('0x39')]=_[_0x6a18('0x38')](_0x19c67b[_0x6a18('0x33')],qs[_0x6a18('0x3a')](_0x556f4e[_0x6a18('0x36')]['fields']));_0x26df46[_0x6a18('0x39')]=_0x26df46[_0x6a18('0x39')][_0x6a18('0x3b')]?_0x26df46['attributes']:_0x19c67b['model'];if(_0x556f4e[_0x6a18('0x36')][_0x6a18('0x43')]){_0x26df46['include']=[{'all':!![]}];}_0x26df46=_['merge']({},_0x26df46,_0x556f4e[_0x6a18('0x4a')]);return db['Attachment'][_0x6a18('0x4b')](_0x26df46)[_0x6a18('0x2b')](handleEntityNotFound(_0x13e26d,null))['then'](respondWithResult(_0x13e26d,null))[_0x6a18('0x47')](handleError(_0x13e26d,null));};exports[_0x6a18('0x4c')]=function(_0x11fdbf,_0x2bcdd6){var _0x150bba={'where':{'id':_0x11fdbf[_0x6a18('0x49')]['id']}},_0x47be04={};_0x47be04[_0x6a18('0x33')]=_[_0x6a18('0x35')](db[_0x6a18('0x30')][_0x6a18('0x31')]);_0x150bba[_0x6a18('0x39')]=_[_0x6a18('0x38')](_0x47be04[_0x6a18('0x33')],qs[_0x6a18('0x3a')](_0x11fdbf['query'][_0x6a18('0x3a')]));_0x150bba['attributes']=_0x150bba[_0x6a18('0x39')][_0x6a18('0x3b')]?_0x150bba[_0x6a18('0x39')]:_0x47be04[_0x6a18('0x33')];if(_0x11fdbf[_0x6a18('0x36')][_0x6a18('0x43')]){_0x150bba[_0x6a18('0x44')]=[{'all':!![]}];}_0x150bba=_[_0x6a18('0x41')]({},_0x150bba,_0x11fdbf[_0x6a18('0x4a')]);return db['Attachment'][_0x6a18('0x4b')](_0x150bba)['then'](handleEntityNotFound(_0x2bcdd6,null))[_0x6a18('0x2b')](function(_0x458e6c){if(_0x458e6c){var _0xbda5f1=_0x458e6c[_0x6a18('0x4d')]({'plain':!![]});_0xbda5f1=qs[_0x6a18('0x4e')](_0xbda5f1,['id',_0x6a18('0x4f'),_0x6a18('0x50')]);_0x11fdbf['body']=_[_0x6a18('0x4e')](_0x11fdbf[_0x6a18('0x51')],['id',_0x6a18('0x4f'),_0x6a18('0x50')]);return db[_0x6a18('0x30')][_0x6a18('0x52')](_[_0x6a18('0x41')](_0xbda5f1,_0x11fdbf[_0x6a18('0x51')]),{'include':_0x11fdbf[_0x6a18('0x36')][_0x6a18('0x43')]?[{'all':!![]}]:undefined});}})[_0x6a18('0x2b')](respondWithResult(_0x2bcdd6,0xc9))['catch'](handleError(_0x2bcdd6,null));};exports[_0x6a18('0x29')]=function(_0x1382c4,_0xa28d5c){if(_0x1382c4[_0x6a18('0x51')]['id']){delete _0x1382c4['body']['id'];}return db[_0x6a18('0x30')][_0x6a18('0x4b')]({'where':{'id':_0x1382c4[_0x6a18('0x49')]['id']}})['then'](handleEntityNotFound(_0xa28d5c,null))[_0x6a18('0x2b')](saveUpdates(_0x1382c4[_0x6a18('0x51')],null))['then'](respondWithResult(_0xa28d5c,null))[_0x6a18('0x47')](handleError(_0xa28d5c,null));};exports[_0x6a18('0x2a')]=function(_0x3d4c2a,_0x840ae2){return db[_0x6a18('0x30')][_0x6a18('0x4b')]({'where':{'id':_0x3d4c2a[_0x6a18('0x49')]['id']}})['then'](handleEntityNotFound(_0x840ae2,null))['then'](removeEntity(_0x840ae2,null))['catch'](handleError(_0x840ae2,null));};exports[_0x6a18('0x52')]=function(_0x29fa29,_0x49a6a2,_0x1e00c6){_0x29fa29[_0x6a18('0x51')][_0x6a18('0x2e')]=_0x29fa29['file']['originalname'];_0x29fa29[_0x6a18('0x51')][_0x6a18('0x53')]=_0x29fa29['file'][_0x6a18('0x54')];_0x29fa29[_0x6a18('0x51')][_0x6a18('0x32')]=_0x29fa29[_0x6a18('0x55')]['mimetype'];return db[_0x6a18('0x30')][_0x6a18('0x52')](_0x29fa29[_0x6a18('0x51')])[_0x6a18('0x2b')](respondWithResult(_0x49a6a2,0xc9))['catch'](handleError(_0x49a6a2,null));};exports[_0x6a18('0x56')]=function(_0x342d81,_0x47f405,_0x7d9e98){return db[_0x6a18('0x30')]['findOne']({'where':{'id':_0x342d81[_0x6a18('0x49')]['id']},'raw':!![]})[_0x6a18('0x2b')](handleEntityNotFound(_0x47f405,null))['then'](function(_0x399c48){if(_0x399c48){var _0x5c5cd4=_0x399c48[_0x6a18('0x57')]!==null;var _0x12791c=path[_0x6a18('0x58')](config[_0x6a18('0x59')],_0x6a18('0x5a'));if(_0x5c5cd4){_0x12791c=path[_0x6a18('0x58')](_0x12791c,_0x6a18('0x5b'));}var _0x3a87b2=path[_0x6a18('0x58')](_0x12791c,_0x399c48[_0x6a18('0x53')]);return _0x47f405[_0x6a18('0x56')](_0x3a87b2);}})['catch'](handleError(_0x47f405,null));};