feat: created register method for entry

This commit is contained in:
Pavel-Savely Savianok 2025-05-01 01:06:16 +03:00
parent 881ae85ef7
commit c09d17047d
4 changed files with 37 additions and 6 deletions

View File

@ -8,4 +8,12 @@ class AppDbContext : DbContext
public DbSet<User> Users { get; set; } public DbSet<User> Users { get; set; }
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>()
.HasAlternateKey(b => b.TelegramId);
}
} }

View File

@ -1,9 +1,15 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace JOBot.Backend.DAL.Models; namespace JOBot.Backend.DAL.Models;
[PrimaryKey(nameof(Id))]
public class User public class User
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public long TelegramId { get; set; }
[Key]
public required long TelegramId { get; set; }
public string? Username { get; set; } public string? Username { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.Now; public DateTime CreatedAt { get; set; } = DateTime.Now;
} }

View File

@ -1,19 +1,36 @@
namespace JOBot.Backend.Services.gRPC;
using Grpc.Core; using Grpc.Core;
using JOBot.Proto; using JOBot.Proto;
using JOBot.Backend.DAL.Context;
class UserService : User.UserBase using Models = JOBot.Backend.DAL.Models;
namespace JOBot.Backend.Services.gRPC;
class UserService(AppDbContext dbContext) : User.UserBase
{ {
public override Task<RegisterResponse> Register( public override Task<RegisterResponse> Register(
RegisterRequest request, RegisterRequest request,
ServerCallContext context) ServerCallContext context)
{ {
if(!dbContext.Users.Where(x => x.TelegramId == request.UserId)
.Any())
{
dbContext.Users.Add(new Models.User()
{
TelegramId = request.UserId,
Username = !string.IsNullOrEmpty(request.Username) ? request.Username : null
});
return Task.FromResult(new RegisterResponse
{
Success = true
});
}
return Task.FromResult(new RegisterResponse return Task.FromResult(new RegisterResponse
{ {
UserId = request.UserId Success = false
}); });
} }
} }

View File

@ -11,5 +11,5 @@ message RegisterRequest{
} }
message RegisterResponse{ message RegisterResponse{
int64 user_id = 1; bool success = 1;
} }