From 8907bf81e1c014fb374897fd82759c2020dac327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kr=C3=BChlmann?= Date: Mon, 5 Jan 2026 22:23:06 +0100 Subject: [PATCH] Fix code smells --- ...chAuthorizationCodeGrantRequestEntityConverter.java | 3 ++- .../imgfloat/controller/ChannelApiController.java | 10 +++++----- .../kruhlmann/imgfloat/controller/ViewController.java | 9 ++++----- .../imgfloat/service/AssetCleanupService.java | 4 ---- .../imgfloat/service/AssetStorageService.java | 7 +++---- .../imgfloat/service/AuthorizationService.java | 3 --- 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/main/java/dev/kruhlmann/imgfloat/config/TwitchAuthorizationCodeGrantRequestEntityConverter.java b/src/main/java/dev/kruhlmann/imgfloat/config/TwitchAuthorizationCodeGrantRequestEntityConverter.java index c1300b2..6c9e2cc 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/config/TwitchAuthorizationCodeGrantRequestEntityConverter.java +++ b/src/main/java/dev/kruhlmann/imgfloat/config/TwitchAuthorizationCodeGrantRequestEntityConverter.java @@ -12,6 +12,7 @@ import org.springframework.security.oauth2.client.registration.ClientRegistratio import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.lang.Nullable; /** * Ensures Twitch token requests always include {@code client_id} and {@code client_secret} in the @@ -25,7 +26,7 @@ final class TwitchAuthorizationCodeGrantRequestEntityConverter new OAuth2AuthorizationCodeGrantRequestEntityConverter(); @Override - public RequestEntity convert(OAuth2AuthorizationCodeGrantRequest request) { + public @Nullable RequestEntity convert(@Nullable OAuth2AuthorizationCodeGrantRequest request) { RequestEntity entity = delegate.convert(request); if (entity == null || !(entity.getBody() instanceof MultiValueMap existingBody)) { return entity; diff --git a/src/main/java/dev/kruhlmann/imgfloat/controller/ChannelApiController.java b/src/main/java/dev/kruhlmann/imgfloat/controller/ChannelApiController.java index 350095a..9d54c52 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/controller/ChannelApiController.java +++ b/src/main/java/dev/kruhlmann/imgfloat/controller/ChannelApiController.java @@ -71,7 +71,7 @@ public class ChannelApiController { } @PostMapping("/admins") - public ResponseEntity addAdmin( + public ResponseEntity addAdmin( @PathVariable("broadcaster") String broadcaster, @Valid @RequestBody AdminRequest request, OAuth2AuthenticationToken oauthToken @@ -86,7 +86,7 @@ public class ChannelApiController { if (!added) { LOG.info("User {} already admin for {} or could not be added", logRequestUsername, logBroadcaster); } - return ResponseEntity.ok().body(added); + return ResponseEntity.ok(added); } @GetMapping("/admins") @@ -156,7 +156,7 @@ public class ChannelApiController { } @DeleteMapping("/admins/{username}") - public ResponseEntity removeAdmin( + public ResponseEntity removeAdmin( @PathVariable("broadcaster") String broadcaster, @PathVariable("username") String username, OAuth2AuthenticationToken oauthToken @@ -168,7 +168,7 @@ public class ChannelApiController { authorizationService.userMatchesSessionUsernameOrThrowHttpError(broadcaster, sessionUsername); LOG.info("User {} removing admin {} from {}", logSessionUsername, logUsername, logBroadcaster); boolean removed = channelDirectoryService.removeAdmin(broadcaster, username); - return ResponseEntity.ok().body(removed); + return ResponseEntity.ok(removed); } @GetMapping("/assets") @@ -369,7 +369,7 @@ public class ChannelApiController { } @DeleteMapping("/assets/{assetId}") - public ResponseEntity delete( + public ResponseEntity delete( @PathVariable("broadcaster") String broadcaster, @PathVariable("assetId") String assetId, OAuth2AuthenticationToken oauthToken diff --git a/src/main/java/dev/kruhlmann/imgfloat/controller/ViewController.java b/src/main/java/dev/kruhlmann/imgfloat/controller/ViewController.java index aee07ef..a027472 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/controller/ViewController.java +++ b/src/main/java/dev/kruhlmann/imgfloat/controller/ViewController.java @@ -13,7 +13,6 @@ import dev.kruhlmann.imgfloat.service.SettingsService; import dev.kruhlmann.imgfloat.service.VersionService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -28,22 +27,22 @@ public class ViewController { private final SettingsService settingsService; private final ObjectMapper objectMapper; private final AuthorizationService authorizationService; - - @Autowired - private long uploadLimitBytes; + private final long uploadLimitBytes; public ViewController( ChannelDirectoryService channelDirectoryService, VersionService versionService, SettingsService settingsService, ObjectMapper objectMapper, - AuthorizationService authorizationService + AuthorizationService authorizationService, + long uploadLimitBytes ) { this.channelDirectoryService = channelDirectoryService; this.versionService = versionService; this.settingsService = settingsService; this.objectMapper = objectMapper; this.authorizationService = authorizationService; + this.uploadLimitBytes = uploadLimitBytes; } @org.springframework.web.bind.annotation.GetMapping("/") diff --git a/src/main/java/dev/kruhlmann/imgfloat/service/AssetCleanupService.java b/src/main/java/dev/kruhlmann/imgfloat/service/AssetCleanupService.java index 50297b5..0a20d04 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/service/AssetCleanupService.java +++ b/src/main/java/dev/kruhlmann/imgfloat/service/AssetCleanupService.java @@ -2,12 +2,8 @@ package dev.kruhlmann.imgfloat.service; import dev.kruhlmann.imgfloat.model.Asset; import dev.kruhlmann.imgfloat.repository.AssetRepository; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.context.event.ApplicationReadyEvent; diff --git a/src/main/java/dev/kruhlmann/imgfloat/service/AssetStorageService.java b/src/main/java/dev/kruhlmann/imgfloat/service/AssetStorageService.java index ca94aba..0b9f873 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/service/AssetStorageService.java +++ b/src/main/java/dev/kruhlmann/imgfloat/service/AssetStorageService.java @@ -8,7 +8,6 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -58,7 +57,7 @@ public class AssetStorageService { Files.createDirectories(this.assetRoot); Files.createDirectories(this.previewRoot); } catch (IOException e) { - throw new RuntimeException("Failed to create asset storage directories", e); + throw new IllegalStateException("Failed to create asset storage directories", e); } } @@ -77,7 +76,7 @@ public class AssetStorageService { StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE ); - logger.info("Wrote asset to {}", file.toString()); + logger.info("Wrote asset to {}", file); } public void storePreview(String broadcaster, String assetId, byte[] previewBytes) throws IOException { @@ -93,7 +92,7 @@ public class AssetStorageService { StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE ); - logger.info("Wrote asset to {}", file.toString()); + logger.info("Wrote asset to {}", file); } public Optional loadAssetFile(Asset asset) { diff --git a/src/main/java/dev/kruhlmann/imgfloat/service/AuthorizationService.java b/src/main/java/dev/kruhlmann/imgfloat/service/AuthorizationService.java index 690c99c..1b45dac 100644 --- a/src/main/java/dev/kruhlmann/imgfloat/service/AuthorizationService.java +++ b/src/main/java/dev/kruhlmann/imgfloat/service/AuthorizationService.java @@ -4,9 +4,6 @@ import static org.springframework.http.HttpStatus.FORBIDDEN; import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.UNAUTHORIZED; -import dev.kruhlmann.imgfloat.model.OauthSessionUser; -import dev.kruhlmann.imgfloat.service.ChannelDirectoryService; -import dev.kruhlmann.imgfloat.service.SystemAdministratorService; import dev.kruhlmann.imgfloat.util.LogSanitizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory;