69 lines
2 KiB
JavaScript
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;
|