feat(metadata): implement MetadataRequest and supporting classes for file metadata extraction and response formatting

This commit is contained in:
buzz-lightsnack-2007 2025-04-21 21:34:08 +08:00
parent 72769a3ef4
commit 74fb118aa4
4 changed files with 126 additions and 0 deletions

View file

@ -0,0 +1,24 @@
const CustomErrors = require(`../../utilities/errors`);
const Messaging = require(`../../utilities/messaging`);
const MetadataExtractor = require(`../../file-management/analyze`);
const Cleaner = require(`../response/simple-data`);
const MetadataRequest = class Request {
static analyze (REQUEST, RESPONSE) {
// Check if the file is valid.
if (REQUEST.file) {
// Get the file information.
const fileInfo = new MetadataExtractor(REQUEST.file).extract([ `originalname`, `mimetype`, `size`]);
const cleanedData = (new Cleaner(fileInfo)).format();
RESPONSE.status(200).json(cleanedData);
} else {
// If the file is not valid, return an error.
const ERROR = new CustomErrors.Data.Missing(REQUEST.file);
Messaging.exception(RESPONSE, ERROR);
};
};
}
module.exports = MetadataRequest;