Files
feishin/server/validations/albums.validation.ts
T
2022-10-25 16:52:45 -07:00

54 lines
1.1 KiB
TypeScript

import { z } from 'zod';
import { AlbumSort } from '@helpers/albums.helpers';
import {
idValidation,
orderByValidation,
paginationValidation,
serverFolderIdValidation,
serverUrlIdValidation,
} from './shared.validation';
const list = {
body: z.object({}),
params: z.object({ ...idValidation('serverId') }),
query: z.object({
...paginationValidation,
...serverFolderIdValidation,
...orderByValidation,
...serverUrlIdValidation,
sortBy: z.nativeEnum(AlbumSort),
}),
};
const detail = {
body: z.object({}),
params: z.object({
...idValidation('albumId'),
...idValidation('serverId'),
}),
query: z.object({
...serverUrlIdValidation,
}),
};
const detailSongList = {
body: z.object({}),
params: z.object({
...idValidation('albumId'),
...idValidation('serverId'),
}),
query: z.object({
...paginationValidation,
...serverFolderIdValidation,
...orderByValidation,
...serverUrlIdValidation,
sortBy: z.nativeEnum(AlbumSort),
}),
};
export const albumsValidation = {
detail,
detailSongList,
list,
};