Compare commits

..

8 Commits

Author SHA1 Message Date
Gustavo Henrique Miranda c62c5a20b3
Update src/main/java/com/mediamanager/model/TrackHasComposer.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:33:52 -03:00
Gustavo Henrique Santos Souza de Miranda 2ee94c8331 Fix missing closing braces in Delete handlers
Fix compilation errors caused by missing or malformed class-closing braces
  in three Delete handler classes. These syntax errors prevented the classes
  from compiling properly.

  Changes:
  - DeleteTrackHasGenreHandler: Remove duplicate closing brace at line 62
    and ensure proper class-closing brace structure
  - DeleteTrackHasArtistHandler: Add missing class-closing brace at end of file
  - DeleteTrackHasComposerHandler: Add missing class-closing brace at end of file

  All three handlers now have correct brace structure:
    - Catch block closing brace (8 spaces indentation)
    - handle() method closing brace (4 spaces indentation)
    - Class closing brace (0 spaces indentation)

  This ensures all three classes compile successfully without syntax errors.

  Modified:
  - src/main/java/com/mediamanager/service/delegate/handler/trackhasgenre/DeleteTrackHasGenreHandler.java
  - src/main/java/com/mediamanager/service/delegate/handler/trackhasartist/DeleteTrackHasArtistHandler.java
  - src/main/java/com/mediamanager/service/delegate/handler/trackhascomposer/DeleteTrackHasComposerHandler.java

  🤖 Generated with [Claude Code](https://claude.com/claude-code)

  Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-09 19:25:49 -03:00
Gustavo Henrique Santos Souza de Miranda be24b68923 Add ID validation to GetTrackHasGenreByIdHandler
Add validation to reject ID values <= 0 in GetTrackHasGenreByIdHandler
  before calling the service layer. This prevents the protobuf default value
  of 0 from being processed, which would incorrectly pass the null check in
  the service but represents an invalid ID.

  Changes:
  - Extract ID from GetTrackHasGenreByIdRequest and validate id <= 0
  - Throw IllegalArgumentException with message "ID must be greater than 0"
    if validation fails
  - Add specific catch block for IllegalArgumentException that returns
    HTTP 400 status code with "Validation error: " prefix
  - Mirrors validation pattern from CreateTrackHasGenreHandler

  This aligns with validation patterns used in similar handlers throughout
  the codebase (GetTrackHasArtistByIdHandler, GetTrackHasComposerByIdHandler)
  and ensures consistent error handling for invalid ID inputs.

  Modified:
  - src/main/java/com/mediamanager/service/delegate/handler/trackhasgenre/GetTrackHasGenreByIdHandler.java

  🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-12-09 19:21:04 -03:00
Gustavo Henrique Miranda 19ddf262df
Update src/main/java/com/mediamanager/service/delegate/handler/trackhasgenre/GetTrackHasGenreByIdHandler.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:18:40 -03:00
Gustavo Henrique Miranda b2571de6ad
Update src/main/java/com/mediamanager/model/TrackHasGenre.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:15:46 -03:00
Gustavo Henrique Miranda b759f0f770
Update src/main/java/com/mediamanager/service/delegate/handler/trackhasartist/DeleteTrackHasArtistHandler.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:15:25 -03:00
Gustavo Henrique Miranda e994f4ef70
Update src/main/java/com/mediamanager/service/delegate/handler/trackhascomposer/DeleteTrackHasComposerHandler.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:14:54 -03:00
Gustavo Henrique Miranda 1bbbc4f2db
Update src/main/java/com/mediamanager/model/TrackHasArtist.java
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 19:14:37 -03:00
7 changed files with 23 additions and 6 deletions

View File

@ -3,7 +3,10 @@ package com.mediamanager.model;
import jakarta.persistence.*; import jakarta.persistence.*;
@Entity @Entity
@Table(name = "trackhasartist") @Table(
name = "trackhasartist",
uniqueConstraints = @UniqueConstraint(columnNames = {"fk_track_id", "fk_artist_id"})
)
public class TrackHasArtist { public class TrackHasArtist {
@Id @Id

View File

@ -3,7 +3,10 @@ package com.mediamanager.model;
import jakarta.persistence.*; import jakarta.persistence.*;
@Entity @Entity
@Table(name = "trackhascomposer") @Table(
name = "trackhascomposer",
uniqueConstraints = @UniqueConstraint(columnNames = {"fk_track_id", "fk_composer_id"})
)
public class TrackHasComposer { public class TrackHasComposer {
@Id @Id

View File

@ -3,7 +3,8 @@ package com.mediamanager.model;
import jakarta.persistence.*; import jakarta.persistence.*;
@Entity @Entity
@Table(name = "trackhasgenre") @Table(name = "trackhasgenre",
uniqueConstraints = @UniqueConstraint(columnNames = {"fk_track_id", "fk_genre_id"}))
public class TrackHasGenre { public class TrackHasGenre {
@Id @Id

View File

@ -32,6 +32,10 @@ public class GetTrackHasGenreByIdHandler implements ActionHandler {
TrackHasGenreMessages.GetTrackHasGenreByIdRequest.parseFrom(requestPayload); TrackHasGenreMessages.GetTrackHasGenreByIdRequest.parseFrom(requestPayload);
int id = getByIdRequest.getId(); int id = getByIdRequest.getId();
if (id <= 0) {
throw new IllegalArgumentException("ID must be greater than 0");
}
Optional<TrackHasGenre> trackHasGenreOpt = trackHasGenreService.getTrackHasGenreById(id); Optional<TrackHasGenre> trackHasGenreOpt = trackHasGenreService.getTrackHasGenreById(id);
if (trackHasGenreOpt.isEmpty()){ if (trackHasGenreOpt.isEmpty()){
@ -45,7 +49,13 @@ public class GetTrackHasGenreByIdHandler implements ActionHandler {
.setTrackhasgenre(trackHasGenreProto) .setTrackhasgenre(trackHasGenreProto)
.build(); .build();
return TransportProtocol.Response.newBuilder() return TransportProtocol.Response.newBuilder()
.setStatusCode(200)
.setPayload(getByIdResponse.toByteString()); .setPayload(getByIdResponse.toByteString());
} catch (IllegalArgumentException e) {
logger.error("Validation error", e);
return TransportProtocol.Response.newBuilder()
.setStatusCode(400)
.setPayload(ByteString.copyFromUtf8("Validation error: " + e.getMessage()));
} catch (Exception e) { } catch (Exception e) {
logger.error("Error getting track has genre by ID", e); logger.error("Error getting track has genre by ID", e);
return TransportProtocol.Response.newBuilder() return TransportProtocol.Response.newBuilder()