diff --git a/src/main/java/icu/samnyan/aqua/sega/general/service/CardService.kt b/src/main/java/icu/samnyan/aqua/sega/general/service/CardService.kt index 46457fd4..fc5e2cf4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/service/CardService.kt +++ b/src/main/java/icu/samnyan/aqua/sega/general/service/CardService.kt @@ -33,10 +33,17 @@ class CardService(val cardRepo: CardRepository) /** * Find a card by its access code + * + * If the card is linked to a user, return the user's ghost card instead + * * @param accessCode String represent of an access code * @return Optional of a Card */ - fun getCardByAccessCode(accessCode: String?): Optional = cardRepo.findByLuid(accessCode) + fun getCardByAccessCode(accessCode: String?): Optional = Optional.ofNullable( + cardRepo.findByLuid(accessCode).getOrNull()?.let { + it.aquaUser?.ghostCard ?: it + } + ) /** * Register a new card with access code