Skip to content

Commit

Permalink
feat: implemented the message listener
Browse files Browse the repository at this point in the history
  • Loading branch information
ricardo177m committed Jun 18, 2023
1 parent 78bedd1 commit bed493a
Show file tree
Hide file tree
Showing 20 changed files with 246 additions and 271 deletions.
19 changes: 6 additions & 13 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,6 @@
"mainClass": "eapli.ecourse.app.backoffice.console.ECourseBackoffice",
"projectName": "app.backoffice.console"
},
{
"type": "java",
"name": "OtherApp",
"request": "launch",
"mainClass": "eapli.ecourse.app.other.console.OtherApp",
"projectName": "app.other.console"
},
{
"type": "java",
"name": "Shared Board Server",
Expand All @@ -70,12 +63,6 @@
"-Djavax.net.ssl.trustStorePassword=password"
]
},
{
"type": "java",
"name": "Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"name": "ANTLR4 grammar",
"type": "antlr-debug",
Expand All @@ -86,6 +73,12 @@
"startRule": "start",
"printParseTree": true,
"visualParseTree": true
},
{
"type": "java",
"name": "Current File",
"request": "launch",
"mainClass": "${file}"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;

public class ArchiveBoardController {
private TcpClient server;
private MessageListener listener;

public ArchiveBoardController() {
this.server = BoardBackend.getInstance().getTcpClient();
this.listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserBoards() throws IOException, UnsupportedVersionException,
ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response = server.sendRecv(new ProtocolMessage(MessageCode.GET_OWN_BOARDS));
ProtocolMessage response = listener.sendRecv(new ProtocolMessage(MessageCode.GET_OWN_BOARDS));

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -34,7 +34,7 @@ public Iterable<BoardDTO> listUserBoards() throws IOException, UnsupportedVersio

public void archiveBoard(BoardDTO boardDto) throws IOException, UnsupportedVersionException,
UnsuccessfulRequestException, ClassNotFoundException {
ProtocolMessage response = server
ProtocolMessage response = listener
.sendRecv(new ProtocolMessage(MessageCode.ARCHIVE_BOARD, boardDto.getId().toString()));

if (response.getCode().equals(MessageCode.ERR))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.domain.BoardID;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;
Expand All @@ -23,16 +23,16 @@
public class ChangePostItController {
private static Logger logger = LogManager.getLogger(ChangePostItController.class);

private TcpClient server;
private MessageListener listener;

public ChangePostItController() {
this.server = BoardBackend.getInstance().getTcpClient();
this.listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserWritableBoards() throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS), MessageCode.GET_WRITABLE_BOARDS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -46,8 +46,9 @@ public Iterable<BoardDTO> listUserWritableBoards() throws IOException,

public Iterable<PostItDTO> listUserUpdatablePostIts(BoardID boardID) throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.GET_OWN_POSTITS_BOARD, boardID.toString()));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_OWN_POSTITS_BOARD, boardID.toString()),
MessageCode.GET_OWN_POSTITS_BOARD);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -68,7 +69,8 @@ public boolean validateCoordinates(BoardID boardID, Integer x, Integer y) throws
json.add("y", y);

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.IS_CELL_AVAILABLE, json.build()));
listener.sendRecv(new ProtocolMessage(MessageCode.IS_CELL_AVAILABLE, json.build()),
MessageCode.IS_CELL_AVAILABLE);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand Down Expand Up @@ -105,8 +107,8 @@ public void changePostIt(PostItID postItID, Integer x, Integer y, String title,
}
}

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.CHANGE_POSTIT, json.build()));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.CHANGE_POSTIT, json.build()), MessageCode.CHANGE_POSTIT);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -117,11 +119,10 @@ public void deletePostIt(PostItID postItID) throws IOException, UnsupportedVersi
UnsuccessfulRequestException, ClassNotFoundException {

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.DELETE_POSTIT, postItID.toString()));
listener.sendRecv(new ProtocolMessage(MessageCode.DELETE_POSTIT, postItID.toString()),
MessageCode.DELETE_POSTIT);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.domain.BoardID;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;
Expand All @@ -21,16 +21,16 @@
public class CreatePostItController {
private static Logger logger = LogManager.getLogger(CreatePostItController.class);

private TcpClient server;
private MessageListener listener;

public CreatePostItController() {
this.server = BoardBackend.getInstance().getTcpClient();
this.listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserWritableBoards() throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS), MessageCode.GET_WRITABLE_BOARDS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -51,7 +51,8 @@ public boolean validateCoordinates(BoardID boardID, Integer x, Integer y) throws
json.add("y", y);

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.IS_CELL_AVAILABLE, json.build()));
listener.sendRecv(new ProtocolMessage(MessageCode.IS_CELL_AVAILABLE, json.build()),
MessageCode.IS_CELL_AVAILABLE);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand Down Expand Up @@ -83,12 +84,10 @@ public void createPostIt(BoardID boardID, Integer x, Integer y, String title, St
}
}

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.CREATE_POSTIT, json.build()));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.CREATE_POSTIT, json.build()), MessageCode.CREATE_POSTIT);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,24 @@
import javax.json.Json;
import javax.json.JsonObject;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.boardmanagement.dto.UserPermissionDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;

