code cleanup and docu
This commit is contained in:
parent
31fbfa373c
commit
7360d8b99b
2 changed files with 21 additions and 0 deletions
|
@ -22,15 +22,32 @@ public interface SEBClientNotificationService {
|
||||||
|
|
||||||
/** Indicates whether the client connection with the specified identifier has any
|
/** Indicates whether the client connection with the specified identifier has any
|
||||||
* pending notification or not. Pending means a non-confirmed notification
|
* pending notification or not. Pending means a non-confirmed notification
|
||||||
|
* This will only check client connections in ACTIVE state.
|
||||||
*
|
*
|
||||||
* @param clientConnectionId the client connection identifier
|
* @param clientConnectionId the client connection identifier
|
||||||
* @return true if there is any pending notification for the specified client connection */
|
* @return true if there is any pending notification for the specified client connection */
|
||||||
Boolean hasAnyPendingNotification(final ClientConnection clientConnection);
|
Boolean hasAnyPendingNotification(final ClientConnection clientConnection);
|
||||||
|
|
||||||
|
/** This gets a list of all pending notification for a given client connection independently
|
||||||
|
* of it current status.
|
||||||
|
*
|
||||||
|
* @param clientConnectionId The identifier of the client connection
|
||||||
|
* @return Result refer to pending client notifications or to an error when happened */
|
||||||
Result<List<ClientNotification>> getPendingNotifications(Long clientConnectionId);
|
Result<List<ClientNotification>> getPendingNotifications(Long clientConnectionId);
|
||||||
|
|
||||||
|
/** This is used to confirm a pending notification from SEB client side where
|
||||||
|
* a client event of type notification-confirm is involved
|
||||||
|
*
|
||||||
|
* @param event The notification confirmation event sent by a SEB client
|
||||||
|
* @param connectionToken the client connection token of the SEB client connection */
|
||||||
void confirmPendingNotification(ClientEvent event, String connectionToken);
|
void confirmPendingNotification(ClientEvent event, String connectionToken);
|
||||||
|
|
||||||
|
/** This is used to confirm a pending client notification from the SEB Server side
|
||||||
|
*
|
||||||
|
* @param notificationId The identifier of the client notification event
|
||||||
|
* @param examId the exam identifier
|
||||||
|
* @param connectionToken the SEB client connection token
|
||||||
|
* @return Result refer to the confirmed client notification or to an error when happened */
|
||||||
Result<ClientNotification> confirmPendingNotification(
|
Result<ClientNotification> confirmPendingNotification(
|
||||||
Long notificationId,
|
Long notificationId,
|
||||||
Long examId,
|
Long examId,
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import ch.ethz.seb.sebserver.gbl.Constants;
|
import ch.ethz.seb.sebserver.gbl.Constants;
|
||||||
import ch.ethz.seb.sebserver.gbl.model.session.ClientConnection;
|
import ch.ethz.seb.sebserver.gbl.model.session.ClientConnection;
|
||||||
|
import ch.ethz.seb.sebserver.gbl.model.session.ClientConnection.ConnectionStatus;
|
||||||
import ch.ethz.seb.sebserver.gbl.model.session.ClientEvent;
|
import ch.ethz.seb.sebserver.gbl.model.session.ClientEvent;
|
||||||
import ch.ethz.seb.sebserver.gbl.model.session.ClientInstruction;
|
import ch.ethz.seb.sebserver.gbl.model.session.ClientInstruction;
|
||||||
import ch.ethz.seb.sebserver.gbl.model.session.ClientInstruction.InstructionType;
|
import ch.ethz.seb.sebserver.gbl.model.session.ClientInstruction.InstructionType;
|
||||||
|
@ -59,6 +60,9 @@ public class SEBClientNotificationServiceImpl implements SEBClientNotificationSe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean hasAnyPendingNotification(final ClientConnection clientConnection) {
|
public Boolean hasAnyPendingNotification(final ClientConnection clientConnection) {
|
||||||
|
if (clientConnection.status != ConnectionStatus.ACTIVE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
updateCache(clientConnection.examId);
|
updateCache(clientConnection.examId);
|
||||||
return this.pendingNotifications.contains(clientConnection.id);
|
return this.pendingNotifications.contains(clientConnection.id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue