36 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|