Front: Api models validation (#245)

* Front: Model: Write Validators

* Front: Plage response validator

* Front: API: Typing 'fetch' return

* Front: Basic Models: Response Handlers

* Front: API: Validate authentication response

* Front: Validate Search History

* Front: Validate Responses of User updates

* Front: On Validation Error, more verbose console error
This commit is contained in:
Arthur Jamet
2023-07-05 09:22:55 +01:00
committed by GitHub
parent 350a4870cd
commit 10d1342294
20 changed files with 575 additions and 287 deletions
+29 -2
View File
@@ -1,7 +1,34 @@
import * as yup from 'yup';
import ResponseHandler from './ResponseHandler';
export const SongDetailsValidator = yup.object({
length: yup.number().required(),
rhythm: yup.number().required(),
arpeggio: yup.number().required(),
distance: yup.number().required(),
lefthand: yup.number().required(),
twohands: yup.number().required(),
notecombo: yup.number().required(),
precision: yup.number().required(),
righthand: yup.number().required(),
pedalpoint: yup.number().required(),
chordtiming: yup.number().required(),
leadhandchange: yup.number().required(),
chordcomplexity: yup.number().required(),
});
export const SongDetailsHandler: ResponseHandler<
yup.InferType<typeof SongDetailsValidator>,
SongDetails
> = {
validator: SongDetailsValidator,
transformer: (value) => value,
};
interface SongDetails {
length: number;
rhythm: number;
arppegio: number;
arpeggio: number;
distance: number;
lefthand: number;
righthand: number;
@@ -10,7 +37,7 @@ interface SongDetails {
precision: number;
pedalpoint: number;
chordtiming: number;
leadheadchange: number;
leadhandchange: number;
chordcomplexity: number;
}