All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 2m38s
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
'use server'
|
|
|
|
import { revalidatePath } from 'next/cache'
|
|
import { auth } from '@/lib/auth'
|
|
import { userService } from '@/services/users/user.service'
|
|
import {
|
|
ValidationError,
|
|
NotFoundError,
|
|
} from '@/services/errors'
|
|
|
|
export async function updatePassword(data: {
|
|
currentPassword: string
|
|
newPassword: string
|
|
confirmPassword: string
|
|
}) {
|
|
try {
|
|
const session = await auth()
|
|
|
|
if (!session?.user) {
|
|
return { success: false, error: 'Non authentifié' }
|
|
}
|
|
|
|
await userService.validateAndUpdatePassword(
|
|
session.user.id,
|
|
data.currentPassword,
|
|
data.newPassword,
|
|
data.confirmPassword
|
|
)
|
|
|
|
revalidatePath('/profile')
|
|
|
|
return { success: true, message: 'Mot de passe modifié avec succès' }
|
|
} catch (error) {
|
|
console.error('Error updating password:', error)
|
|
|
|
if (error instanceof ValidationError) {
|
|
return { success: false, error: error.message }
|
|
}
|
|
if (error instanceof NotFoundError) {
|
|
return { success: false, error: error.message }
|
|
}
|
|
|
|
return { success: false, error: 'Erreur lors de la modification du mot de passe' }
|
|
}
|
|
}
|
|
|