feat: implemented available resumes on Back-end

This commit is contained in:
2025-07-27 21:18:31 +03:00
parent 7c22b4b9a7
commit 171757705a
8 changed files with 201 additions and 8 deletions

View File

@@ -0,0 +1,46 @@
using Grpc.Core;
using JOBot.Backend.DAL.Context;
using JOBot.Proto;
using Microsoft.EntityFrameworkCore;
namespace JOBot.Backend.Services.gRPC;
public class ResumeService(AppDbContext dbContext, Backend.Services.ResumeService resumeService)
: Proto.Resume.ResumeBase
{
public override async Task<GetResumeResponse> GetResume(GetResumeRequest request, ServerCallContext context)
{
var user = await dbContext.Users.FirstOrDefaultAsync(x => x.UserId == request.UserId);
if (user == null)
throw new RpcException(new Status(StatusCode.NotFound, "User not found"));
return new GetResumeResponse { ResumeUrl = user.CvUrl };
}
public override async Task<GetAvailableResponse> GetAvailable(GetAvailableRequest request,
ServerCallContext context)
{
var response = await resumeService.GetAvailableResumes(request.UserId);
switch (response.Status)
{
case Services.ResumeService.Status.UserNotFound:
throw new RpcException(new Status(StatusCode.NotFound, "User not found"));
case Services.ResumeService.Status.Error:
throw new RpcException(new Status(StatusCode.Internal, "Unknown error"));
case Services.ResumeService.Status.Success:
{
var resp = new GetAvailableResponse();
resp.Resumes.AddRange(response.Resume!.ConvertAll(x => new ResumeDesc
{
Name = x.Title,
ResumeUrl = x.Url
}));
return resp;
}
default:
throw new RpcException(new Status(StatusCode.Unimplemented, "Unimplemented statement"));
}
}
}