2026-04-11 21:36:05 +02:00

36 lines
1.1 KiB
C#

using AutoMapper;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using OnlyPrompt.Backend.Database;
using OnlyPrompt.Backend.Database.Models;
using OnlyPrompt.Backend.Utils;
namespace OnlyPrompt.Backend.Controllers
{
public abstract class BaseController : Controller
{
protected OnlyPromptContext _db;
protected IMapper _mapper;
public BaseController(OnlyPromptContext db, IMapper mapper)
{
_db=db;
_mapper=mapper;
}
public Task<UserModel?> FindUserAsync(Guid id) => _db.Users.FirstOrDefaultAsync(x => x.Id == id);
public Task<UserModel?> FindUserAsync(string userName, string email) => _db.Users.FirstOrDefaultAsync(x => x.Email == email || x.UserName == userName);
public Task<UserModel?> FindUserAsync(string emailOrUsername) => _db.Users.FirstOrDefaultAsync(x => x.Email == emailOrUsername || x.UserName == emailOrUsername);
public async Task<UserModel?> GetUserAsync()
{
var id = User.GetUserId();
if (id.HasValue == false)
return null;
var user = await _db.Users.FindAsync(id.Value);
return user;
}
}
}