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

81 lines
1.8 KiB
JavaScript

// ENVIRONMENT
require('dotenv').config();
// DATABASE
const { PrismaClient : CMSClient } = require("../../prisma/clients/cms");
const prisma = new CMSClient();
// CONSTANTS
const { badRequestResponse, successResponse } = require("../res/responses.js");
const { localTime } = require("../services/time.services.js");
exports.setupUserToken = async (req, res) => {
try {
const { userID, token } = req.body;
if (!userID || !token) {
throw new Error("Invalid user ID or token!");
}
await prisma.$transaction(async (tx) => {
await tx.usersToken.deleteMany({
where: {
OR: [
{ UserID_UT: userID },
{ Token_UT: token },
],
},
});
await tx.usersToken.create({
data: {
UserID_UT: userID,
Token_UT: token,
CreatedAt_UT: localTime(new Date()),
UpdatedAt_UT: localTime(new Date()),
},
});
});
return successResponse(res, "User token setup successfully!", null);
} catch (err) {
return badRequestResponse(res, "Error connecting to API", err);
}
};
exports.getAllUsers = async (req, res) => {
try {
const users = await prisma.usersToken.findMany({
orderBy: {
UserID_UT: 'asc'
}
});
return successResponse(res, "Users retrieved successfully!", users);
} catch (err) {
return badRequestResponse(res, "Error connecting to API", err);
}
};
exports.deleteUser = async (req, res) => {
try {
const { userID } = req.body;
if (!userID) {
throw new Error("Invalid user ID!");
}
await prisma.usersToken.delete({
where: {
UserID_UT: userID
}
});
return successResponse(res, "User deleted successfully!", null);
} catch (err) {
return badRequestResponse(res, "Error connecting to API", err);
}
};