fix: session api update

This commit is contained in:
2024-07-30 18:20:11 -06:00
parent c979e6540f
commit 4e03c43ded
4 changed files with 4 additions and 60 deletions
BIN
View File
Binary file not shown.
@@ -46,7 +46,8 @@ const UpdateRecoverPasswordForm: FC<UpdateRecoverPasswordFormProps> = (props) =>
}, },
onSubmit: async ({ confirmPassword, password, secret, userId }) => { onSubmit: async ({ confirmPassword, password, secret, userId }) => {
try { try {
await updatePasswordRecovery(userId, secret, password, confirmPassword) if (password !== confirmPassword) throw new Error('Las contraseñas no coinciden')
await updatePasswordRecovery(userId, secret, password)
dispatch(addAlert({ dispatch(addAlert({
id: nanoid(), id: nanoid(),
title: 'Contraseña actualizada', title: 'Contraseña actualizada',
+2 -2
View File
@@ -1,13 +1,13 @@
import { createSlice, type PayloadAction } from '@reduxjs/toolkit' import { createSlice, type PayloadAction } from '@reduxjs/toolkit'
import { type Models } from 'appwrite' import { type Models } from 'appwrite'
import { type ClanList } from 'entgamers-database/frontend/clanes' import { type ClanList } from 'entgamers-database/frontend/clanes'
import { type UserWithPreferences } from 'entgamers-database/frontend/session' import { type User } from 'entgamers-database/frontend/session'
export type SessionState = export type SessionState =
| { | {
status: 'idle' | 'loading' | 'initializing' status: 'idle' | 'loading' | 'initializing'
session?: Models.Session session?: Models.Session
user?: UserWithPreferences user?: User
clanes?: ClanList clanes?: ClanList
} }
-57
View File
@@ -1,4 +1,3 @@
import { Prisma } from 'entgamers-database/lib/prismaClient'
import { NextResponse } from 'next/server' import { NextResponse } from 'next/server'
import { AppwriteException } from 'node-appwrite' import { AppwriteException } from 'node-appwrite'
import { ValidationError } from 'yup' import { ValidationError } from 'yup'
@@ -8,62 +7,6 @@ export const handleError = (error: unknown): Response => {
return NextResponse.json({ error: error.message }, { status: 400 }) return NextResponse.json({ error: error.message }, { status: 400 })
} else if (error instanceof AppwriteException) { } else if (error instanceof AppwriteException) {
return NextResponse.json({ error: error.message }, { status: error.code ?? 500 }) return NextResponse.json({ error: error.message }, { status: error.code ?? 500 })
} else if (error instanceof Prisma.PrismaClientKnownRequestError) {
switch (error.code) {
case 'P2002': // "Unique constraint failed on the {constraint}"
case 'P2004': // "A constraint failed on the database: {database_error}"
case 'P2005': // "The value {field_value} stored in the database for the field {field_name} is invalid for the field's type"
case 'P2006': // "The provided value {field_value} for {model_name} field {field_name} is not valid"
case 'P2007': // "Data validation error {database_error}"
case 'P2008': // "Failed to parse the query {query_parsing_error} at {query_position}"
case 'P2009': // "Failed to validate the query: {query_validation_error} at {query_position}"
case 'P2010': // "Raw query failed. Code: {code}. Message: {message}"
case 'P2011': // "Null constraint violation on the {constraint}"
case 'P2012': // "Missing a required value at {path}"
case 'P2013': // "Missing the required argument {argument_name} for field {field_name} on {object_name}."
case 'P2017': // "The records for relation {relation_name} between the {parent_name} and {child_name} models are not connected."
case 'P2019': // "Input error. {details}"
case 'P2020': // "Value out of range for the type. {details}"
return NextResponse.json({ error: error.message }, {
status: 400
})
case 'P2003': // "Foreign key constraint failed on the field: {field_name}"
case 'P2015': // "A related record could not be found. {details}"
case 'P2018': // "The required connected records were not found. {details}"
case 'P2025': // "An operation failed because it depends on one or more records that were required but not found. {cause}"
return NextResponse.json({ error: error.message }, {
status: 404
})
case 'P2014': // "The change you are trying to make would violate the required relation '{relation_name}' between the {model_a_name} and {model_b_name} models."
return NextResponse.json({ error: error.message }, {
status: 409
})
case 'P2016': // "Query interpretation error. {details}"
case 'P2021': // "The table {table} does not exist in the current database."
case 'P2022': // "The column {column} does not exist in the current database."
case 'P2023': // "Inconsistent column data: {message}"
case 'P2024': // "Timed out fetching a new connection from the connection pool. (More info: http://pris.ly/d/connection-pool (Current connection pool timeout: {timeout}, connection limit: {connection_limit})"
case 'P2026': // "The current database provider doesn't support a feature that the query used: {feature}"
case 'P2027': // "Multiple errors occurred on the database during query execution: {errors}"
case 'P2028': // "Transaction API error: {error}"
case 'P2029': //
case 'P2030': // "Cannot find a fulltext index to use for the search, try adding a @@fulltext([Fields...]) to your schema"
case 'P2031': // "Prisma needs to perform transactions, which requires your MongoDB server to be run as a replica set. See details: https://pris.ly/d/mongodb-replica-set"
case 'P2032': //
case 'P2033': // "A number used in the query does not fit into a 64 bit signed integer. Consider using BigInt as field type if you're trying to store large integers"
case 'P2034': // "Transaction failed due to a write conflict or a deadlock. Please retry your transaction"
{
console.error(`Prisma error with code: ${error.code}`, error)
return NextResponse.json({ error: 'Internal server error' }, {
status: 500
})
}
default:
console.error(`Unknown error with code: ${error.code}`, error)
return NextResponse.json({ error: 'Internal server error' }, {
status: 500
})
}
} else { } else {
console.error('Unknown error:', error) console.error('Unknown error:', error)
return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) return NextResponse.json({ error: 'Internal server error' }, { status: 500 })