2025-02-24
All checks were successful
ci/woodpecker/push/publish_instable Pipeline was successful

This commit is contained in:
gcch 2025-02-24 00:19:17 +01:00
commit a510899ff1
17 changed files with 309 additions and 103 deletions

View file

@ -1,9 +1,9 @@
import type { TmdbMovieSearchQueryParams } from "./schemas";
export const DEFAULT_SEARCH_MOVIE_PARAMS: TmdbMovieSearchQueryParams = {
export const DEFAULT_SEARCH_MOVIE_PARAMS = {
include_adult: false,
language: "fr",
page: 1,
query: "",
region: "fr-FR",
};
} satisfies TmdbMovieSearchQueryParams;

View file

@ -1,5 +1,7 @@
import { Schema } from "effect";
// Requête
export class TmdbMovieSearchQueryParams extends Schema.Class<TmdbMovieSearchQueryParams>("TmdbMovieSearchArgs")({
include_adult: Schema.Boolean.pipe(
Schema.propertySignature,
@ -22,26 +24,30 @@ export class TmdbMovieSearchQueryParams extends Schema.Class<TmdbMovieSearchQuer
year: Schema.String.pipe(Schema.optional),
}) {}
// Réponse
export class TmdbMovieSearchResponse extends Schema.Class<TmdbMovieSearchResponse>("TmdbMovieSearchResponse")({
page: Schema.NonNegativeInt,
results: Schema.Array(
Schema.Struct({
adult: Schema.Boolean,
backdrop_path: Schema.Union(Schema.String, Schema.Null),
genre_ids: Schema.Array(Schema.NonNegativeInt),
id: Schema.NonNegativeInt,
original_language: Schema.String,
original_title: Schema.String,
overview: Schema.String,
popularity: Schema.Number,
poster_path: Schema.Union(Schema.String, Schema.Null),
release_date: Schema.String,
title: Schema.String,
video: Schema.Boolean,
vote_average: Schema.Number,
vote_count: Schema.NonNegativeInt,
}),
),
results: Schema.Array(TmdbMovieSearchResponseResults),
total_pages: Schema.NonNegativeInt,
total_results: Schema.NonNegativeInt,
}) {}
export class TmdbMovieSearchResponseResults
extends Schema.Class<TmdbMovieSearchResponseResults>("TmdbMovieSearchResponseResults")({
adult: Schema.Boolean,
backdrop_path: Schema.Union(Schema.String, Schema.Null),
genre_ids: Schema.Array(Schema.NonNegativeInt),
id: Schema.NonNegativeInt,
original_language: Schema.String,
original_title: Schema.String,
overview: Schema.String,
popularity: Schema.Number,
poster_path: Schema.Union(Schema.String, Schema.Null),
release_date: Schema.String,
title: Schema.String,
video: Schema.Boolean,
vote_average: Schema.Number,
vote_count: Schema.NonNegativeInt,
})
{}