refactor: consolidate admin/users management under /people
This commit is contained in:
@@ -11,12 +11,16 @@ import {
|
||||
} from "@/schemas/person.schema"
|
||||
import {
|
||||
buildUnifiedCreateSchema,
|
||||
buildUnifiedUpdateSchema,
|
||||
type UnifiedCreateFormType,
|
||||
type UnifiedSchemaCopy,
|
||||
type UnifiedUpdateFormType,
|
||||
} from "@/schemas/user.schema"
|
||||
import {
|
||||
createPersonUseCase,
|
||||
createPersonUserUseCase,
|
||||
updatePersonUseCase,
|
||||
updatePersonUserUseCase,
|
||||
} from "@/use-cases/person.use-cases"
|
||||
|
||||
import { localizePersonFieldErrors } from "./person.messages"
|
||||
@@ -144,3 +148,45 @@ export async function updatePerson(formData: UpdatePersonFormType) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function updatePersonUserAction(formData: UnifiedUpdateFormType) {
|
||||
const { dictionary } = await getI18n()
|
||||
const userCopy = dictionary.admin.users
|
||||
const personCopy = dictionary.inventory.people
|
||||
const schemaCopy: UnifiedSchemaCopy = {
|
||||
...userCopy.schema,
|
||||
...personCopy.schema,
|
||||
}
|
||||
const validatedFields =
|
||||
buildUnifiedUpdateSchema(schemaCopy).safeParse(formData)
|
||||
|
||||
if (!validatedFields.success) {
|
||||
return {
|
||||
success: false,
|
||||
errors: flattenError(validatedFields.error).fieldErrors,
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await updatePersonUserUseCase(validatedFields.data)
|
||||
|
||||
if (!result.success) {
|
||||
return {
|
||||
...result,
|
||||
errors: localizeUnifiedCreateFieldErrors(
|
||||
result.errors,
|
||||
userCopy.actions,
|
||||
schemaCopy,
|
||||
),
|
||||
message: personCopy.actions.updateFailure,
|
||||
}
|
||||
}
|
||||
|
||||
revalidatePath("/people")
|
||||
|
||||
return { success: true, message: personCopy.actions.updateSuccess }
|
||||
} catch (error) {
|
||||
console.error("Database error:", error)
|
||||
return { success: false, message: personCopy.actions.updateFailure }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user