10d1342294
* 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
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
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;
|
|
arpeggio: number;
|
|
distance: number;
|
|
lefthand: number;
|
|
righthand: number;
|
|
twohands: number;
|
|
notecombo: number;
|
|
precision: number;
|
|
pedalpoint: number;
|
|
chordtiming: number;
|
|
leadhandchange: number;
|
|
chordcomplexity: number;
|
|
}
|
|
|
|
export default SongDetails;
|