From 02c82c4e953fb59084065613a11f84325fe8802f Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Tue, 24 Mar 2026 13:11:25 +0100 Subject: [PATCH] Refactor: Responses to use new ResponseBody --- .../network/response/ErrorResponse.java | 30 +++++-------------- .../server/network/response/Response.java | 17 +++++++++-- .../network/response/SuccessResponse.java | 19 ++++-------- 3 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/ErrorResponse.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/ErrorResponse.java index 801667e..a26244b 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/ErrorResponse.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/ErrorResponse.java @@ -3,30 +3,16 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.response; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId; public class ErrorResponse extends Response { - private final String code; - private final String message; - - public ErrorResponse( - SessionId sessionId, int requestId, String errorCode, String errorMessage) { - this.sessionId = sessionId; - this.requestId = requestId; - this.code = errorCode; - this.message = errorMessage; - } - - public ErrorResponse(SessionId sessionId, int requestId, String errorCode) { - this.sessionId = sessionId; - this.requestId = requestId; - this.code = errorCode; - this.message = null; + public ErrorResponse(SessionId sessionId, int requestId, String errorCode, String errorMessage) { + super(sessionId, requestId, ResponseBody.builder() + .param("CODE", errorCode) + .param("MSG", errorMessage) + .build() + ); } @Override - public String encode() { - if (message != null && !message.isEmpty()) { - return "-ERR CODE=" + code + " MSG=" + message; - } else { - return "-ERR CODE=" + code; - } + public String prefix() { + return "-ERR"; } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/Response.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/Response.java index c2274ad..b42e7af 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/Response.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/Response.java @@ -3,8 +3,17 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.response; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId; public abstract class Response { - protected SessionId sessionId; - protected int requestId; + private final SessionId sessionId; + private final int requestId; + private final ResponseBody body; + + protected Response(SessionId sessionId, int requestId, ResponseBody body) { + this.sessionId = sessionId; + this.requestId = requestId; + this.body = body; + } + + public abstract String prefix(); public SessionId getSessionId() { return sessionId; @@ -13,4 +22,8 @@ public abstract class Response { public int getRequestId() { return requestId; } + + public ResponseBody getBody() { + return body; + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/SuccessResponse.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/SuccessResponse.java index e9f9f2d..dae5308 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/SuccessResponse.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/response/SuccessResponse.java @@ -3,21 +3,12 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.response; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId; public abstract class SuccessResponse extends Response { - public SuccessResponse(SessionId sessionId, int requestId) { - this.sessionId = sessionId; - this.requestId = requestId; + protected SuccessResponse(SessionId sessionId, int requestId, ResponseBody body) { + super(sessionId, requestId, body); } - public final String encode() { - String payload = payload(); - if (payload.isBlank()) { - return "+OK"; - } else { - return "+OK " + payload; - } - } - - protected String payload() { - return ""; + @Override + public final String prefix() { + return "+OK"; } }