Create components to respond to client request #200

Merged
lars.winzer merged 12 commits from feat/serverside-response into main 2026-03-24 15:02:16 +01:00
3 changed files with 28 additions and 38 deletions
Showing only changes of commit 02c82c4e95 - Show all commits
@@ -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; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
public class ErrorResponse extends Response { public class ErrorResponse extends Response {
private final String code; public ErrorResponse(SessionId sessionId, int requestId, String errorCode, String errorMessage) {
private final String message; super(sessionId, requestId, ResponseBody.builder()
.param("CODE", errorCode)
public ErrorResponse( .param("MSG", errorMessage)
SessionId sessionId, int requestId, String errorCode, String errorMessage) { .build()
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;
} }
@Override @Override
public String encode() { public String prefix() {
if (message != null && !message.isEmpty()) { return "-ERR";
return "-ERR CODE=" + code + " MSG=" + message;
} else {
return "-ERR CODE=" + code;
}
} }
} }
@@ -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; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
public abstract class Response { public abstract class Response {
protected SessionId sessionId; private final SessionId sessionId;
protected int requestId; 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() { public SessionId getSessionId() {
return sessionId; return sessionId;
@@ -13,4 +22,8 @@ public abstract class Response {
public int getRequestId() { public int getRequestId() {
return requestId; return requestId;
} }
public ResponseBody getBody() {
return body;
}
} }
@@ -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; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
public abstract class SuccessResponse extends Response { public abstract class SuccessResponse extends Response {
public SuccessResponse(SessionId sessionId, int requestId) { protected SuccessResponse(SessionId sessionId, int requestId, ResponseBody body) {
this.sessionId = sessionId; super(sessionId, requestId, body);
this.requestId = requestId;
} }
public final String encode() { @Override
String payload = payload(); public final String prefix() {
if (payload.isBlank()) { return "+OK";
return "+OK";
} else {
return "+OK " + payload;
}
}
protected String payload() {
return "";
} }
} }