From 9c09927d099ae45b61ad295d7a81fa8fd89d14b8 Mon Sep 17 00:00:00 2001 From: Mathis Ginkel Date: Fri, 10 Apr 2026 23:25:05 +0200 Subject: [PATCH] Docs: Adding Server Commands for Client Chat to the protocol document manually reverting changes --- .../networking/commands/protocol-document.md | 99 +++++++++++++++++++ .../dbis/cs108/casono/server/ServerApp.java | 7 +- .../check_nick/CheckUsernameHandler.java | 6 +- .../check_nick/CheckUsernameParser.java | 4 +- .../check_nick/CheckUsernameRequest.java | 6 +- .../check_nick/CheckUsernameResponse.java | 7 +- .../server/domain/message/MessageManager.java | 16 --- 7 files changed, 109 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/message/MessageManager.java diff --git a/documents/docs/networking/commands/protocol-document.md b/documents/docs/networking/commands/protocol-document.md index b08cf7f..e53c3d4 100644 --- a/documents/docs/networking/commands/protocol-document.md +++ b/documents/docs/networking/commands/protocol-document.md @@ -341,4 +341,103 @@ LIST_USERS END END END +``` + +## SEND_MESSAGE command +The `SEND_MESSAGE` command is used to transfer the chat message sent by a user to the server. +### Required pre-execution checks +None. + +### Request Parameters + +| Field | Type | Description | +|:---------|:----------------|:-------------------------------------------------------------------| +| `TYPE` | `Enum { private final UserRegistry userRegistry; - /** * Creates a new handler for checking username availability. * @@ -20,7 +17,6 @@ public class CheckUsernameHandler extends CommandHandler { super(responseDispatcher); this.userRegistry = userRegistry; } - /** * Executes the username availability check for the given request. * @@ -40,4 +36,4 @@ public class CheckUsernameHandler extends CommandHandler { } responseDispatcher.dispatch(new CheckUsernameResponse(request.getContext(), availability)); } -} +} \ No newline at end of file diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameParser.java index a60f499..1add299 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameParser.java @@ -1,9 +1,7 @@ package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick; - import ch.unibas.dmi.dbis.cs108.casono.server.network.command.parsing.CommandParser; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.PrimitiveRequest; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.accessor.RequestParameterAccessor; -import ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick.CheckUsernameRequest; /** Parses a primitive request into a {@link CheckUsernameRequest}. */ public class CheckUsernameParser implements CommandParser { /** @@ -18,4 +16,4 @@ public class CheckUsernameParser implements CommandParser new RequestParameterAccessor(primitiveRequest.parameters()); return new CheckUsernameRequest(primitiveRequest.context(), accessor.require("USERNAME")); } -} +} \ No newline at end of file diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameRequest.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameRequest.java index 7247b0e..d58ef7d 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameRequest.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameRequest.java @@ -1,12 +1,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick; - import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.Request; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RequestContext; - /** Request implementation used to check whether a username is available or already taken */ public class CheckUsernameRequest extends Request { private final String username; - /** * Constructs a new CheckUsernameRequest with the given context and username to check * @@ -18,7 +15,6 @@ public class CheckUsernameRequest extends Request { super(context); this.username = username; } - /** * Returns the provided username in the request * @@ -27,4 +23,4 @@ public class CheckUsernameRequest extends Request { public String getUsername() { return username; } -} +} \ No newline at end of file diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameResponse.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameResponse.java index 5901a80..81c75dd 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameResponse.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameResponse.java @@ -2,8 +2,7 @@ package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RequestContext; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.SuccessResponse; -import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBody; - +import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBodyBuilder; /** Response indicating the availability status of a username check. */ public class CheckUsernameResponse extends SuccessResponse { /** @@ -13,6 +12,6 @@ public class CheckUsernameResponse extends SuccessResponse { * @param availability the availability status of the requested username */ public CheckUsernameResponse(RequestContext context, UsernameAvailability availability) { - super(context, ResponseBody.builder().param("STATUS", availability).build()); + super(context, new ResponseBodyBuilder().param("STATUS", availability).build()); } -} +} \ No newline at end of file diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/message/MessageManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/message/MessageManager.java deleted file mode 100644 index 8de0f89..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/message/MessageManager.java +++ /dev/null @@ -1,16 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.casono.server.domain.message; - -import ch.unibas.dmi.dbis.cs108.casono.server.domain.user.UserRegistry; - -/** NOT USED * */ -public class MessageManager { - private final UserRegistry userRegistry; - - public MessageManager(UserRegistry userRegistry) { - this.userRegistry = userRegistry; - } - - public void broadcast(Message message) { - // userRegistry.getAllUsers().forEach(user -> user.enqueueMessage(message)); - } -}