mirror of
https://github.com/Discreetly/server.git
synced 2026-01-09 12:37:58 -05:00
Refactor endpoint initialization code (#47)
- Refactored code in the `initEndpoints` function to improve readability and organization. - Consolidated duplicate code blocks and removed unnecessary setTimeout calls. - Updated logging and error handling for better debugging and error messages. - Added comments to explain the purpose of certain code blocks.
This commit is contained in:
@@ -45,10 +45,7 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
.then((room: RoomI) => {
|
||||
if (!room) {
|
||||
// This is set as a timeout to prevent someone from trying to brute force room ids
|
||||
setTimeout(
|
||||
() => res.status(500).json({ error: 'Internal Server Error' }),
|
||||
1000
|
||||
);
|
||||
setTimeout(() => res.status(500).json({ error: 'Internal Server Error' }), 1000);
|
||||
} else {
|
||||
const {
|
||||
roomId,
|
||||
@@ -93,11 +90,7 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
['/rooms/:idc', '/api/rooms/:idc'],
|
||||
asyncHandler(async (req: Request, res: Response) => {
|
||||
try {
|
||||
pp(
|
||||
String(
|
||||
'Express: fetching rooms by identityCommitment ' + req.params.idc
|
||||
)
|
||||
);
|
||||
pp(String('Express: fetching rooms by identityCommitment ' + req.params.idc));
|
||||
res.status(200).json(await getRoomsByIdentity(req.params.idc));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
@@ -117,9 +110,7 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
const parsedBody: JoinData = req.body as JoinData;
|
||||
|
||||
if (!parsedBody.code || !parsedBody.idc) {
|
||||
res
|
||||
.status(400)
|
||||
.json({ message: '{code: string, idc: string} expected' });
|
||||
res.status(400).json({ message: '{code: string, idc: string} expected' });
|
||||
}
|
||||
const { code, idc } = parsedBody;
|
||||
console.debug('Invite Code:', code);
|
||||
@@ -223,7 +214,7 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
})
|
||||
.then((messages) => {
|
||||
messages.map((message: MessageI) => {
|
||||
message.timeStamp = new Date(message.timeStamp as Date).toString();
|
||||
message.timeStamp = new Date(message.timeStamp as Date).getTime();
|
||||
message.proof = JSON.parse(message.proof as string) as RLNFullProof;
|
||||
});
|
||||
pp('Express: fetching messages for room ' + id);
|
||||
@@ -245,79 +236,73 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
};
|
||||
const query = all ? undefined : { where: { roomId: { in: rooms } } };
|
||||
const codes = genClaimCodeArray(numCodes);
|
||||
return await prisma.rooms.findMany(query).then((rooms) => {
|
||||
const roomIds = rooms.map((room) => room.id);
|
||||
const createCodes = codes.map(async (code, index) => {
|
||||
return await prisma.claimCodes.create({
|
||||
data: {
|
||||
claimcode: code.claimcode,
|
||||
claimed: false,
|
||||
roomIds: roomIds,
|
||||
rooms: {
|
||||
connect: {
|
||||
roomId: rooms[index].roomId ? rooms[index].roomId : undefined
|
||||
}
|
||||
return await prisma.rooms.findMany(query).then((rooms) => {
|
||||
const roomIds = rooms.map((room) => room.id);
|
||||
const createCodes = codes.map(async (code, index) => {
|
||||
return await prisma.claimCodes.create({
|
||||
data: {
|
||||
claimcode: code.claimcode,
|
||||
claimed: false,
|
||||
roomIds: roomIds,
|
||||
rooms: {
|
||||
connect: {
|
||||
roomId: rooms[index].roomId ? rooms[index].roomId : undefined
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return Promise.all(createCodes)
|
||||
.then(() => {
|
||||
res
|
||||
.status(200)
|
||||
.json({ message: 'Claim codes added successfully' });
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Internal Server Error' });
|
||||
});
|
||||
});
|
||||
return Promise.all(createCodes)
|
||||
.then(() => {
|
||||
res.status(200).json({ message: 'Claim codes added successfully' });
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Internal Server Error' });
|
||||
});
|
||||
});
|
||||
})
|
||||
);
|
||||
app.post(
|
||||
['/room/:roomId/addcode', '/api/room/:roomId/addcode'],
|
||||
adminAuth,
|
||||
(req, res) => {
|
||||
const { roomId } = req.params;
|
||||
const { numCodes } = req.body as { numCodes: number };
|
||||
const codes = genClaimCodeArray(numCodes);
|
||||
app.post(['/room/:roomId/addcode', '/api/room/:roomId/addcode'], adminAuth, (req, res) => {
|
||||
const { roomId } = req.params;
|
||||
const { numCodes } = req.body as { numCodes: number };
|
||||
const codes = genClaimCodeArray(numCodes);
|
||||
|
||||
prisma.rooms
|
||||
.findUnique({
|
||||
where: { roomId: roomId },
|
||||
include: { claimCodes: true }
|
||||
})
|
||||
.then((room) => {
|
||||
if (!room) {
|
||||
res.status(404).json({ error: 'Room not found' });
|
||||
return;
|
||||
}
|
||||
prisma.rooms
|
||||
.findUnique({
|
||||
where: { roomId: roomId },
|
||||
include: { claimCodes: true }
|
||||
})
|
||||
.then((room) => {
|
||||
if (!room) {
|
||||
res.status(404).json({ error: 'Room not found' });
|
||||
return;
|
||||
}
|
||||
|
||||
const createCodes = codes.map((code) => {
|
||||
return prisma.claimCodes.create({
|
||||
data: {
|
||||
claimcode: code.claimcode,
|
||||
claimed: false,
|
||||
rooms: {
|
||||
connect: {
|
||||
roomId: roomId
|
||||
}
|
||||
const createCodes = codes.map((code) => {
|
||||
return prisma.claimCodes.create({
|
||||
data: {
|
||||
claimcode: code.claimcode,
|
||||
claimed: false,
|
||||
rooms: {
|
||||
connect: {
|
||||
roomId: roomId
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return Promise.all(createCodes);
|
||||
})
|
||||
.then(() => {
|
||||
res.status(200).json({ message: 'Claim codes added successfully' });
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Internal Server Error' });
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
return Promise.all(createCodes);
|
||||
})
|
||||
.then(() => {
|
||||
res.status(200).json({ message: 'Claim codes added successfully' });
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Internal Server Error' });
|
||||
});
|
||||
});
|
||||
|
||||
app.get(['/logclaimcodes', '/api/logclaimcodes'], adminAuth, (req, res) => {
|
||||
pp('Express: fetching claim codes');
|
||||
@@ -367,9 +352,7 @@ export function initEndpoints(app: Express, adminAuth: RequestHandler) {
|
||||
asyncHandler(async (req: Request, res: Response) => {
|
||||
const { roomId } = req.params;
|
||||
const { message } = req.body as { message: string };
|
||||
pp(
|
||||
String('Express: sending system message: ' + message + ' to ' + roomId)
|
||||
);
|
||||
pp(String('Express: sending system message: ' + message + ' to ' + roomId));
|
||||
try {
|
||||
await createSystemMessages(message, roomId);
|
||||
res.status(200).json({ message: 'Message sent to room ' + roomId });
|
||||
|
||||
Reference in New Issue
Block a user