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 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;
[PrimaryKey(nameof(Id))]
public class User
{
public Guid Id { get; set; }
public long TelegramId { get; set; }
[Key]
public required long TelegramId { get; set; }
public string? Username { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.Now;
}

View File

@ -1,19 +1,36 @@
namespace JOBot.Backend.Services.gRPC;
using Grpc.Core;
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(
RegisterRequest request,
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
{
UserId = request.UserId
Success = true
});
}
return Task.FromResult(new RegisterResponse
{
Success = false
});
}
}

View File

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