Skip to content

Commit d0c1e43

Browse files
committed
Squashed commit fixing user creation error
1 parent e36bf87 commit d0c1e43

File tree

3 files changed

+45
-22
lines changed

3 files changed

+45
-22
lines changed

app/(pages)/auth/register/page.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,16 @@ async function createUser(firstName, lastName, email, debug) {
177177
email: normalizedEmail,
178178
}),
179179
});
180+
181+
const responseBody = await response.json();
180182

181183
if (debug) console.log("createUser response:", response);
182184

183185
if (!response.ok) {
184-
return { ok: false, error: response.error };
186+
return { ok: false, error: responseBody.error };
185187
}
186-
187-
const data = await response.json();
188188

189-
if (debug) console.log("createUser:", data);
189+
if (debug) console.log("createUser:", responseBody);
190190

191191
return { ok: true };
192192
}

app/api/v2/auth/activate/[token]/route.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
import prisma from "@/prisma/prismaClient";
3+
import { redirect } from "next/navigation";
34
import { NextResponse } from "next/server";
45

56
export async function GET(req, {params}) {
@@ -44,6 +45,6 @@ export async function GET(req, {params}) {
4445
activatedAt: new Date()
4546
}
4647
})
47-
48-
return NextResponse.redirect(new URL("/auth/signIn", req.url))
48+
49+
redirect("/auth/signIn")
4950
}

app/api/v2/users/route.js

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ import { getServerSession } from "next-auth";
88
import { authOptions } from "@/app/api/utils/authOptions";
99

1010

11+
const errors = {
12+
missingFields: NextResponse.json(
13+
{ error: "Missing required fields" }
14+
, { status: 400 }
15+
),
16+
userExists: NextResponse.json(
17+
{ error: "User already exists" },
18+
{ status: 400 }
19+
),
20+
userCreateError: NextResponse.json(
21+
{ error: "Could not create user" },
22+
{ status: 400 }
23+
),
24+
emailError: NextResponse.json(
25+
{ error: "Could not send verification email" },
26+
{ status: 400 }
27+
),
28+
};
1129

1230

1331
const NEXTAUTH_URL = process.env.NEXTAUTH_URL || "";
@@ -63,31 +81,35 @@ async function createUser(email, firstName, lastName) {
6381

6482
async function registerUser(email, firstName, lastName) {
6583
if (!email || !firstName || !lastName) {
66-
return NextResponse.json(
67-
{ error: "Missing required fields" },
68-
{ status: 400 }
69-
);
84+
return errors.missingFields;
7085
}
7186

72-
const userRes = await createUser(email, firstName, lastName)
73-
if (!userRes)
74-
return NextResponse.json({ ok: false, error: "Could not create user" }, {status: 400});
87+
const user = await prisma.user.findUnique({
88+
where: {
89+
email: email,
90+
},
91+
});
92+
if (user) {
93+
return errors.userExists;
94+
};
7595

76-
const {newUser, activateToken} = userRes
96+
const userRes = await createUser(email, firstName, lastName);
97+
if (!userRes)
98+
return errors.userCreateError;
7799

78-
const res = await sendVerificationEmail(newUser, activateToken)
79-
if (res.success) {
80-
return NextResponse.json({ok: true}, {status: 200})
81-
}
100+
const { newUser, activateToken } = userRes;
82101

83-
return NextResponse.json({ ok: false, error: "Could not send verification email" }, {status: 400});
84-
85-
102+
const res = await sendVerificationEmail(newUser, activateToken);
103+
if (res.success) {
104+
return NextResponse.json({ ok: true }, { status: 200 });
105+
}
106+
107+
return errors.emailError;
86108
}
87109

88110
export async function POST(req) {
89111

90-
const params = req.json()
112+
const params = await req.json()
91113

92114
const authCheck = new Auth(null, params)
93115
.requireParams(["email", "firstName", "lastName"])

0 commit comments

Comments
 (0)