cdn
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
using Google.Protobuf;
|
||||
using VizhTalk.Grpc.Learning;
|
||||
|
||||
namespace VizhTalk.Gateway.Web.BFF.Mappers
|
||||
{
|
||||
public static class UploadMapper
|
||||
{
|
||||
public static async Task<UploadFile> AsFile(this IFile file)
|
||||
{
|
||||
MemoryStream stream = new MemoryStream();
|
||||
await file.CopyToAsync(stream);
|
||||
return new UploadFile()
|
||||
{
|
||||
ContentType = file.ContentType,
|
||||
File = ByteString.FromStream(stream),
|
||||
Name = file.Name,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace VizhTalk.Gateway.Web.BFF.Models;
|
||||
|
||||
public record IdRequest(string Value);
|
||||
@@ -0,0 +1,4 @@
|
||||
namespace VizhTalk.Gateway.Web.BFF.Models;
|
||||
|
||||
public record CreateLanguageRequest(string Title,IFile Icon);
|
||||
public record UpdateLanguageRequest(IdRequest Id, string Title,IFile Icon);
|
||||
@@ -1,4 +1,6 @@
|
||||
using VizhTalk.Grpc.Learning;
|
||||
using VizhTalk.Gateway.Web.BFF.Mappers;
|
||||
using VizhTalk.Gateway.Web.BFF.Models;
|
||||
using VizhTalk.Grpc.Learning;
|
||||
using VizhTalk.Grpc.Learning.Language;
|
||||
|
||||
namespace VizhTalk.Gateway.Web.BFF.Mutations;
|
||||
@@ -6,10 +8,23 @@ namespace VizhTalk.Gateway.Web.BFF.Mutations;
|
||||
public class LanguageMutation(LanguageGrpc.LanguageGrpcClient client)
|
||||
{
|
||||
[GraphQLName("CreateLanguage")]
|
||||
public async Task<LanguageDTO> CreateLanguage(CreateLanguageCommand request)
|
||||
=> await client.CreateAsync(request);
|
||||
public async Task<LanguageDTO> CreateLanguage(CreateLanguageRequest request)
|
||||
{
|
||||
return await client.CreateAsync(new CreateLanguageCommand()
|
||||
{
|
||||
Title = request.Title,
|
||||
Icon = await request.Icon.AsFile()
|
||||
});
|
||||
}
|
||||
|
||||
[GraphQLName("UpdateLanguage")]
|
||||
public async Task<LanguageDTO> UpdateLanguage(UpdateLanguageCommand request)
|
||||
=> await client.UpdateAsync(request);
|
||||
public async Task<LanguageDTO> UpdateLanguage(UpdateLanguageRequest request)
|
||||
{
|
||||
return await client.UpdateAsync(new UpdateLanguageCommand()
|
||||
{
|
||||
Id = new Id(request.Id.Value),
|
||||
Title = request.Title,
|
||||
Icon = await request.Icon.AsFile()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ namespace VizhTalk.Gateway.Web.BFF.Queries
|
||||
public class LanguageQuery(LanguageGrpc.LanguageGrpcClient client)
|
||||
{
|
||||
[GraphQLName("Languages")]
|
||||
public async Task<GetAllLanguageDTO> GetAllLanguage()
|
||||
=> await client.GetAllAsync(new GetAllLanguageQuery());
|
||||
public async Task<GetAllLanguageDTO> GetAllLanguage(GetAllLanguageQuery request)
|
||||
=> await client.GetAllAsync(request);
|
||||
|
||||
[GraphQLName("LanguageByTitle")]
|
||||
public async Task<LanguageDTO> GetLanguageByTitle(GetLanguageByTitleQuery request)
|
||||
|
||||
@@ -15,4 +15,8 @@
|
||||
<ProjectReference Include="..\VizhTalk.Services.Grpc.Learning\VizhTalk.Grpc.Learning.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Types\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user