81 lines
1.8 KiB
JavaScript
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);
|
|
}
|
|
};
|