source: iknow-api/Repository/Implementations/UserRepository.cs@ 5eb7847

Last change on this file since 5eb7847 was 5eb7847, checked in by stefansaveski <stefansaveski19@…>, 11 months ago

Add JWT authentication and refactor namespaces

Introduced JWT-based authentication and authorization:

  • Configured JWT authentication in Program.cs with token validation.
  • Added [Authorize] attribute to a new getstring endpoint.

Refactored namespaces for consistency:

  • Updated namespaces from iknow_api.Core.* to iknow_api.*.

Enhanced middleware and dependency injection:

  • Registered IAuthService and IUserRepository.
  • Added app.UseAuthentication() and app.UseAuthorization().

Removed unused code and dependencies:

  • Deleted WeatherForecast class.
  • Cleaned up redundant imports.

Updated project dependencies to include JWT authentication library.

  • Property mode set to 100644
File size: 981 bytes
RevLine 
[5eb7847]1using iknow_api.Models;
2using iknow_api.Data;
3using iknow_api.Models;
[fc7b4b4]4using Microsoft.EntityFrameworkCore;
[9694de9]5
[271178d]6namespace iknow_api.Repositories
[9694de9]7{
8 public class UserRepository : IUserRepository
9 {
10 private readonly AppDbContext _context;
11
12 public UserRepository(AppDbContext context)
13 {
14 _context = context;
15 }
16
[fc7b4b4]17 public async Task<bool> UserExistsAsync(string username)
18 {
19 return await _context.User.AnyAsync(u => u.Email == username);
20 }
[9694de9]21
[fc7b4b4]22 public async Task<User?> GetUserByUsernameAsync(string username)
[9694de9]23 {
[fc7b4b4]24 return await _context.User.FirstOrDefaultAsync(u => u.Email == username);
[9694de9]25 }
26
[fc7b4b4]27 public async Task AddUserAsync(User user)
28 {
29 _context.User.Add(user);
30 await _context.SaveChangesAsync();
31 }
32
33 public async Task<int> GetUsersCountAsync()
34 {
35 return await _context.User.CountAsync();
36 }
[9694de9]37 }
38}
Note: See TracBrowser for help on using the repository browser.