public IActionResult Login([FromBody] LoginRequest loginRequest)
        {
            var creditials = Credentials.FromRawData(loginRequest.Email.ToLower(), loginRequest.Password);
            var client     = _userFacade.FindByCredentials(creditials);

            if (client != null)
            {
                string roleClaim;
                if (client.Type.Equals(UserType.Admin))
                {
                    roleClaim = Claims.Roles.Admin;
                }
                else if (client.Type.Equals(UserType.Moderator))
                {
                    roleClaim = Claims.Roles.Moderator;
                }
                else if (client.Type.Equals(UserType.User))
                {
                    roleClaim = Claims.Roles.User;
                }
                else
                {
                    roleClaim = Claims.Roles.UnConfirmed;
                }

                var response = new LoginResponse(client.UserProfile.Name, client.Credentials.Email,
                                                 client.UserProfile.AvatarLink, _jwtIssuer.IssueJwt(roleClaim, client.Id),
                                                 client.UserProfile.IsTeacher);
                return(Ok(response));
            }

            return(Unauthorized());
        }
예제 #2
0
        public async Task <IActionResult> CreateShynee(
            [FromBody] CreateShynee shynee)
        {
            var shyneeCredentials = new ShyneeCredentials(
                shynee.Email,
                Hasher.HashPassword(shynee.Password));
            var shyneeProfile = new ShyneeProfile(
                shynee.Nickname,
                shynee.Name,
                shynee.Dob,
                shynee.Gender,
                shynee.Interests,
                shynee.PersonalInfo);
            var createdShynee = await _shyneesService.CreateShyneeAsync(
                shyneeCredentials,
                shyneeProfile);

            var shyneeProfileDto = new ShyneeProfileDto(
                shyneeProfile.Nickname.Parameter,
                shyneeProfile.AvatarUri.Parameter,
                shyneeProfile.Name.Parameter,
                shyneeProfile.Dob.Parameter,
                shyneeProfile.Gender.Parameter,
                shyneeProfile.Interests.Parameter,
                shyneeProfile.PersonalInfo.Parameter);
            var shyneeCredentialsDto = new ShyneeCredentialsDto(
                createdShynee.Id,
                createdShynee.Credentials.Email,
                _jwtIssuer.IssueJwt(createdShynee.Id),
                shyneeProfileDto);

            return(Ok(shyneeCredentialsDto));
        }