source: resTools_backend/backend/Controllers/UsersController.cs@ 899b19d

Last change on this file since 899b19d was 899b19d, checked in by Danilo <danilo.najkov@…>, 2 years ago

reviews full feature

  • Property mode set to 100644
File size: 1.6 KB
Line 
1namespace backend.Controllers;
2
3using backend.DTOs;
4using backend.Entities;
5using backend.Helpers;
6using backend.Models;
7using backend.Services;
8using Microsoft.AspNetCore.Mvc;
9
10[ApiController]
11[Route("[controller]")]
12public class UsersController : ControllerBase
13{
14 private readonly IUserService _userService = null;
15 private readonly IRestaurantService _restaurantService = null;
16
17 public UsersController(IUserService userService, IRestaurantService restaurantService)
18 {
19 _userService = userService;
20 _restaurantService = restaurantService;
21 }
22
23 [HttpPost("login")]
24 public async Task<AuthenticateResponse> Authenticate(AuthenticateRequest model)
25 {
26 var response = await _userService.Authenticate(model);
27
28 if (response == null)
29 throw new Exception("Email or password is incorrect");
30
31 return response;
32 }
33
34 [HttpGet("authed")]
35 public async Task<AuthenticateResponse> IsAuthed()
36 {
37 int userId = 0;
38 try
39 {
40 userId = (int)this.HttpContext.Items["User"];
41 }catch (Exception ex){ return null; }
42 User user = await _userService.GetById(userId);
43 return new AuthenticateResponse() { Email=user.Email, Id = user.Id};
44 }
45
46 [HttpPost("register")]
47 public async Task<AuthenticateResponse> Register(CreateUserRequest req)
48 {
49 bool isFirst = await _restaurantService.GetRestaurant() == null;
50 var response = await _userService.Register(req, isFirst);
51 if (isFirst)
52 {
53 await _restaurantService.CreateRestaurant("", response.Id);
54 }
55 return response;
56 }
57}
Note: See TracBrowser for help on using the repository browser.