Built motion from commit da617fac.|2.6.6
[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 _0xe342=['fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','map','Attachment','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','clone','params','find','omit','createdAt','updatedAt','body','create','originalname','basename','file','filename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','ejs'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe342,0x14f));var _0x2e34=function(_0x2df523,_0x11b09e){_0x2df523=_0x2df523-0x0;var _0x43f919=_0xe342[_0x2df523];return _0x43f919;};'use strict';var emlformat=require(_0x2e34('0x0'));var rimraf=require(_0x2e34('0x1'));var zipdir=require(_0x2e34('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2e34('0x3'));var Mustache=require(_0x2e34('0x4'));var util=require(_0x2e34('0x5'));var path=require(_0x2e34('0x6'));var sox=require(_0x2e34('0x7'));var csv=require('to-csv');var ejs=require(_0x2e34('0x8'));var fs=require('fs');var fs_extra=require(_0x2e34('0x9'));var _=require('lodash');var squel=require(_0x2e34('0xa'));var crypto=require(_0x2e34('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x2e34('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2e34('0xd'));var Redis=require(_0x2e34('0xe'));var authService=require(_0x2e34('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x2e34('0x10'));var hardwareService=require(_0x2e34('0x11'));var logger=require('../../config/logger')(_0x2e34('0x12'));var utils=require('../../config/utils');var config=require(_0x2e34('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x2e34('0x14'))['db'];function respondWithStatusCode(_0x26a41a,_0x2cd9ee){_0x2cd9ee=_0x2cd9ee||0xcc;return function(_0x4f943f){if(_0x4f943f){return _0x26a41a['sendStatus'](_0x2cd9ee);}return _0x26a41a[_0x2e34('0x15')](_0x2cd9ee)['end']();};}function respondWithResult(_0x2c9625,_0x11b283){_0x11b283=_0x11b283||0xc8;return function(_0x23e3d3){if(_0x23e3d3){return _0x2c9625['status'](_0x11b283)[_0x2e34('0x16')](_0x23e3d3);}};}function respondWithFilteredResult(_0x3470b5,_0x1eaf41){return function(_0x12f975){if(_0x12f975){var _0x28dbe0=typeof _0x1eaf41[_0x2e34('0x17')]===_0x2e34('0x18')&&typeof _0x1eaf41['limit']===_0x2e34('0x18');var _0x510265=_0x12f975[_0x2e34('0x19')];var _0x178fbc=_0x28dbe0?0x0:_0x1eaf41[_0x2e34('0x17')];var _0x252be4=_0x28dbe0?_0x12f975['count']:_0x1eaf41[_0x2e34('0x17')]+_0x1eaf41[_0x2e34('0x1a')];var _0x10edd5;if(_0x252be4>=_0x510265){_0x252be4=_0x510265;_0x10edd5=0xc8;}else{_0x10edd5=0xce;}_0x3470b5[_0x2e34('0x15')](_0x10edd5);return _0x3470b5['set'](_0x2e34('0x1b'),_0x178fbc+'-'+_0x252be4+'/'+_0x510265)[_0x2e34('0x16')](_0x12f975);}return null;};}function patchUpdates(_0x1575c9){return function(_0x50b9b8){try{jsonpatch[_0x2e34('0x1c')](_0x50b9b8,_0x1575c9,!![]);}catch(_0x4df389){return BPromise[_0x2e34('0x1d')](_0x4df389);}return _0x50b9b8[_0x2e34('0x1e')]();};}function saveUpdates(_0x5712ff,_0x527478){return function(_0xf635d2){if(_0xf635d2){return _0xf635d2[_0x2e34('0x1f')](_0x5712ff)[_0x2e34('0x20')](function(_0x48477b){return _0x48477b;});}return null;};}function removeEntity(_0x146290,_0x51e2fb){return function(_0xede190){if(_0xede190){return _0xede190[_0x2e34('0x21')]()[_0x2e34('0x20')](function(){_0x146290['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x53dc55,_0x28e4fa){return function(_0x36f3df){if(!_0x36f3df){_0x53dc55[_0x2e34('0x22')](0x194);}return _0x36f3df;};}function handleError(_0x2eeb8c,_0x3776bd){_0x3776bd=_0x3776bd||0x1f4;return function(_0x35909d){logger['error'](_0x35909d[_0x2e34('0x23')]);if(_0x35909d[_0x2e34('0x24')]){delete _0x35909d['name'];}_0x2eeb8c['status'](_0x3776bd)[_0x2e34('0x25')](_0x35909d);};}exports['index']=function(_0xee938c,_0x27422b){var _0xf9611d={},_0x1efb1d={},_0x5743fe={'count':0x0,'rows':[]};var _0x5edae3=_[_0x2e34('0x26')](db[_0x2e34('0x27')][_0x2e34('0x28')],function(_0x372e7b){return{'name':_0x372e7b[_0x2e34('0x29')],'type':_0x372e7b['type']['key']};});_0x1efb1d[_0x2e34('0x2a')]=_[_0x2e34('0x26')](_0x5edae3,_0x2e34('0x24'));_0x1efb1d['query']=_[_0x2e34('0x2b')](_0xee938c[_0x2e34('0x2c')]);_0x1efb1d[_0x2e34('0x2d')]=_[_0x2e34('0x2e')](_0x1efb1d[_0x2e34('0x2a')],_0x1efb1d[_0x2e34('0x2c')]);_0xf9611d[_0x2e34('0x2f')]=_[_0x2e34('0x2e')](_0x1efb1d[_0x2e34('0x2a')],qs[_0x2e34('0x30')](_0xee938c[_0x2e34('0x2c')]['fields']));_0xf9611d['attributes']=_0xf9611d[_0x2e34('0x2f')][_0x2e34('0x31')]?_0xf9611d[_0x2e34('0x2f')]:_0x1efb1d[_0x2e34('0x2a')];if(!_0xee938c[_0x2e34('0x2c')][_0x2e34('0x32')](_0x2e34('0x33'))){_0xf9611d[_0x2e34('0x1a')]=qs[_0x2e34('0x1a')](_0xee938c[_0x2e34('0x2c')][_0x2e34('0x1a')]);_0xf9611d[_0x2e34('0x17')]=qs[_0x2e34('0x17')](_0xee938c['query']['offset']);}_0xf9611d[_0x2e34('0x34')]=qs[_0x2e34('0x35')](_0xee938c[_0x2e34('0x2c')][_0x2e34('0x35')]);_0xf9611d[_0x2e34('0x36')]=qs[_0x2e34('0x2d')](_[_0x2e34('0x37')](_0xee938c[_0x2e34('0x2c')],_0x1efb1d[_0x2e34('0x2d')]),_0x5edae3);if(_0xee938c[_0x2e34('0x2c')][_0x2e34('0x38')]){_0xf9611d[_0x2e34('0x36')]=_[_0x2e34('0x39')](_0xf9611d[_0x2e34('0x36')],{'$or':_[_0x2e34('0x26')](_0x5edae3,function(_0xcbf3f8){if(_0xcbf3f8[_0x2e34('0x3a')]!==_0x2e34('0x3b')){var _0x5dde2c={};_0x5dde2c[_0xcbf3f8[_0x2e34('0x24')]]={'$like':'%'+_0xee938c['query'][_0x2e34('0x38')]+'%'};return _0x5dde2c;}})});}_0xf9611d=_['merge']({},_0xf9611d,_0xee938c[_0x2e34('0x3c')]);var _0x3ae9b4={'where':_0xf9611d['where']};return db[_0x2e34('0x27')][_0x2e34('0x19')](_0x3ae9b4)[_0x2e34('0x20')](function(_0xfd0c1e){_0x5743fe['count']=_0xfd0c1e;if(_0xee938c[_0x2e34('0x2c')][_0x2e34('0x3d')]){_0xf9611d[_0x2e34('0x3e')]=[{'all':!![]}];}return db[_0x2e34('0x27')]['findAll'](_0xf9611d);})[_0x2e34('0x20')](function(_0x2e9c9c){_0x5743fe[_0x2e34('0x3f')]=_0x2e9c9c;return _0x5743fe;})['then'](respondWithFilteredResult(_0x27422b,_0xf9611d))[_0x2e34('0x40')](handleError(_0x27422b,null));};exports[_0x2e34('0x41')]=function(_0x45665c,_0x4d9685){var _0x51b306={'raw':!![],'where':{'id':_0x45665c['params']['id']}},_0x5ad312={};_0x5ad312['model']=_[_0x2e34('0x2b')](db['Attachment'][_0x2e34('0x28')]);_0x5ad312[_0x2e34('0x2c')]=_[_0x2e34('0x2b')](_0x45665c[_0x2e34('0x2c')]);_0x5ad312[_0x2e34('0x2d')]=_[_0x2e34('0x2e')](_0x5ad312[_0x2e34('0x2a')],_0x5ad312[_0x2e34('0x2c')]);_0x51b306[_0x2e34('0x2f')]=_['intersection'](_0x5ad312['model'],qs[_0x2e34('0x30')](_0x45665c[_0x2e34('0x2c')][_0x2e34('0x30')]));_0x51b306[_0x2e34('0x2f')]=_0x51b306[_0x2e34('0x2f')][_0x2e34('0x31')]?_0x51b306[_0x2e34('0x2f')]:_0x5ad312[_0x2e34('0x2a')];if(_0x45665c[_0x2e34('0x2c')][_0x2e34('0x3d')]){_0x51b306[_0x2e34('0x3e')]=[{'all':!![]}];}_0x51b306=_['merge']({},_0x51b306,_0x45665c[_0x2e34('0x3c')]);return db[_0x2e34('0x27')]['find'](_0x51b306)[_0x2e34('0x20')](handleEntityNotFound(_0x4d9685,null))[_0x2e34('0x20')](respondWithResult(_0x4d9685,null))[_0x2e34('0x40')](handleError(_0x4d9685,null));};exports[_0x2e34('0x42')]=function(_0x4deccf,_0xefe9d0){var _0x1d9b8d={'where':{'id':_0x4deccf[_0x2e34('0x43')]['id']}},_0x821c13={};_0x821c13[_0x2e34('0x2a')]=_[_0x2e34('0x2b')](db[_0x2e34('0x27')][_0x2e34('0x28')]);_0x1d9b8d[_0x2e34('0x2f')]=_[_0x2e34('0x2e')](_0x821c13['model'],qs[_0x2e34('0x30')](_0x4deccf[_0x2e34('0x2c')][_0x2e34('0x30')]));_0x1d9b8d[_0x2e34('0x2f')]=_0x1d9b8d[_0x2e34('0x2f')][_0x2e34('0x31')]?_0x1d9b8d[_0x2e34('0x2f')]:_0x821c13[_0x2e34('0x2a')];if(_0x4deccf['query'][_0x2e34('0x3d')]){_0x1d9b8d['include']=[{'all':!![]}];}_0x1d9b8d=_[_0x2e34('0x39')]({},_0x1d9b8d,_0x4deccf[_0x2e34('0x3c')]);return db[_0x2e34('0x27')][_0x2e34('0x44')](_0x1d9b8d)[_0x2e34('0x20')](handleEntityNotFound(_0xefe9d0,null))[_0x2e34('0x20')](function(_0x1eb4e2){if(_0x1eb4e2){var _0x564b33=_0x1eb4e2['get']({'plain':!![]});_0x564b33=qs[_0x2e34('0x45')](_0x564b33,['id',_0x2e34('0x46'),_0x2e34('0x47')]);_0x4deccf[_0x2e34('0x48')]=_['omit'](_0x4deccf[_0x2e34('0x48')],['id','createdAt',_0x2e34('0x47')]);return db[_0x2e34('0x27')][_0x2e34('0x49')](_['merge'](_0x564b33,_0x4deccf[_0x2e34('0x48')]),{'include':_0x4deccf['query'][_0x2e34('0x3d')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0xefe9d0,0xc9))[_0x2e34('0x40')](handleError(_0xefe9d0,null));};exports[_0x2e34('0x1f')]=function(_0x2faee6,_0x48e91b){if(_0x2faee6['body']['id']){delete _0x2faee6['body']['id'];}return db['Attachment'][_0x2e34('0x44')]({'where':{'id':_0x2faee6[_0x2e34('0x43')]['id']}})[_0x2e34('0x20')](handleEntityNotFound(_0x48e91b,null))['then'](saveUpdates(_0x2faee6['body'],null))['then'](respondWithResult(_0x48e91b,null))[_0x2e34('0x40')](handleError(_0x48e91b,null));};exports[_0x2e34('0x21')]=function(_0x5b364a,_0x341bb8){return db['Attachment']['find']({'where':{'id':_0x5b364a[_0x2e34('0x43')]['id']}})['then'](handleEntityNotFound(_0x341bb8,null))[_0x2e34('0x20')](removeEntity(_0x341bb8,null))['catch'](handleError(_0x341bb8,null));};exports[_0x2e34('0x49')]=function(_0x2b4845,_0x4690e5,_0x588af1){_0x2b4845['body'][_0x2e34('0x24')]=_0x2b4845['file'][_0x2e34('0x4a')];_0x2b4845[_0x2e34('0x48')][_0x2e34('0x4b')]=_0x2b4845[_0x2e34('0x4c')][_0x2e34('0x4d')];_0x2b4845[_0x2e34('0x48')][_0x2e34('0x3a')]=_0x2b4845[_0x2e34('0x4c')][_0x2e34('0x4e')];return db[_0x2e34('0x27')][_0x2e34('0x49')](_0x2b4845[_0x2e34('0x48')])['then'](respondWithResult(_0x4690e5,0xc9))[_0x2e34('0x40')](handleError(_0x4690e5,null));};exports[_0x2e34('0x4f')]=function(_0x2ef8aa,_0x108a8d,_0x1a5fab){return db['Attachment'][_0x2e34('0x50')]({'where':{'id':_0x2ef8aa[_0x2e34('0x43')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x108a8d,null))[_0x2e34('0x20')](function(_0x22ce4d){if(_0x22ce4d){var _0x58e3cb=_0x22ce4d[_0x2e34('0x51')]!==null;var _0x1fd2a1=path[_0x2e34('0x52')](config[_0x2e34('0x53')],_0x2e34('0x54'));if(_0x58e3cb){_0x1fd2a1=path[_0x2e34('0x52')](_0x1fd2a1,_0x2e34('0x55'));}var _0x177d78=path[_0x2e34('0x52')](_0x1fd2a1,_0x22ce4d[_0x2e34('0x4b')]);return _0x108a8d[_0x2e34('0x4f')](_0x177d78);}})[_0x2e34('0x40')](handleError(_0x108a8d,null));};