Skip to content

Commit ad45dd5

Browse files
committed
Update AccountController.cs
changed to respective Dtos
1 parent fe28def commit ad45dd5

File tree

1 file changed

+31
-26
lines changed

1 file changed

+31
-26
lines changed

Supermarket/V1/Controllers/AccountController.cs

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
using Microsoft.AspNetCore.Mvc;
66
using Microsoft.Extensions.Options;
77
using Microsoft.IdentityModel.Tokens;
8+
using Supermarket.ApiResponse;
89
using Supermarket.Core.Models;
910
using Supermarket.Resources;
11+
using Supermarket.V1.Dtos.AccountDtos;
1012
using System;
1113
using System.IdentityModel.Tokens.Jwt;
1214
using System.Linq;
@@ -39,16 +41,16 @@ public AccountController(UserManager<ApplicationUser> userManager, SignInManager
3941
[Route("Register")]
4042
[ProducesResponseType(StatusCodes.Status200OK)]
4143
[ProducesResponseType(StatusCodes.Status400BadRequest)]
42-
public async Task<IActionResult> Register([FromBody]RegisterResource resource)
44+
public async Task<IActionResult> Register([FromBody]RegisterDto registerDto)
4345
{
4446
var user = new ApplicationUser()
4547
{
46-
UserName = resource.Email,
47-
Email = resource.Email,
48-
FullName = resource.FullName
48+
UserName = registerDto.Email,
49+
Email = registerDto.Email,
50+
FullName = registerDto.FullName
4951
};
5052

51-
var result = await _userManager.CreateAsync(user, resource.Password);
53+
var result = await _userManager.CreateAsync(user, registerDto.Password);
5254

5355
return Ok(result);
5456
}
@@ -57,33 +59,36 @@ public async Task<IActionResult> Register([FromBody]RegisterResource resource)
5759
[Route("Login")]
5860
[ProducesResponseType(StatusCodes.Status200OK)]
5961
[ProducesResponseType(StatusCodes.Status400BadRequest)]
60-
public async Task<IActionResult> Login([FromBody]LoginResource resource)
62+
[ProducesResponseType(typeof(NotFoundResponse), StatusCodes.Status404NotFound)]
63+
[ProducesDefaultResponseType]
64+
public async Task<IActionResult> Login([FromBody]LoginDto loginDto)
6165
{
62-
var user = await _userManager.FindByNameAsync(resource.Email);
66+
var userDb = await _userManager.FindByNameAsync(loginDto.Email);
6367

64-
if (user != null && await _userManager.CheckPasswordAsync(user, resource.Password))
68+
if (userDb == null)
69+
return NotFound(new NotFoundResponse("User not found"));
70+
71+
var result = await _userManager.CheckPasswordAsync(userDb, loginDto.Password);
72+
73+
if(!result)
74+
return BadRequest(new BadRequestResponse("Username or password is incorrect"));
75+
76+
var tokenDescriptor = new SecurityTokenDescriptor
6577
{
66-
var tokenDescriptor = new SecurityTokenDescriptor
67-
{
68-
Subject = new ClaimsIdentity(new Claim[]
78+
Subject = new ClaimsIdentity(new Claim[]
6979
{
70-
new Claim("UserId", user.Id.ToString())
80+
new Claim("UserId", userDb.Id.ToString())
7181
}),
72-
Expires = DateTime.UtcNow.AddDays(1),
73-
SigningCredentials = new SigningCredentials(
82+
Expires = DateTime.UtcNow.AddDays(1),
83+
SigningCredentials = new SigningCredentials(
7484
new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)),
7585
SecurityAlgorithms.HmacSha256Signature)
76-
};
77-
var tokenHandler = new JwtSecurityTokenHandler();
78-
var securityToken = tokenHandler.CreateToken(tokenDescriptor);
79-
var token = tokenHandler.WriteToken(securityToken);
86+
};
87+
var tokenHandler = new JwtSecurityTokenHandler();
88+
var securityToken = tokenHandler.CreateToken(tokenDescriptor);
89+
var token = tokenHandler.WriteToken(securityToken);
8090

81-
return Ok(new { token });
82-
}
83-
else
84-
{
85-
return BadRequest(new { message = "Username or password is incorrect" });
86-
}
91+
return Ok(new { token });
8792
}
8893

8994
[HttpGet]
@@ -95,9 +100,9 @@ public async Task<IActionResult> GetUserInfo()
95100
var userId = User.Claims.First(c => c.Type == "UserId").Value;
96101
var user = await _userManager.FindByIdAsync(userId);
97102

98-
var userProfileResource = _mapper.Map<ApplicationUser, UserProfileResource>(user);
103+
var userInfoDto = _mapper.Map<ApplicationUser, UserInfoDto>(user);
99104

100-
return Ok(userProfileResource);
105+
return Ok(userInfoDto);
101106
}
102107
}
103108
}

0 commit comments

Comments
 (0)