c

group

GroupAdministration

class GroupAdministration extends AnyRef

Administrates groups, e.g. joining or leaving. A group's state is stored in a GroupResult. Members of a group are identified by the StudyResult's ID (which represents a particular study run).

All group members exchange messages via WebSockets that are called group channels in JATOS. The message dispatching system is implemented with Akka.

Annotations
@Singleton()
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GroupAdministration
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new GroupAdministration(studyResultDao: StudyResultDao, groupResultDao: GroupResultDao, jpa: JPAApi)
    Annotations
    @Inject()

Value Members

  1. def join(studyResult: StudyResult, batch: Batch): GroupResult

    Joins the a GroupResult or create a new one.

    Joins the a GroupResult or create a new one. Persists changes.

    Looks in the database whether we have an incomplete GroupResult (state STARTED, maxActiveMember not reached, maxTotalMembers not reached). If there is none, create a new GroupResult.

  2. def leave(studyResult: StudyResult): Unit

    Leaves the group that this studyResult is member of.

    Leaves the group that this studyResult is member of. Moves the given StudyResult in its group result into history.

  3. def reassign(studyResult: StudyResult, batch: Batch): Either[String, GroupResult]

    Reassigns this StudyResult to a different GroupResult if possible.

    Reassigns this StudyResult to a different GroupResult if possible.

    Looks in the database whether we have other incomplete GroupResult. If there are more than one, it returns the one with the most active members. If there is no other GroupResult it returns an error msg.

    returns

    Either with String if error or a GroupResult if success