Merge branch 'feature/backend-websockets' into 'main'
Backend websockets See merge request cse1105/2025-2026/teams/csep-team-76!16
This commit is contained in:
commit
433f289c55
10 changed files with 242 additions and 8 deletions
5
commons/src/main/java/commons/ws/Topics.java
Normal file
5
commons/src/main/java/commons/ws/Topics.java
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
package commons.ws;
|
||||
|
||||
public class Topics {
|
||||
public static final String RECIPES = "/subscribe/recipe";
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package commons.ws.messages;
|
||||
|
||||
import commons.Recipe;
|
||||
|
||||
/**
|
||||
* Message sent when a new recipe is created.
|
||||
*
|
||||
* @see commons.ws.messages.Message.Type#RECIPE_CREATE
|
||||
*/
|
||||
public class CreateRecipeMessage implements Message {
|
||||
private Recipe recipe;
|
||||
|
||||
public CreateRecipeMessage(Recipe recipe) {
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return Type.RECIPE_CREATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the created recipe.
|
||||
*
|
||||
* @return The created recipe.
|
||||
*/
|
||||
public Recipe getRecipe() {
|
||||
return recipe;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package commons.ws.messages;
|
||||
|
||||
/**
|
||||
* Message sent when a recipe is deleted.
|
||||
*
|
||||
* @see commons.ws.messages.Message.Type#RECIPE_DELETE
|
||||
*/
|
||||
public class DeleteRecipeMessage implements Message {
|
||||
private Long recipeId;
|
||||
|
||||
public DeleteRecipeMessage(Long recipeId) {
|
||||
this.recipeId = recipeId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return Type.RECIPE_DELETE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ID of the deleted recipe.
|
||||
*
|
||||
* @return The ID of the deleted recipe.
|
||||
*/
|
||||
public Long getRecipeId() {
|
||||
return recipeId;
|
||||
}
|
||||
}
|
||||
44
commons/src/main/java/commons/ws/messages/Message.java
Normal file
44
commons/src/main/java/commons/ws/messages/Message.java
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
package commons.ws.messages;
|
||||
|
||||
public interface Message {
|
||||
public enum Type {
|
||||
/**
|
||||
* Message sent when a new recipe is created.
|
||||
*
|
||||
* @see commons.ws.messages.CreateRecipeMessage
|
||||
*/
|
||||
RECIPE_CREATE,
|
||||
|
||||
/**
|
||||
* Message sent when an existing recipe is updated.
|
||||
*
|
||||
* @see commons.ws.messages.UpdateRecipeMessage
|
||||
*/
|
||||
RECIPE_UPDATE,
|
||||
|
||||
/**
|
||||
* Message sent when a recipe is deleted.
|
||||
*
|
||||
* @see commons.ws.messages.DeleteRecipeMessage
|
||||
*/
|
||||
RECIPE_DELETE
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the type of the message.
|
||||
* This can be used to match the message to the appropriate handler.
|
||||
*
|
||||
* <h3>Example</h3>
|
||||
* <pre>
|
||||
* Message msg = ...;
|
||||
* switch (msg.getType()) {
|
||||
* case RECIPE_CREATE -> handleCreate((CreateRecipeMessage) msg);
|
||||
* case RECIPE_UPDATE -> handleUpdate((UpdateRecipeMessage) msg);
|
||||
* default -> { /* handle other cases *\/ }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @return The type of the message.
|
||||
*/
|
||||
public Type getType();
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package commons.ws.messages;
|
||||
|
||||
import commons.Recipe;
|
||||
|
||||
/**
|
||||
* Message sent when an existing recipe is updated.
|
||||
*
|
||||
* @see commons.ws.messages.Message.Type#RECIPE_UPDATE
|
||||
*/
|
||||
public class UpdateRecipeMessage implements Message {
|
||||
private Recipe recipe;
|
||||
|
||||
public UpdateRecipeMessage(Recipe recipe) {
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return Type.RECIPE_UPDATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the updated recipe.
|
||||
*
|
||||
* @return The updated recipe.
|
||||
*/
|
||||
public Recipe getRecipe() {
|
||||
return recipe;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue