Skip to content

Commit 0ef0fb3

Browse files
committed
♻️ remove wrapper and use promisify
1 parent 250de6f commit 0ef0fb3

2 files changed

Lines changed: 29 additions & 32 deletions

File tree

lib/api/bucketGet.js

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const { promisify } = require('util');
12
const querystring = require('querystring');
23
const { errors, errorInstances, versioning, s3middleware } = require('arsenal');
34
const constants = require('../../constants');
@@ -252,22 +253,6 @@ function handleResult(listParams, requestMaxKeys, encoding, authInfo, bucketName
252253
return res;
253254
}
254255

255-
const validateBucket = (params, denials, log) => new Promise(resolve => {
256-
standardMetadataValidateBucket(params, denials, log, (error, bucket) => {
257-
resolve({ error, bucket });
258-
});
259-
});
260-
261-
const getObjectListing = (bucketName, listParams, log) => new Promise((resolve, reject) => {
262-
services.getObjectListing(bucketName, listParams, log, (err, list) => {
263-
if (err) {
264-
return reject(err);
265-
}
266-
267-
return resolve(list);
268-
});
269-
});
270-
271256
/**
272257
* bucketGet - Return list of objects in bucket, supports v1 & v2
273258
* @param {AuthInfo} authInfo - Instance of AuthInfo class with
@@ -276,7 +261,7 @@ const getObjectListing = (bucketName, listParams, log) => new Promise((resolve,
276261
* @param {function} log - Werelogs request logger
277262
* @param {function} callback - callback to respond to http request
278263
* with either error code or xml response body
279-
* @return {undefined}
264+
* @return {Promise<object>} - object containing xml and additionalResHeaders
280265
*/
281266
async function bucketGet(authInfo, request, log) {
282267
const params = request.query;
@@ -339,7 +324,16 @@ async function bucketGet(authInfo, request, log) {
339324
listParams.marker = params.marker;
340325
}
341326

342-
const { error, bucket } = await validateBucket(metadataValParams, request.actionImplicitDenies, log);
327+
let error;
328+
let bucket;
329+
330+
try {
331+
const standardMetadataValidateBucketPromised = promisify(standardMetadataValidateBucket);
332+
bucket = await standardMetadataValidateBucketPromised(metadataValParams, request.actionImplicitDenies, log);
333+
} catch (err) {
334+
error = err;
335+
}
336+
343337
const corsHeaders = collectCorsHeaders(request.headers.origin, request.method, bucket);
344338

345339
if (error) {
@@ -369,7 +363,7 @@ async function bucketGet(authInfo, request, log) {
369363

370364
let list;
371365
try {
372-
list = await getObjectListing(bucketName, listParams, log);
366+
list = await promisify(services.getObjectListing)(bucketName, listParams, log);
373367
} catch (err) {
374368
log.debug('error processing request', { error: err });
375369
monitoring.promMetrics('GET', bucketName, err.code, 'listBucket');
@@ -391,7 +385,7 @@ module.exports = {
391385

392386
bucketGet(...argsWithoutCallback)
393387
.then(result => callback(null, ...result))
394-
.catch(callback);
388+
.catch(err => callback(err, null, err.additionalResHeaders));
395389
},
396390
};
397391

lib/api/objectGetLegalHold.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const { promisify } = require('util');
12
const { errors, errorInstances, s3middleware } = require('arsenal');
23

34
const { decodeVersionId, getVersionIdResHeader }
@@ -38,18 +39,20 @@ async function objectGetLegalHold(authInfo, request, log) {
3839
request,
3940
};
4041

41-
const { bucket, objectMD } = await new Promise((resolve, reject) => {
42-
standardMetadataValidateBucketAndObj(
43-
metadataValParams, request.actionImplicitDenies, log,
44-
(err, bucket, objectMD) => {
45-
if (err) {
46-
log.trace('request authorization failed', { method: 'objectGetLegalHold', error: err });
47-
return reject(err);
48-
}
49-
return resolve({ bucket, objectMD });
50-
});
51-
});
42+
let bucket, objectMD;
43+
44+
try {
45+
const standardMetadataValidateBucketAndObjPromised = promisify(standardMetadataValidateBucketAndObj);
5246

47+
({ bucket, objectMD } = await standardMetadataValidateBucketAndObjPromised(
48+
metadataValParams,
49+
request.actionImplicitDenies,
50+
log,
51+
));
52+
} catch (err) {
53+
log.trace('request authorization failed', { method: 'objectGetLegalHold', error: err });
54+
throw err;
55+
}
5356

5457
if (!objectMD) {
5558
const err = versionId ? errors.NoSuchVersion : errors.NoSuchKey;
@@ -101,5 +104,5 @@ module.exports = (...args) => {
101104

102105
objectGetLegalHold(...argsWithoutCallback)
103106
.then(result => callback(null, ...result))
104-
.catch(callback);
107+
.catch(err => callback(err, null, err.additionalResHeaders));
105108
};

0 commit comments

Comments
 (0)