33831/backend/src/routes/adminOnboarding.js

37 lines
1.0 KiB
JavaScript

const express = require('express');
const router = express.Router();
const LeaguesService = require('../services/leagues');
const UsersService = require('../services/users');
const { authenticateJWT } = require('../auth/auth');
// POST /api/admin/onboarding
router.post(
'/',
async (req, res, next) => {
try {
const { leagueName, adminFirstName, adminLastName, adminEmail, adminPassword } = req.body;
// Create new league
const league = await LeaguesService.create({ name: leagueName }, req.currentUser);
// Create league administrator linked to the new league
const user = await UsersService.create(
{
firstName: adminFirstName,
lastName: adminLastName,
email: adminEmail,
password: adminPassword,
leagueId: league.id,
role: 'League Administrator',
},
req.currentUser,
false,
req.get('host'),
);
res.status(201).json({ league, user });
} catch (error) {
next(error);
}
},
);
module.exports = router;