mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-27 09:05:01 +00:00
Enhance validation in PersonEdit
: Introduce hasValidationError
and validationError
helpers for form inputs. Improve error feedback for fields such as firstName
, lastName
, gender
, and others. Refactor postPerson
to handle validation exceptions and map errors to specific fields. Update related methods, styles, and API error type definitions.
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
import { fetchResults, makeFetch } from "ChillMainAssets/lib/api/apiMethods";
|
||||
import { Center, Civility, Gender } from "ChillMainAssets/types";
|
||||
import {AltName, Person, PersonIdentifierWorker, PersonWrite} from "ChillPersonAssets/types";
|
||||
import {
|
||||
AltName,
|
||||
Person,
|
||||
PersonIdentifierWorker,
|
||||
PersonWrite,
|
||||
} from "ChillPersonAssets/types";
|
||||
import person from "ChillPersonAssets/vuejs/_components/OnTheFly/Person.vue";
|
||||
|
||||
/*
|
||||
@@ -30,12 +35,48 @@ export const getCivilities = async (): Promise<Civility[]> =>
|
||||
export const getGenders = async (): Promise<Gender[]> =>
|
||||
fetchResults("/api/1.0/main/gender.json");
|
||||
|
||||
export const getCentersForPersonCreation = async (): Promise<{showCenters: boolean; centers: Center[];}> =>
|
||||
makeFetch("GET", "/api/1.0/person/creation/authorized-centers", null);
|
||||
export const getCentersForPersonCreation = async (): Promise<{
|
||||
showCenters: boolean;
|
||||
centers: Center[];
|
||||
}> => makeFetch("GET", "/api/1.0/person/creation/authorized-centers", null);
|
||||
|
||||
export const getPersonIdentifiers = async (): Promise<PersonIdentifierWorker[]> =>
|
||||
fetchResults("/api/1.0/person/identifiers/workers");
|
||||
export const getPersonIdentifiers = async (): Promise<
|
||||
PersonIdentifierWorker[]
|
||||
> => fetchResults("/api/1.0/person/identifiers/workers");
|
||||
|
||||
export const createPerson = async (person: PersonWrite): Promise<Person> => {
|
||||
return makeFetch("POST", "/api/1.0/person/person.json", person);
|
||||
export interface WritePersonViolationMap
|
||||
extends Record<string, Record<string, unknown>> {
|
||||
firstName: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
lastName: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
gender: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
mobilenumber: {
|
||||
"{{ types }}": string; // ex: "mobile number"
|
||||
"{{ value }}": string; // ex: "+33 1 02 03 04 05"
|
||||
};
|
||||
phonenumber: {
|
||||
"{{ types }}": string; // ex: "mobile number"
|
||||
"{{ value }}": string; // ex: "+33 1 02 03 04 05"
|
||||
};
|
||||
email: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
center: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
civility: {
|
||||
"{{ value }}": string | null;
|
||||
};
|
||||
}
|
||||
export const createPerson = async (person: PersonWrite): Promise<Person> => {
|
||||
return makeFetch<PersonWrite, Person, WritePersonViolationMap>(
|
||||
"POST",
|
||||
"/api/1.0/person/person.json",
|
||||
person,
|
||||
);
|
||||
};
|
||||
|
Reference in New Issue
Block a user