secajs/src/routes/apiRoutes.js
2025-02-10 00:22:58 +01:00

69 lines
2 KiB
JavaScript

const express = require('express');
const uuid = require("uuid");
const SessionNpubbed = require('../models/SessionNpubbed');
const appInviteServices = require('../services/appInviteServices')
const invitedNpubService = require('../services/invitedNpubService')
const router = express.Router();
router.post('/session-npubbed', async (req, res) => {
const sessionUuid = req.cookies.sessionUuid;
const npub = req.body.npub;
if (!sessionUuid || !npub) {
return res.status(400).json({ error: 'Missing session_uuid or npub' });
}
try {
const existingRecord = await SessionNpubbed.findOne({
where: { 'session_uuid': sessionUuid, npub }
});
if (existingRecord) {
console.log("Record already exists. No need to create a new one.");
return res.json({ message: 'SessionNpubbed record already exists' });
}
console.log("No matching record found. Creating a new one...");
await SessionNpubbed.create({
session_npubbed_uuid: uuid.v7(),
session_uuid: sessionUuid,
npub,
created_at: new Date().toISOString()
});
return res.json({ message: 'SessionNpubbed record created successfully' });
} catch (error) {
console.error("Error handling SessionNpubbed record:", error);
return res.status(500).json({ error: 'Failed to process sessionNpubbed record' });
}
});
router.post('/invited-npub', async (req, res) => {
const inviteUuid = req.cookies.inviteUuid;
const npub = req.body.npub;
if (!appInviteServices.appInviteExists(inviteUuid)) {
return res.status(404).render('error', { message: 'Invite not found' });
}
if (await appInviteServices.isAppInviteSpent(inviteUuid)) {
return res.status(410).json({ error: 'Invite has already been used.' });
}
await invitedNpubService.createInvitedNpub(
inviteUuid,
npub
);
return res.json({ message: "Invited npub successfully." })
});
module.exports = router;