csa-backend-test/app/controllers/minio.controller.js

90 lines
2.5 KiB
JavaScript

// ENVIRONMENT
require('dotenv').config();
const { badRequestResponse, successResponse } = require("../res/responses.js");
const {
deleteBucket,
createBucket,
getAllBuckets,
renameBucket,
setBucketPolicy
} = require('../services/minio.services.js');
// ================= CONTROLLERS ================= //
exports.deleteOneBucket = async (req, res) => {
try {
const { bucketName } = req.body;
if (!bucketName) {
return badRequestResponse(res, "bucketName is required");
}
await deleteBucket(bucketName);
return successResponse(res, "Bucket deleted successfully", null);
} catch (err) {
return badRequestResponse(res, "Internal Server Error", err.message || err);
}
};
exports.createOneBucket = async (req, res) => {
try {
const { bucketName } = req.body;
if (!bucketName) {
return badRequestResponse(res, "bucketName is required");
}
await createBucket(bucketName);
return successResponse(res, "Bucket created successfully", null);
} catch (err) {
return badRequestResponse(res, "Internal Server Error", err.message || err);
}
};
exports.getAllBuckets = async (req, res) => {
try {
const buckets = await getAllBuckets();
return successResponse(res, "Buckets fetched successfully", buckets);
} catch (err) {
return badRequestResponse(res, "Internal Server Error", err.message || err);
}
};
exports.updateBucket = async (req, res) => {
try {
const { oldBucket, newBucket, policy } = req.body;
if (!oldBucket || !newBucket) {
return badRequestResponse(res, "oldBucket and newBucket are required");
}
await renameBucket(oldBucket, newBucket);
if (policy) {
await setBucketPolicy(newBucket, policy);
}
return successResponse(res, "Bucket updated successfully", { oldBucket, newBucket, policy });
} catch (err) {
return badRequestResponse(res, "Internal Server Error", err.message || err);
}
};
exports.updateBucketPolicy = async (req, res) => {
try {
const { bucketName, policy } = req.body;
if (!bucketName || !policy) {
return badRequestResponse(res, "bucketName and policy are required");
}
await setBucketPolicy(bucketName, policy);
return successResponse(res, "Bucket policy updated successfully", { bucketName, policy });
} catch (err) {
return badRequestResponse(res, "Internal Server Error", err.message || err);
}
};