Change discordId type from integer to string across frontend, backend, and API schema for consistency and proper validation.

This commit is contained in:
akastijn 2025-11-23 04:14:21 +01:00
parent ea4780cc91
commit 2e7c91bb73
7 changed files with 22 additions and 15 deletions

View File

@ -39,8 +39,9 @@ public class AppealController implements AppealsApi {
private final com.alttd.altitudeweb.services.discord.AppealDiscord appealDiscord;
@Override
public ResponseEntity<BannedUserResponseDto> getBannedUser(Long discordId) throws Exception {
return new ResponseEntity<>(discordAppeal.getBannedUser(discordId), HttpStatus.OK);
public ResponseEntity<BannedUserResponseDto> getBannedUser(String discordId) throws Exception {
long discordIdAsLong = Long.parseLong(discordId);
return new ResponseEntity<>(discordAppeal.getBannedUser(discordIdAsLong), HttpStatus.OK);
}
@RateLimit(limit = 3, timeValue = 1, timeUnit = TimeUnit.HOURS, key = "discordAppeal")

View File

@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
public class BannedUserToBannedUserDtoMapper {
public BannedUserDto map(BannedUser bannedUser) {
return new BannedUserDto(bannedUser.userId(), bannedUser.reason(), bannedUser.name(), bannedUser.avatarUrl());
return new BannedUserDto(String.valueOf(bannedUser.userId()), bannedUser.reason(), bannedUser.name(), bannedUser.avatarUrl());
}
}

View File

@ -14,7 +14,7 @@ public class DiscordAppealDtoToDiscordAppealMapper {
return new DiscordAppeal(
UUID.randomUUID(),
loggedInUserUuid,
discordAppealDto.getDiscordId(),
Long.parseLong(discordAppealDto.getDiscordId()),
discordUsername,
discordAppealDto.getAppeal(),
Instant.now(),

View File

@ -49,7 +49,8 @@ public class DiscordAppeal {
public FormResponseDto submitAppeal(DiscordAppealDto discordAppealDto) {
DiscordAppealDiscord discordAppealDiscord = DiscordAppealDiscord.getInstance();
Optional<BannedUser> join = discordAppealDiscord.getBannedUser(discordAppealDto.getDiscordId()).join();
long discordId = Long.parseLong(discordAppealDto.getDiscordId());
Optional<BannedUser> join = discordAppealDiscord.getBannedUser(discordId).join();
if (join.isEmpty()) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "User not found");
}

View File

@ -136,7 +136,7 @@ export class DiscordAppealComponent implements OnInit {
this.bannedUser = {
isBanned: false,
bannedUser: {
userId: 212303885988134914,
userId: '212303885988134914',
reason: "This is a test punishment",
name: "stijn",
avatarUrl: "https://cdn.discordapp.com/avatars/212303885988134914/3a264be54ca7208d638a22143fc8fdb8.webp?size=160"
@ -145,7 +145,7 @@ export class DiscordAppealComponent implements OnInit {
this.nextPage();
return
}
this.appealService.getBannedUser(Number(this.discordId))
this.appealService.getBannedUser(this.discordId)
.subscribe(user => {
this.bannedUser = user
this.nextPage();
@ -178,7 +178,7 @@ export class DiscordAppealComponent implements OnInit {
throw new Error('JWT subject is null, are you logged in?');
}
const appeal: DiscordAppeal = {
discordId: Number(this.discordId),
discordId: this.discordId,
appeal: rawValue.appeal,
email: rawValue.email,
}

View File

@ -124,9 +124,10 @@ components:
- email
properties:
discordId:
type: integer
format: int64
description: Discord user's unique identifier'
type: string
pattern: "^[0-9]{17,18}$"
minLength: 17
maxLength: 18
appeal:
type: string
description: Appeal text explaining why the punishment should be reconsidered

View File

@ -11,8 +11,10 @@ getBannedUser:
required: true
description: The discord id of the user
schema:
type: integer
format: int64
type: string
pattern: "^[0-9]{17,18}$"
minLength: 17
maxLength: 18
responses:
'200':
description: Banned user
@ -47,8 +49,10 @@ components:
- avatarUrl
properties:
userId:
type: integer
format: int64
type: string
pattern: "^[0-9]{17,18}$"
minLength: 17
maxLength: 18
reason:
type: string
name: