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 FindUserAsync(Guid id) => _db.Users.FirstOrDefaultAsync(x => x.Id == id); public Task FindUserAsync(string userName, string email) => _db.Users.FirstOrDefaultAsync(x => x.Email == email || x.UserName == userName); public Task FindUserAsync(string emailOrUsername) => _db.Users.FirstOrDefaultAsync(x => x.Email == emailOrUsername || x.UserName == emailOrUsername); public async Task GetUserAsync() { var id = User.GetUserId(); if (id.HasValue == false) return null; var user = await _db.Users.FindAsync(id.Value); return user; } } }