fix(watchlist): add validation for creation request

This commit is contained in:
Yalagin
2023-05-15 23:25:32 +07:00
parent c08897bdc1
commit 03316c642d
3 changed files with 30 additions and 5 deletions

View File

@@ -15,6 +15,7 @@ import {
Unique,
UpdateDateColumn,
} from 'typeorm';
import type { ZodNumber, ZodOptional, ZodString } from 'zod';
export class DuplicateWatchlistRequestError extends Error {}
export class NotFoundError extends Error {
@@ -65,10 +66,18 @@ export class Watchlist implements WatchlistItem {
Object.assign(this, init);
}
public static async createWatchlist(
watchlistRequest: Watchlist,
user: User
): Promise<Watchlist> {
public static async createWatchlist({
watchlistRequest,
user,
}: {
watchlistRequest: {
mediaType: MediaType;
ratingKey?: ZodOptional<ZodString>['_output'];
title?: ZodOptional<ZodString>['_output'];
tmdbId: ZodNumber['_output'];
};
user: User;
}): Promise<Watchlist> {
const watchlistRepository = getRepository(this);
const mediaRepository = getRepository(Media);
const tmdb = new TheMovieDb();