import { Router } from 'express';
import * as inviteController from '../controllers/organizationInvite.controller.js';
import validate from '../middlewares/validate.js';
import methodNotAllowed from '../middlewares/methodNotAllowed.js';
import { acceptInviteSchema } from '../validators/organizationInvite.validator.js';

const router = Router();

// Public — the invited person doesn't have an account yet, so there's
// nothing to authenticate against. The token itself is the credential.
router.get('/:token', inviteController.getInvite);
router.post('/:token/accept', validate(acceptInviteSchema), inviteController.acceptInvite);
router.all('/:token', methodNotAllowed('GET'));
router.all('/:token/accept', methodNotAllowed('POST'));

export default router;
