public async Task <ActionResult> SelectAvatar([FromBody] AvatarSelectRequest request) { if (!int.TryParse(request.UniqueId, out var uniqueIdInt)) { return(BadRequest()); } var avatar = await _hotelHttp.SelectAvatarAsync(uniqueIdInt); if (avatar == null) { await _sessionService.LogOutAsync(); return(Unauthorized()); } return(Ok(new AvatarSelectResponse { UniqueId = $"{avatar.AvatarId}", Name = avatar.Name, FigureString = avatar.Figure, Motto = avatar.Motto, BuildersClubMember = false, HabboClubMember = true, LastWebAccess = DateTimeOffset.UtcNow, CreationTime = DateTimeOffset.UtcNow })); }
public async Task <ActionResult> Login([FromBody] LoginRequest request) { if (string.IsNullOrEmpty(request.Email) || string.IsNullOrEmpty(request.Password)) { return(StatusCode(401, new LoginErrorResponse { Message = LoginErrorCode.InvalidPassword, Captcha = false })); } // Fresh cookies. _hotelHttp.ClearCookies(); // Try to authenticate at sunnieday. var authResult = await _hotelHttp.AuthenticateAsync(request.Email, request.Password); if (authResult == false) { return(StatusCode(401, new LoginErrorResponse { Message = LoginErrorCode.InvalidPassword, Captcha = false })); } // Set to authenticated in session. _session.Authenticated = true; _session.SaveChanges = true; // Load avatars. var avatars = await _hotelHttp.GetAvatarsAsync(); // Cache avatars. await _cacheService.CacheAvatarsAsync(avatars); var avatar = avatars.First(); // Select first avatar. await _hotelHttp.SelectAvatarAsync(avatar.AvatarId); // Get avatar information. var me = await _hotelHttp.GetCurrentAvatarAsync(); // Fetch user data. return(StatusCode(200, new LoginResponse { UniqueId = $"{avatar.AvatarId}", Name = me.Name, FigureString = me.Figure, Motto = me.Motto, BuildersClubMember = false, // ??? HabboClubMember = true, LastWebAccess = DateTimeOffset.UtcNow, CreationTime = DateTimeOffset.UtcNow, SessionLogId = 1337, LoginLogId = 7331, Email = string.Empty, // TODO: Set? IdentityId = avatar.AvatarId, EmailVerified = true, IdentityVerified = true, IdentityType = "HABBO", Trusted = true, Force = new[] { "NONE" }, AccountId = 1, // ??? TODO Country = "nl", Traits = new[] { "USER" }, Partner = "NO_PARTNER" })); }