Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/main/java/org/sopt/app/presentation/user/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import jakarta.validation.Valid;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -50,6 +52,9 @@ public class UserController {
@Value("${sopt.current.generation}")
private Long generation;

@Value("${cloud.aws.s3.uri}")
private String s3BaseUrl;

@Operation(summary = "솝탬프 정보 조회")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "success"),
Expand Down Expand Up @@ -113,8 +118,14 @@ public ResponseEntity<UserResponse.SoptLog> getUserSoptLog(
}
}
List<String> icons = authFacade.getIcons(isActive ? IconType.ACTIVE : IconType.INACTIVE);
List<String> iconPriority = List.of("sop-level", "poke", "soptamp", "duration");
icons.sort(Comparator.comparingInt(s -> {
String iconName = s.replaceAll("^" + s3BaseUrl + "sopt-log/|.png$", "");
Copy link

Copilot AI Mar 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The regex may not correctly match the literal ".png" extension since the period is unescaped. Consider using "\.png$" to ensure the period is treated as a literal dot.

Suggested change
String iconName = s.replaceAll("^" + s3BaseUrl + "sopt-log/|.png$", "");
String iconName = s.replaceAll("^" + s3BaseUrl + "sopt-log/|\\.png$", "");

Copilot uses AI. Check for mistakes.
return iconPriority.indexOf(iconName);
Copy link

Copilot AI Mar 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If iconPriority.indexOf(iconName) returns -1 for icons not listed in iconPriority, it could lead to unintended sorting behavior. Consider handling cases where iconName is not found explicitly.

Suggested change
return iconPriority.indexOf(iconName);
int index = iconPriority.indexOf(iconName);
return index == -1 ? Integer.MAX_VALUE : index;

Copilot uses AI. Check for mistakes.
}));
return ResponseEntity.ok(
SoptLog.of(soptLevel, pokeCount, soptampRank, soptDuring, isActive, icons, playgroundProfile,
partTypeToKorean,isFortuneChecked, fortuneText));
}

}