Skip to content

Commit

Permalink
Merge pull request #2 from ruusey/feature/r101
Browse files Browse the repository at this point in the history
JRealm-Data Release 1.0.1
  • Loading branch information
ruusey authored Feb 18, 2024
2 parents fef93e1 + 997d545 commit 00a64d8
Show file tree
Hide file tree
Showing 47 changed files with 989 additions and 167 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</parent>
<groupId>com.jrealm.data</groupId>
<artifactId>jrealm-data</artifactId>
<version>0.0.1</version>
<version>1.0.1</version>
<name>jrealm-data</name>
<description>Data access for JRealm</description>
<properties>
Expand Down Expand Up @@ -54,7 +54,7 @@
<dependency>
<groupId>com.jrealm.game</groupId>
<artifactId>jrealm</artifactId>
<version>0.3.1</version>
<version>0.3.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jrealm/data/JRealmDataApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
public class JRealmDataApplication {

public static void main(String[] args) {
GameDataManager.loadGameData();
GameDataManager.loadGameData(false);
SpringApplication.run(JRealmDataApplication.class, args);
}

Expand Down
61 changes: 30 additions & 31 deletions src/main/java/com/jrealm/data/controller/AccountController.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.jrealm.data.controller;

import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
Expand All @@ -13,6 +14,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.jrealm.data.dto.PingResponseDto;
import com.jrealm.data.dto.auth.AccountDto;
import com.jrealm.data.dto.auth.CreateTokenRequestDto;
import com.jrealm.data.dto.auth.CreateTokenResponseDto;
Expand All @@ -22,26 +24,42 @@
import com.jrealm.data.entity.auth.AccountAuthEntity;
import com.jrealm.data.entity.auth.AccountEntity;
import com.jrealm.data.service.AccountService;
import com.jrealm.data.service.PlayerDataService;
import com.jrealm.data.util.ApiUtils;


@RestController
public class AccountController {
private transient final AccountService jrealmAccounts;
private transient final PlayerDataService jrealmData;

public AccountController(@Autowired final AccountService clabAccount) {
this.jrealmAccounts = clabAccount;
public AccountController(@Autowired final AccountService jrealmAccountService,
@Autowired final PlayerDataService jrealmData) {
this.jrealmAccounts = jrealmAccountService;
this.jrealmData = jrealmData;
}

@RequestMapping(value = "/admin/account", method = RequestMethod.PUT, produces = { "application/json" })
@RequestMapping(value = "/ping", method = RequestMethod.GET, produces = { "application/json" })
public ResponseEntity<?> ping(final HttpServletRequest req) {
ResponseEntity<?> res = null;
try {
PingResponseDto response = PingResponseDto.builder().time(new Date().toString()).status("UP").build();
res = ApiUtils.buildSuccess(response);
} catch (final Exception e) {
final String errMsg = "Failed to get JRealm Account using headers ";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
}

@RequestMapping(value = "/admin/account", method = RequestMethod.PUT, produces = { "application/json" })
public ResponseEntity<?> updateAccount(final HttpServletRequest req, @RequestBody final AccountDto account) {
ResponseEntity<?> res = null;
try {
final AccountEntity updatedAccount = this.jrealmAccounts.updateAccountAndAuth(account);
res = ApiUtils.buildSuccess(updatedAccount);
} catch (final Exception e) {
final String errMsg = "Failed to update CLAB Account";
final String errMsg = "Failed to update JRealm Account";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -55,7 +73,7 @@ public ResponseEntity<?> getAccountByEmail(final HttpServletRequest req, @PathVa
final AccountDto account = this.jrealmAccounts.getAccountByEmail(email);
res = ApiUtils.buildSuccess(account);
} catch (final Exception e) {
final String errMsg = "Failed to get CLAB Account with email " + email;
final String errMsg = "Failed to get JRealm Account with email " + email;
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -69,7 +87,7 @@ public ResponseEntity<?> getAccount(final HttpServletRequest req) {
final AccountDto account = this.jrealmAccounts.getAccountByGuid(auth.getAccountGuid());
res = ApiUtils.buildSuccess(account);
} catch (final Exception e) {
final String errMsg = "Failed to get CLAB Account using headers ";
final String errMsg = "Failed to get JRealm Account using headers ";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -82,7 +100,7 @@ public ResponseEntity<?> getAccount(final HttpServletRequest req, @PathVariable
final AccountDto account = this.jrealmAccounts.getAccountById(accountId);
res = ApiUtils.buildSuccess(account);
} catch (final Exception e) {
final String errMsg = "Failed to get CLAB Account using headers ";
final String errMsg = "Failed to get JRealm Account using headers ";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -99,7 +117,7 @@ public ResponseEntity<?> getAllAccountsByPage(final HttpServletRequest req,
final List<AccountDto> accounts = this.jrealmAccounts.getAllAccounts(page, size);
res = ApiUtils.buildSuccess(accounts);
} catch (final Exception e) {
final String errMsg = "Failed to get All CLAB Accounts using headers ";
final String errMsg = "Failed to get All JRealm Accounts using headers ";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -112,28 +130,7 @@ public ResponseEntity<?> login(final HttpServletRequest request, @RequestBody fi
final SessionTokenDto userToken = this.jrealmAccounts.login(login);
res = ApiUtils.buildSuccess(userToken);
} catch (final Exception e) {
final String errMsg = "Error trying to login CLAB Account " + login.getEmail();
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
}

@RequestMapping(value = "/admin/account/learner-login", method = RequestMethod.POST, produces = {
"application/json" })
public ResponseEntity<?> learnerLogin(final HttpServletRequest request, @RequestBody final LoginRequestDto login) {
ResponseEntity<?> res = null;
try {
final SessionTokenDto userToken = this.jrealmAccounts.learnerLogin(login);
if (userToken != null) {
res = ApiUtils.buildSuccess(userToken);
} else {
final String errMsg = "Unable to retrieve session token for account " + login.getEmail();
final String exception = "Login failed, make sure a learner account with email" + login.toString()
+ " exists";
res = ApiUtils.buildAndLogError(errMsg, exception);
}
} catch (final Exception e) {
final String errMsg = "Login failed for user with email " + login.getEmail();
final String errMsg = "Error trying to login JRealm Account " + login.getEmail();
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand All @@ -159,9 +156,11 @@ public ResponseEntity<?> createAccount(final HttpServletRequest request,
ResponseEntity<?> res = null;
try {
final AccountEntity created = this.jrealmAccounts.registerJrealmAccount(account);
this.jrealmData.createInitialAccount(created.getAccountGuid(), account.getEmail(), account.getAccountName(),
0);
res = ApiUtils.buildSuccess(created);
} catch (final Exception e) {
final String errMsg = "Failed to register CLAB Account";
final String errMsg = "Failed to register JRealm Account";
res = ApiUtils.buildAndLogError(errMsg, e.getMessage());
}
return res;
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/com/jrealm/data/controller/PlayerDataController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
Expand Down Expand Up @@ -82,4 +83,18 @@ public ResponseEntity<?> saveCharacterStatsData(@PathVariable String characterUu
}
return res;
}

@DeleteMapping(value = "/account/character/{characterUuid}", produces = { "application/json" })
public ResponseEntity<?> deleteCharacter(@PathVariable String characterUuid) {
ResponseEntity<?> res = null;
try {
this.playerDataService.deleteCharacter(characterUuid);
res = ApiUtils.buildSuccess("Character " + characterUuid + " successfully deleted");
} catch (Exception e) {

res = ApiUtils.buildAndLogError("Failed to save character stats", e.getMessage());
e.printStackTrace();
}
return res;
}
}
4 changes: 3 additions & 1 deletion src/main/java/com/jrealm/data/dto/CharacterDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
Expand All @@ -17,7 +18,8 @@
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class CharacterDto extends TemporalDto{
@EqualsAndHashCode(callSuper=false)
public class CharacterDto extends TemporalDto {
private static final long serialVersionUID = -8940547643757956271L;

private String characterId;
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/dto/CharacterStatsDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
Expand All @@ -17,6 +18,7 @@
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper=false)
public class CharacterStatsDto extends TemporalDto{
private static final long serialVersionUID = -966774703891631356L;

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/dto/ChestDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
Expand All @@ -17,6 +18,7 @@
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper=false)
public class ChestDto extends TemporalDto {
private static final long serialVersionUID = 4633372389187160480L;

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/dto/GameItemRefDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
Expand All @@ -15,6 +16,7 @@
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper=false)
public class GameItemRefDto extends TemporalDto {
private static final long serialVersionUID = -5119762736198793613L;

Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/jrealm/data/dto/PingResponseDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.jrealm.data.dto;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper = false)
public class PingResponseDto {
private String time;
private String status;

}
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/dto/PlayerAccountDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
Expand All @@ -17,6 +18,7 @@
@Builder
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper=false)
public class PlayerAccountDto extends TemporalDto {

private static final long serialVersionUID = -3553188514579673153L;
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/jrealm/data/dto/TemporalDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,7 @@ public class TemporalDto implements Serializable {
private Date updated;
private Date deleted;

public boolean isDeleted() {
return this.deleted != null;
}
}
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/entity/CharacterEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Document("player_character")
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@EqualsAndHashCode(callSuper=false)
public class CharacterEntity extends TemporalEntity {
private static final long serialVersionUID = -6906497561358089565L;
@Id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Document("player_character_stats")
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@EqualsAndHashCode(callSuper=false)
public class CharacterStatsEntity extends TemporalEntity {
private static final long serialVersionUID = 186218452080820122L;
@Id
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/entity/ChestEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Document("player_chest")
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@EqualsAndHashCode(callSuper=false)
public class ChestEntity extends TemporalEntity{
private static final long serialVersionUID = 7607170635634825869L;
@Id
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/jrealm/data/entity/GameItemRefEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Document("player_game_item")
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@EqualsAndHashCode(callSuper=false)
public class GameItemRefEntity extends TemporalEntity {
private static final long serialVersionUID = -6575476631353169695L;
@Id
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/jrealm/data/entity/TemporalEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,8 @@ public class TemporalEntity implements Serializable {
@LastModifiedDate
private Date updated;
private Date deleted;

public boolean isDelete() {
return this.deleted != null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;


Expand All @@ -17,6 +18,7 @@
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper=false)
public class AccountAccessEntity extends TemporalEntity {

private static final long serialVersionUID = -4754594739686465193L;
Expand Down
Loading

0 comments on commit 00a64d8

Please sign in to comment.