database changes
This commit is contained in:
@@ -34,14 +34,6 @@ public class GenresController(IGenresControllerService genresControllerService)
|
||||
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
|
||||
public async Task<ActionResult> PostGenre([FromBody]GenreRequest body) => await genresControllerService.PostGenre(body);
|
||||
|
||||
[HttpPut("{id}")]
|
||||
[Authorize]
|
||||
[ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
|
||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||
public async Task<ActionResult> PutGenre([FromRoute]short id, [FromBody]GenreRequest body) => await genresControllerService.PutGenre(id, body);
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
[Authorize]
|
||||
[ProducesResponseType(typeof(GenreResponse), StatusCodes.Status200OK)]
|
||||
|
||||
@@ -49,26 +49,6 @@ public class GenresControllerService(DatabaseContext database, IUserService user
|
||||
return RequestResult.Created($"genres/{item.Id}", new GenreResponse(item));
|
||||
}
|
||||
|
||||
public async Task<RequestResult> PutGenre(short id, GenreRequest data)
|
||||
{
|
||||
UserValidator validator = userService.GetValidator().MustBeAdmin();
|
||||
if (!validator.IsValid)
|
||||
{
|
||||
return RequestResult.Forbidden();
|
||||
}
|
||||
|
||||
Genre? item = await database.Genres.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (item is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
data.UpdateGenre(item);
|
||||
await database.SaveChangesAsync();
|
||||
|
||||
return RequestResult.Ok();
|
||||
}
|
||||
|
||||
public async Task<RequestResult> DeleteGenre(short id)
|
||||
{
|
||||
UserValidator validator = userService.GetValidator().MustBeAdmin();
|
||||
@@ -98,14 +78,13 @@ public class GenresControllerService(DatabaseContext database, IUserService user
|
||||
|
||||
public async Task<RequestResult> GetGenreMedia(short id, MediaQueryParameters query)
|
||||
{
|
||||
if (!database.Genres.Any(x => x.Id == id))
|
||||
Genre? genre = await database.Genres.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (genre is null)
|
||||
{
|
||||
return RequestResult.NotFound();
|
||||
}
|
||||
|
||||
IEnumerable<Database.Model.Media.Media> rawData = await database.Media.Where(x => x.MediaGenres.Any(y => y.GenreId == id))
|
||||
.ToListAsync();
|
||||
IEnumerable<MediaResponse> data = rawData.Select(x => new MediaResponse(x, database.MediaMovies.Any(y => y.Id == x.Id) ? MediaType.Movie : MediaType.Series));
|
||||
IEnumerable<MediaResponse> data = genre.Media.Select(x => new MediaResponse(x, database.MediaMovies.Any(y => y.Id == x.Id) ? MediaType.Movie : MediaType.Series));
|
||||
data = query.PrepareData(data);
|
||||
return RequestResult.Ok(data);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ public interface IGenresControllerService
|
||||
Task<RequestResult> GetGenres(GenreQueryParameters query);
|
||||
Task<RequestResult> GetGenre(short id);
|
||||
Task<RequestResult> PostGenre(GenreRequest data);
|
||||
Task<RequestResult> PutGenre(short id, GenreRequest data);
|
||||
Task<RequestResult> DeleteGenre(short id);
|
||||
Task<RequestResult> GetGenreMedia(short id, MediaQueryParameters query);
|
||||
}
|
||||
@@ -9,6 +9,5 @@ public class GenreRequestValidator : AbstractValidator<GenreRequest>
|
||||
public GenreRequestValidator()
|
||||
{
|
||||
RuleFor(x => x.Name).MaximumLength(100);
|
||||
When(x => !string.IsNullOrWhiteSpace(x.Description), () => RuleFor(x => x.Description).MaximumLength(1000));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user