remix-demo
react router (remix) demo
git clone https://9o.is/git/remix-demo.git
userInvite.server.ts
(713B)
1 import { json } from "@remix-run/server-runtime";
2 import { validationError } from "remix-validated-form";
3 import { createUser } from "~/models/user.server";
4 import { userInviteValidator } from "~/schemas/userInvite";
5 import { requireUserId } from "~/session.server";
6
7 export async function inviteUser(request: Request) {
8 await requireUserId(request);
9 const { error, data } = await userInviteValidator.validate(
10 await request.formData()
11 );
12
13 if (error) return validationError(error);
14
15 try {
16 await createUser({
17 name: data.name,
18 email: data.email,
19 });
20 } catch (error) {
21 // For security purposes, do not notify user if email exists.
22 }
23
24 return json(null, { status: 204 });
25 }