public class ShareBoardController {
private TcpClient server;
private MessageListener listener;

public ShareBoardController() {
server = BoardBackend.getInstance().getTcpClient();
listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserBoards() throws IOException, UnsupportedVersionException,
ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response = server.sendRecv(new ProtocolMessage(MessageCode.GET_OWN_BOARDS));
ProtocolMessage response = listener.sendRecv(new ProtocolMessage(MessageCode.GET_OWN_BOARDS),
MessageCode.GET_OWN_BOARDS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -41,7 +42,8 @@ public UserPermissionDTO userPermissions(BoardDTO board, String username) throws
.add("username", username).build();

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.GET_USER_PERMISSIONS, payload));
listener.sendRecv(new ProtocolMessage(MessageCode.GET_USER_PERMISSIONS, payload),
MessageCode.GET_USER_PERMISSIONS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -59,8 +61,8 @@ public UserPermissionDTO updateUserPermissions(BoardDTO board, String username,
JsonObject payload = Json.createObjectBuilder().add("boardId", board.getId().toString())
.add("username", username).add("permission", newPermission).build();

ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.SHARE_BOARD, payload));
ProtocolMessage response = listener
.sendRecv(new ProtocolMessage(MessageCode.SHARE_BOARD, payload), MessageCode.SHARE_BOARD);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;
import eapli.ecourse.postitmanagement.dto.PostItDTO;

public class UndoPostItChangeController {
private TcpClient server;
private MessageListener listener;

public UndoPostItChangeController() {
this.server = BoardBackend.getInstance().getTcpClient();
this.listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserWritableBoards() throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_WRITABLE_BOARDS), MessageCode.GET_WRITABLE_BOARDS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -36,8 +36,9 @@ public Iterable<BoardDTO> listUserWritableBoards() throws IOException,

public Iterable<PostItDTO> listLatestBoardPostItsByUser(BoardDTO board) throws IOException,
UnsupportedVersionException, UnsuccessfulRequestException, ClassNotFoundException {
ProtocolMessage response = server
.sendRecv(new ProtocolMessage(MessageCode.GET_POSTITS_BOARD, board.getId().toString()));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_POSTITS_BOARD, board.getId().toString()),
MessageCode.GET_POSTITS_BOARD);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -53,7 +54,8 @@ public Iterable<PostItDTO> listLatestBoardPostItsByUser(BoardDTO board) throws I
public void undoPostItChange(PostItDTO postIt) throws IOException, UnsupportedVersionException,
UnsuccessfulRequestException, ClassNotFoundException {
ProtocolMessage response =
server.sendRecv(new ProtocolMessage(MessageCode.UNDO_POSTIT, postIt.getId().toString()));
listener.sendRecv(new ProtocolMessage(MessageCode.UNDO_POSTIT, postIt.getId().toString()),
MessageCode.UNDO_POSTIT);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,24 @@
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.boardmanagement.dto.BoardDTO;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;
import eapli.ecourse.postitmanagement.dto.PostItDTO;

public class ViewBoardHistoryController {
private TcpClient server;
private MessageListener listener;

public ViewBoardHistoryController() {
this.server = BoardBackend.getInstance().getTcpClient();
this.listener = BoardBackend.getInstance().getListener();
}

public Iterable<BoardDTO> listUserAccessibleBoards() throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response = server.sendRecv(new ProtocolMessage(MessageCode.GET_BOARDS));
ProtocolMessage response =
listener.sendRecv(new ProtocolMessage(MessageCode.GET_BOARDS), MessageCode.GET_BOARDS);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Expand All @@ -35,15 +36,16 @@ public Iterable<BoardDTO> listUserAccessibleBoards() throws IOException,

public Iterable<PostItDTO> listBoardHistory(BoardDTO board) throws IOException,
UnsupportedVersionException, ClassNotFoundException, UnsuccessfulRequestException {
ProtocolMessage response = server.sendRecv(new ProtocolMessage(MessageCode.GET_BOARD_HISTORY,
board.getId().toString()));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.GET_BOARD_HISTORY, board.getId().toString()),
MessageCode.GET_BOARD_HISTORY);

if (response.getCode().equals(MessageCode.ERR))
throw new UnsuccessfulRequestException(response);
Iterable<?> obj = (Iterable<?>) response.getPayloadAsObject();

List<PostItDTO> result = StreamSupport.stream(obj.spliterator(), true).map(PostItDTO.class::cast)
.collect(Collectors.toUnmodifiableList());
List<PostItDTO> result = StreamSupport.stream(obj.spliterator(), true)
.map(PostItDTO.class::cast).collect(Collectors.toUnmodifiableList());

return result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import eapli.ecourse.app.board.lib.BoardBackend;
import eapli.ecourse.common.board.TcpClient;
import eapli.ecourse.app.board.lib.MessageListener;
import eapli.ecourse.common.board.protocol.MessageCode;
import eapli.ecourse.common.board.protocol.ProtocolMessage;
import eapli.ecourse.common.board.protocol.UnsupportedVersionException;
import eapli.ecourse.infrastructure.authz.CredentialHandler;
import eapli.ecourse.usermanagement.dto.UserDTO;

Expand All @@ -28,19 +27,19 @@ public void clear() {
public final CredentialHandler AUTHENTICATE = (u, p, r) -> {
BoardBackend boardBackend = BoardBackend.getInstance();

TcpClient client = boardBackend.getTcpClient();
MessageListener listener = boardBackend.getListener();

try {
ProtocolMessage response =
client.sendRecv(new ProtocolMessage(MessageCode.AUTH, new String(u + "\0" + p + "\0")));
ProtocolMessage response = listener.sendRecv(
new ProtocolMessage(MessageCode.AUTH, new String(u + "\0" + p + "\0")), MessageCode.ACK);

if (response.getCode() == MessageCode.ACK) {
user = (UserDTO) response.getPayloadAsObject();
return true;
}

return false;
} catch (IOException | UnsupportedVersionException | ClassNotFoundException e) {
} catch (IOException | ClassNotFoundException e) {
LOGGER.error("Error while authenticating", e);
return false;
}
Expand Down
Loading

0 comments on commit bed493a

Please sign in to comment.