Files
FictionArchive/FictionArchive.Service.TranslationService/GraphQL/Query.cs

42 lines
1.4 KiB
C#

using FictionArchive.Service.TranslationService.Models;
using FictionArchive.Service.TranslationService.Models.DTOs;
using FictionArchive.Service.TranslationService.Services.Database;
using FictionArchive.Service.TranslationService.Services.TranslationEngines;
using HotChocolate.Authorization;
using HotChocolate.Data;
namespace FictionArchive.Service.TranslationService.GraphQL;
public class Query
{
[Authorize]
[UseFiltering]
[UseSorting]
public IEnumerable<TranslationEngineDescriptor> GetTranslationEngines(IEnumerable<ITranslationEngine> engines)
{
return engines.Select(engine => engine.Descriptor);
}
[Authorize]
[UsePaging]
[UseProjection]
[UseFiltering]
[UseSorting]
public IQueryable<TranslationRequestDto> GetTranslationRequests(TranslationServiceDbContext dbContext)
{
return dbContext.TranslationRequests.Select(request => new TranslationRequestDto
{
Id = request.Id,
CreatedTime = request.CreatedTime,
LastUpdatedTime = request.LastUpdatedTime,
OriginalText = request.OriginalText,
TranslatedText = request.TranslatedText,
From = request.From,
To = request.To,
TranslationEngineKey = request.TranslationEngineKey,
Status = request.Status,
BilledCharacterCount = request.BilledCharacterCount
});
}
}