Built motion from commit 9d0783e6.|2.6.13
[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 _0xed9e=['set','Content-Range','apply','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','Attachment','findAll','rows','catch','show','length','include','options','params','get','omit','updatedAt','body','createdAt','create','find','file','originalname','basename','filename','type','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count'];(function(_0x3fca6b,_0x2414eb){var _0x1fd4b5=function(_0x4331c8){while(--_0x4331c8){_0x3fca6b['push'](_0x3fca6b['shift']());}};_0x1fd4b5(++_0x2414eb);}(_0xed9e,0xf5));var _0xeed9=function(_0x4c06a3,_0x1e6b6f){_0x4c06a3=_0x4c06a3-0x0;var _0x7ff53c=_0xed9e[_0x4c06a3];return _0x7ff53c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xeed9('0x0'));var jsonpatch=require(_0xeed9('0x1'));var rp=require(_0xeed9('0x2'));var moment=require('moment');var BPromise=require(_0xeed9('0x3'));var Mustache=require(_0xeed9('0x4'));var util=require('util');var path=require(_0xeed9('0x5'));var sox=require(_0xeed9('0x6'));var csv=require(_0xeed9('0x7'));var ejs=require(_0xeed9('0x8'));var fs=require('fs');var fs_extra=require(_0xeed9('0x9'));var _=require(_0xeed9('0xa'));var squel=require(_0xeed9('0xb'));var crypto=require(_0xeed9('0xc'));var jsforce=require(_0xeed9('0xd'));var deskjs=require(_0xeed9('0xe'));var toCsv=require(_0xeed9('0x7'));var querystring=require('querystring');var Papa=require(_0xeed9('0xf'));var Redis=require('ioredis');var authService=require(_0xeed9('0x10'));var qs=require(_0xeed9('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xeed9('0x12'))(_0xeed9('0x13'));var utils=require(_0xeed9('0x14'));var config=require(_0xeed9('0x15'));var licenseUtil=require(_0xeed9('0x16'));var db=require(_0xeed9('0x17'))['db'];function respondWithStatusCode(_0x4dcaf9,_0x267b56){_0x267b56=_0x267b56||0xcc;return function(_0x2b5966){if(_0x2b5966){return _0x4dcaf9['sendStatus'](_0x267b56);}return _0x4dcaf9[_0xeed9('0x18')](_0x267b56)[_0xeed9('0x19')]();};}function respondWithResult(_0x5b205c,_0x5e4baf){_0x5e4baf=_0x5e4baf||0xc8;return function(_0x4d3224){if(_0x4d3224){return _0x5b205c[_0xeed9('0x18')](_0x5e4baf)[_0xeed9('0x1a')](_0x4d3224);}};}function respondWithFilteredResult(_0x41e6bf,_0x28b483){return function(_0x1f7e27){if(_0x1f7e27){var _0x5ee5ae=typeof _0x28b483[_0xeed9('0x1b')]==='undefined'&&typeof _0x28b483[_0xeed9('0x1c')]===_0xeed9('0x1d');var _0x4b3db6=_0x1f7e27[_0xeed9('0x1e')];var _0x2887a7=_0x5ee5ae?0x0:_0x28b483[_0xeed9('0x1b')];var _0x3b623b=_0x5ee5ae?_0x1f7e27[_0xeed9('0x1e')]:_0x28b483[_0xeed9('0x1b')]+_0x28b483[_0xeed9('0x1c')];var _0x53c4e4;if(_0x3b623b>=_0x4b3db6){_0x3b623b=_0x4b3db6;_0x53c4e4=0xc8;}else{_0x53c4e4=0xce;}_0x41e6bf['status'](_0x53c4e4);return _0x41e6bf[_0xeed9('0x1f')](_0xeed9('0x20'),_0x2887a7+'-'+_0x3b623b+'/'+_0x4b3db6)[_0xeed9('0x1a')](_0x1f7e27);}return null;};}function patchUpdates(_0x5a49de){return function(_0x1713f5){try{jsonpatch[_0xeed9('0x21')](_0x1713f5,_0x5a49de,!![]);}catch(_0x107d5e){return BPromise['reject'](_0x107d5e);}return _0x1713f5[_0xeed9('0x22')]();};}function saveUpdates(_0x209426,_0x30b56e){return function(_0x49fd35){if(_0x49fd35){return _0x49fd35[_0xeed9('0x23')](_0x209426)[_0xeed9('0x24')](function(_0x4f7f27){return _0x4f7f27;});}return null;};}function removeEntity(_0xe46346,_0x2dff0){return function(_0x5b6069){if(_0x5b6069){return _0x5b6069[_0xeed9('0x25')]()[_0xeed9('0x24')](function(){_0xe46346[_0xeed9('0x18')](0xcc)[_0xeed9('0x19')]();});}};}function handleEntityNotFound(_0x247d1a,_0xc40b1d){return function(_0xe40997){if(!_0xe40997){_0x247d1a[_0xeed9('0x26')](0x194);}return _0xe40997;};}function handleError(_0x50b074,_0x5435e1){_0x5435e1=_0x5435e1||0x1f4;return function(_0x43fed1){logger[_0xeed9('0x27')](_0x43fed1[_0xeed9('0x28')]);if(_0x43fed1[_0xeed9('0x29')]){delete _0x43fed1[_0xeed9('0x29')];}_0x50b074['status'](_0x5435e1)[_0xeed9('0x2a')](_0x43fed1);};}exports[_0xeed9('0x2b')]=function(_0x3dcc33,_0x2b0dec){var _0x113358={},_0x4ad7ce={},_0x3746aa={'count':0x0,'rows':[]};var _0x27cc14=_[_0xeed9('0x2c')](db['Attachment'][_0xeed9('0x2d')],function(_0x4f9fec){return{'name':_0x4f9fec[_0xeed9('0x2e')],'type':_0x4f9fec['type'][_0xeed9('0x2f')]};});_0x4ad7ce[_0xeed9('0x30')]=_['map'](_0x27cc14,'name');_0x4ad7ce[_0xeed9('0x31')]=_[_0xeed9('0x32')](_0x3dcc33[_0xeed9('0x31')]);_0x4ad7ce[_0xeed9('0x33')]=_['intersection'](_0x4ad7ce[_0xeed9('0x30')],_0x4ad7ce[_0xeed9('0x31')]);_0x113358[_0xeed9('0x34')]=_[_0xeed9('0x35')](_0x4ad7ce[_0xeed9('0x30')],qs['fields'](_0x3dcc33[_0xeed9('0x31')][_0xeed9('0x36')]));_0x113358[_0xeed9('0x34')]=_0x113358[_0xeed9('0x34')]['length']?_0x113358['attributes']:_0x4ad7ce[_0xeed9('0x30')];if(!_0x3dcc33[_0xeed9('0x31')]['hasOwnProperty']('nolimit')){_0x113358['limit']=qs[_0xeed9('0x1c')](_0x3dcc33[_0xeed9('0x31')][_0xeed9('0x1c')]);_0x113358['offset']=qs[_0xeed9('0x1b')](_0x3dcc33['query'][_0xeed9('0x1b')]);}_0x113358[_0xeed9('0x37')]=qs[_0xeed9('0x38')](_0x3dcc33[_0xeed9('0x31')]['sort']);_0x113358['where']=qs[_0xeed9('0x33')](_[_0xeed9('0x39')](_0x3dcc33['query'],_0x4ad7ce['filters']),_0x27cc14);if(_0x3dcc33[_0xeed9('0x31')][_0xeed9('0x3a')]){_0x113358[_0xeed9('0x3b')]=_[_0xeed9('0x3c')](_0x113358[_0xeed9('0x3b')],{'$or':_[_0xeed9('0x2c')](_0x27cc14,function(_0xa8a1b7){if(_0xa8a1b7['type']!==_0xeed9('0x3d')){var _0x5efa6f={};_0x5efa6f[_0xa8a1b7[_0xeed9('0x29')]]={'$like':'%'+_0x3dcc33[_0xeed9('0x31')][_0xeed9('0x3a')]+'%'};return _0x5efa6f;}})});}_0x113358=_[_0xeed9('0x3c')]({},_0x113358,_0x3dcc33['options']);var _0x39294c={'where':_0x113358[_0xeed9('0x3b')]};return db['Attachment'][_0xeed9('0x1e')](_0x39294c)[_0xeed9('0x24')](function(_0x8880a8){_0x3746aa['count']=_0x8880a8;if(_0x3dcc33['query'][_0xeed9('0x3e')]){_0x113358['include']=[{'all':!![]}];}return db[_0xeed9('0x3f')][_0xeed9('0x40')](_0x113358);})[_0xeed9('0x24')](function(_0x3c73c5){_0x3746aa[_0xeed9('0x41')]=_0x3c73c5;return _0x3746aa;})[_0xeed9('0x24')](respondWithFilteredResult(_0x2b0dec,_0x113358))[_0xeed9('0x42')](handleError(_0x2b0dec,null));};exports[_0xeed9('0x43')]=function(_0x1467c3,_0x178bf2){var _0x1ad890={'raw':!![],'where':{'id':_0x1467c3['params']['id']}},_0x4f7f95={};_0x4f7f95['model']=_['keys'](db['Attachment'][_0xeed9('0x2d')]);_0x4f7f95[_0xeed9('0x31')]=_[_0xeed9('0x32')](_0x1467c3[_0xeed9('0x31')]);_0x4f7f95[_0xeed9('0x33')]=_[_0xeed9('0x35')](_0x4f7f95[_0xeed9('0x30')],_0x4f7f95['query']);_0x1ad890[_0xeed9('0x34')]=_[_0xeed9('0x35')](_0x4f7f95[_0xeed9('0x30')],qs[_0xeed9('0x36')](_0x1467c3[_0xeed9('0x31')][_0xeed9('0x36')]));_0x1ad890[_0xeed9('0x34')]=_0x1ad890[_0xeed9('0x34')][_0xeed9('0x44')]?_0x1ad890[_0xeed9('0x34')]:_0x4f7f95['model'];if(_0x1467c3[_0xeed9('0x31')]['includeAll']){_0x1ad890[_0xeed9('0x45')]=[{'all':!![]}];}_0x1ad890=_[_0xeed9('0x3c')]({},_0x1ad890,_0x1467c3[_0xeed9('0x46')]);return db[_0xeed9('0x3f')]['find'](_0x1ad890)[_0xeed9('0x24')](handleEntityNotFound(_0x178bf2,null))[_0xeed9('0x24')](respondWithResult(_0x178bf2,null))['catch'](handleError(_0x178bf2,null));};exports['clone']=function(_0x3f3584,_0x4a229f){var _0x2dbd59={'where':{'id':_0x3f3584[_0xeed9('0x47')]['id']}},_0x478502={};_0x478502[_0xeed9('0x30')]=_[_0xeed9('0x32')](db[_0xeed9('0x3f')][_0xeed9('0x2d')]);_0x2dbd59[_0xeed9('0x34')]=_[_0xeed9('0x35')](_0x478502[_0xeed9('0x30')],qs['fields'](_0x3f3584[_0xeed9('0x31')]['fields']));_0x2dbd59[_0xeed9('0x34')]=_0x2dbd59['attributes'][_0xeed9('0x44')]?_0x2dbd59[_0xeed9('0x34')]:_0x478502[_0xeed9('0x30')];if(_0x3f3584[_0xeed9('0x31')]['includeAll']){_0x2dbd59['include']=[{'all':!![]}];}_0x2dbd59=_[_0xeed9('0x3c')]({},_0x2dbd59,_0x3f3584[_0xeed9('0x46')]);return db[_0xeed9('0x3f')]['find'](_0x2dbd59)[_0xeed9('0x24')](handleEntityNotFound(_0x4a229f,null))['then'](function(_0x3975e3){if(_0x3975e3){var _0x201ba8=_0x3975e3[_0xeed9('0x48')]({'plain':!![]});_0x201ba8=qs[_0xeed9('0x49')](_0x201ba8,['id','createdAt',_0xeed9('0x4a')]);_0x3f3584[_0xeed9('0x4b')]=_['omit'](_0x3f3584[_0xeed9('0x4b')],['id',_0xeed9('0x4c'),'updatedAt']);return db['Attachment'][_0xeed9('0x4d')](_[_0xeed9('0x3c')](_0x201ba8,_0x3f3584['body']),{'include':_0x3f3584[_0xeed9('0x31')][_0xeed9('0x3e')]?[{'all':!![]}]:undefined});}})[_0xeed9('0x24')](respondWithResult(_0x4a229f,0xc9))[_0xeed9('0x42')](handleError(_0x4a229f,null));};exports[_0xeed9('0x23')]=function(_0x5628bb,_0x32b3be){if(_0x5628bb['body']['id']){delete _0x5628bb[_0xeed9('0x4b')]['id'];}return db[_0xeed9('0x3f')][_0xeed9('0x4e')]({'where':{'id':_0x5628bb[_0xeed9('0x47')]['id']}})[_0xeed9('0x24')](handleEntityNotFound(_0x32b3be,null))['then'](saveUpdates(_0x5628bb[_0xeed9('0x4b')],null))[_0xeed9('0x24')](respondWithResult(_0x32b3be,null))[_0xeed9('0x42')](handleError(_0x32b3be,null));};exports[_0xeed9('0x25')]=function(_0x12f009,_0x2b0fe3){return db[_0xeed9('0x3f')]['find']({'where':{'id':_0x12f009[_0xeed9('0x47')]['id']}})['then'](handleEntityNotFound(_0x2b0fe3,null))[_0xeed9('0x24')](removeEntity(_0x2b0fe3,null))[_0xeed9('0x42')](handleError(_0x2b0fe3,null));};exports['create']=function(_0x52836e,_0x57cf6d,_0x33f99a){_0x52836e[_0xeed9('0x4b')][_0xeed9('0x29')]=_0x52836e[_0xeed9('0x4f')][_0xeed9('0x50')];_0x52836e[_0xeed9('0x4b')][_0xeed9('0x51')]=_0x52836e['file'][_0xeed9('0x52')];_0x52836e[_0xeed9('0x4b')][_0xeed9('0x53')]=_0x52836e[_0xeed9('0x4f')][_0xeed9('0x54')];return db[_0xeed9('0x3f')][_0xeed9('0x4d')](_0x52836e[_0xeed9('0x4b')])[_0xeed9('0x24')](respondWithResult(_0x57cf6d,0xc9))['catch'](handleError(_0x57cf6d,null));};exports[_0xeed9('0x55')]=function(_0x2515a0,_0x195d3e,_0x1972d5){return db['Attachment'][_0xeed9('0x56')]({'where':{'id':_0x2515a0['params']['id']},'raw':!![]})[_0xeed9('0x24')](handleEntityNotFound(_0x195d3e,null))['then'](function(_0x4d1d4f){if(_0x4d1d4f){var _0x1fc151=_0x4d1d4f[_0xeed9('0x57')]!==null;var _0x4e24a1=path[_0xeed9('0x58')](config[_0xeed9('0x59')],_0xeed9('0x5a'));if(_0x1fc151){_0x4e24a1=path[_0xeed9('0x58')](_0x4e24a1,_0xeed9('0x5b'));}var _0xd454ee=path[_0xeed9('0x58')](_0x4e24a1,_0x4d1d4f['basename']);return _0x195d3e[_0xeed9('0x55')](_0xd454ee);}})[_0xeed9('0x42')](handleError(_0x195d3e,null));};