Skip to content

Commit 7d13e1f

Browse files
committed
fix: allow nullable meta ids in api torrent upload validation
1 parent c24bafa commit 7d13e1f

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

app/Http/Controllers/API/TorrentController.php

+18-12
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,12 @@ public function store(Request $request): \Illuminate\Http\JsonResponse
199199
$torrent->moderated_at = Carbon::now();
200200
$torrent->moderated_by = User::SYSTEM_USER_ID;
201201

202+
$mustBeNull = function (string $attribute, mixed $value, callable $fail): void {
203+
if ($value !== null) {
204+
$fail("The {$attribute} must be null.");
205+
}
206+
};
207+
202208
// Validation
203209
$v = validator($torrent->toArray(), [
204210
'name' => [
@@ -250,62 +256,62 @@ public function store(Request $request): \Illuminate\Http\JsonResponse
250256
],
251257
'imdb' => [
252258
Rule::when($category->movie_meta || $category->tv_meta, [
253-
'required',
259+
'nullable',
254260
'decimal:0',
255261
'min:0',
256262
]),
257263
Rule::when(!($category->movie_meta || $category->tv_meta), [
258-
Rule::in([0]),
264+
$mustBeNull,
259265
]),
260266
],
261267
'tvdb' => [
262268
Rule::when($category->tv_meta, [
263-
'required',
269+
'nullable',
264270
'decimal:0',
265271
'min:0',
266272
]),
267273
Rule::when(!$category->tv_meta, [
268-
Rule::in([0]),
274+
$mustBeNull,
269275
]),
270276
],
271277
'tmdb_movie_id' => [
272278
Rule::when($category->movie_meta, [
273-
'required',
279+
'nullable',
274280
'decimal:0',
275281
'min:0',
276282
]),
277283
Rule::when(!$category->movie_meta, [
278-
Rule::in([0]),
284+
$mustBeNull,
279285
]),
280286
],
281287
'tmdb_tv_id' => [
282288
Rule::when($category->tv_meta, [
283-
'required',
289+
'nullable',
284290
'decimal:0',
285291
'min:0',
286292
]),
287293
Rule::when(!$category->tv_meta, [
288-
Rule::in([0]),
294+
$mustBeNull,
289295
]),
290296
],
291297
'mal' => [
292298
Rule::when($category->movie_meta || $category->tv_meta, [
293-
'required',
299+
'nullable',
294300
'decimal:0',
295301
'min:0',
296302
]),
297303
Rule::when(!($category->movie_meta || $category->tv_meta), [
298-
Rule::in([0]),
304+
$mustBeNull,
299305
]),
300306
],
301307
'igdb' => [
302308
Rule::when($category->game_meta, [
303-
'required',
309+
'nullable',
304310
'decimal:0',
305311
'min:0',
306312
]),
307313
Rule::when(!$category->game_meta, [
308-
Rule::in([0]),
314+
$mustBeNull,
309315
]),
310316
],
311317
'season_number' => [

0 commit comments

Comments
 (0)