Create components to respond to client request #200
+8
-22
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-2
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-13
@@ -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 "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user