Kavita/API/Data/Repositories/ExternalChapterMetadataRepository.cs
Amelia 184cf46533
Revert "Unify ChapterRating with Rating"
This wasn't working out, there is still some duplicate code. But not
that much, and from the API, there is no different. Hooray!
2025-04-28 17:14:02 +02:00

44 lines
1.4 KiB
C#

#nullable enable
using System.Collections.Generic;
using System.Threading.Tasks;
using API.Entities.Metadata;
using API.Extensions.QueryExtensions;
using AutoMapper;
using Microsoft.EntityFrameworkCore;
namespace API.Data.Repositories;
public enum ExternalChapterMetadataIncludes
{
None = 0,
ExternalReviews = 1 << 1,
}
public interface IExternalChapterMetadataRepository
{
void Attach(ExternalChapterMetadata externalChapterMetadata);
void Remove(IEnumerable<ExternalChapterReview>? reviews);
Task<ExternalChapterMetadata?> Get(int chapterId, ExternalChapterMetadataIncludes includes = ExternalChapterMetadataIncludes.ExternalReviews);
}
public class ExternalChapterMetadataRepository(DataContext context, IMapper mapper): IExternalChapterMetadataRepository
{
public void Attach(ExternalChapterMetadata externalChapterMetadata)
{
context.ExternalChapterMetadata.Attach(externalChapterMetadata);
}
public void Remove(IEnumerable<ExternalChapterReview>? reviews)
{
if (reviews == null) return;
context.ExternalChapterReview.RemoveRange(reviews);
}
public async Task<ExternalChapterMetadata?> Get(int chapterId, ExternalChapterMetadataIncludes includes = ExternalChapterMetadataIncludes.ExternalReviews)
{
return await context.ExternalChapterMetadata
.Includes(includes)
.FirstOrDefaultAsync(c => c.ChapterId == chapterId);
}
}