partey_workadventure/messages/JsonMessages/ErrorApiData.ts

53 lines
1.3 KiB
TypeScript
Raw Normal View History

import { z } from "zod";
/*
* WARNING! The original file is in /messages/JsonMessages.
* All other files are automatically copied from this file on container startup / build
*/
export const isErrorApiErrorData = z.object({
// @ts-ignore
2022-04-21 14:49:41 +02:00
type: z.literal("error"),
code: z.string(),
title: z.string(),
subtitle: z.string(),
details: z.string(),
image: z.string(),
});
export const isErrorApiRetryData = z.object({
2022-04-21 14:49:41 +02:00
type: z.literal("retry"),
code: z.string(),
title: z.string(),
subtitle: z.string(),
details: z.string(),
image: z.string(),
buttonTitle: z.optional(z.nullable(z.string())),
timeToRetry: z.number(),
canRetryManual: z.boolean(),
});
export const isErrorApiRedirectData = z.object({
2022-04-21 14:49:41 +02:00
type: z.literal("redirect"),
urlToRedirect: z.string(),
});
export const isErrorApiUnauthorizedData = z.object({
2022-04-21 14:49:41 +02:00
type: z.literal("unauthorized"),
code: z.string(),
title: z.string(),
subtitle: z.string(),
details: z.string(),
image: z.string(),
buttonTitle: z.optional(z.nullable(z.string())),
});
export const isErrorApiData = z.discriminatedUnion("type", [
isErrorApiErrorData,
isErrorApiRetryData,
isErrorApiRedirectData,
isErrorApiUnauthorizedData,
]);
export type ErrorApiData = z.infer<typeof isErrorApiData>;