2024-09-01 19:22:00 +00:00
|
|
|
import { PUBLIC_SITE_URL } from '$env/static/public'
|
|
|
|
|
import { createPasswordResetToken } from '$lib/server/auth-utils.js'
|
|
|
|
|
import { error } from '@sveltejs/kit'
|
|
|
|
|
import { eq } from 'drizzle-orm'
|
|
|
|
|
import { usersTable } from '../../src/lib/server/api/databases/tables'
|
|
|
|
|
import { db } from '../../src/lib/server/api/packages/drizzle'
|
2024-03-02 02:00:27 +00:00
|
|
|
|
|
|
|
|
export async function POST({ locals, request }) {
|
2024-09-01 19:22:00 +00:00
|
|
|
const { email }: { email: string } = await request.json()
|
2024-03-02 02:00:27 +00:00
|
|
|
|
|
|
|
|
if (!locals.user) {
|
2024-09-01 19:22:00 +00:00
|
|
|
error(401, { message: 'Unauthorized' })
|
2024-03-02 02:00:27 +00:00
|
|
|
}
|
|
|
|
|
|
2024-08-01 23:46:29 +00:00
|
|
|
const user = await db.query.usersTable.findFirst({
|
|
|
|
|
where: eq(usersTable.email, email),
|
2024-09-01 19:22:00 +00:00
|
|
|
})
|
2024-03-02 02:00:27 +00:00
|
|
|
|
|
|
|
|
if (!user) {
|
2024-05-08 00:19:13 +00:00
|
|
|
error(200, {
|
|
|
|
|
message: 'Email sent! Please check your email for a link to reset your password.',
|
2024-09-01 19:22:00 +00:00
|
|
|
})
|
2024-03-02 02:00:27 +00:00
|
|
|
}
|
|
|
|
|
|
2024-09-01 19:22:00 +00:00
|
|
|
const verificationToken = await createPasswordResetToken(user.id)
|
|
|
|
|
const verificationLink = PUBLIC_SITE_URL + verificationToken
|
2024-03-02 02:00:27 +00:00
|
|
|
|
|
|
|
|
// TODO: send email
|
2024-09-01 19:22:00 +00:00
|
|
|
console.log('Verification link: ' + verificationLink)
|
2024-03-02 02:00:27 +00:00
|
|
|
|
|
|
|
|
return new Response(null, {
|
2024-05-08 00:19:13 +00:00
|
|
|
status: 200,
|
2024-09-01 19:22:00 +00:00
|
|
|
})
|
2024-05-08 00:19:13 +00:00
|
|
|
}
|