Recapp Code Reference
    Preparing search index...

    Actor representing the comments of a single quiz. This will be started as a child of the corresponding quiz actor

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    collectionName: string
    connector: DbClient = ...
    state: State = ...

    Methods

    • Parameters

      • from: ActorRef

      Returns Promise<
          [
              UserRole: AccessRole,
              UserID: string & BRAND<"UID">,
              IsTemporaryAccount: boolean,
          ],
      >

    • Parameters

      • uid: string & BRAND<"UID">

      Returns Promise<
          MaybeBase<
              {
                  answerOrderFixed: boolean;
                  answers: { correct: boolean; text: string }[];
                  approved: boolean;
                  archived?: Timestamp;
                  authorFingerprint?: string;
                  authorId: string & BRAND<"UID">;
                  authorName?: string;
                  created: Timestamp;
                  editMode: boolean;
                  hint?: string;
                  quiz: string & BRAND<"UID">;
                  statistics?:
                      | {
                          answers: string[];
                          archived?: Timestamp;
                          created: Timestamp;
                          groupName: string;
                          maximumParticipants: number;
                          participants: number;
                          questionId: string & BRAND<"UID">;
                          quizId: string & BRAND<"UID">;
                          tag: "TextElementStatistics";
                          uid: string & BRAND<"UID">;
                          updated: Timestamp;
                          wrong: number;
                      }
                      | {
                          answers: number[];
                          archived?: Timestamp;
                          created: Timestamp;
                          groupName: string;
                          maximumParticipants: number;
                          participants: number;
                          passed: number;
                          questionId: string & BRAND<"UID">;
                          quizId: string & BRAND<"UID">;
                          tag: "ChoiceElementStatistics";
                          uid: string & BRAND<"UID">;
                          updated: Timestamp;
                          wrong: number;
                      };
                  text: string;
                  type: "SINGLE"
                  | "MULTIPLE"
                  | "TEXT";
                  uid: string & BRAND<"UID">;
                  updated: Timestamp;
              },
          >,
      >

    • Abstract method that handles all incoming messages

      Parameters

      • from: ActorRef

        actor that has send the message

      • message:
            | { QuestionActorMessage: "Create" } & {
                value: Omit<
                    {
                        answerOrderFixed: boolean;
                        answers: { correct: boolean; text: string }[];
                        approved: boolean;
                        archived?: Timestamp;
                        authorFingerprint?: string;
                        authorId: string & BRAND<"UID">;
                        authorName?: string;
                        created: Timestamp;
                        editMode: boolean;
                        hint?: string;
                        quiz: string & BRAND<"UID">;
                        statistics?:
                            | {
                                answers: string[];
                                archived?: Timestamp;
                                created: Timestamp;
                                groupName: string;
                                maximumParticipants: number;
                                participants: number;
                                questionId: string & BRAND<"UID">;
                                quizId: string & BRAND<"UID">;
                                tag: "TextElementStatistics";
                                uid: string & BRAND<"UID">;
                                updated: Timestamp;
                                wrong: number;
                            }
                            | {
                                answers: number[];
                                archived?: Timestamp;
                                created: Timestamp;
                                groupName: string;
                                maximumParticipants: number;
                                participants: number;
                                passed: number;
                                questionId: string & BRAND<"UID">;
                                quizId: string & BRAND<"UID">;
                                tag: "ChoiceElementStatistics";
                                uid: string & BRAND<"UID">;
                                updated: Timestamp;
                                wrong: number;
                            };
                        text: string;
                        type: "SINGLE"
                        | "MULTIPLE"
                        | "TEXT";
                        uid: string & BRAND<"UID">;
                        updated: Timestamp;
                    },
                    "uid"
                    | "created"
                    | "updated",
                >;
            }
            | { QuestionActorMessage: "Update" } & {
                value: Partial<
                    {
                        answerOrderFixed: boolean;
                        answers: { correct: boolean; text: string }[];
                        approved: boolean;
                        archived?: Timestamp;
                        authorFingerprint?: string;
                        authorId: string & BRAND<"UID">;
                        authorName?: string;
                        created: Timestamp;
                        editMode: boolean;
                        hint?: string;
                        quiz: string & BRAND<"UID">;
                        statistics?:
                            | {
                                answers: string[];
                                archived?: Timestamp;
                                created: Timestamp;
                                groupName: string;
                                maximumParticipants: number;
                                participants: number;
                                questionId: string & BRAND<"UID">;
                                quizId: string & BRAND<"UID">;
                                tag: "TextElementStatistics";
                                uid: string & BRAND<"UID">;
                                updated: Timestamp;
                                wrong: number;
                            }
                            | {
                                answers: number[];
                                archived?: Timestamp;
                                created: Timestamp;
                                groupName: string;
                                maximumParticipants: number;
                                participants: number;
                                passed: number;
                                questionId: string & BRAND<"UID">;
                                quizId: string & BRAND<"UID">;
                                tag: "ChoiceElementStatistics";
                                uid: string & BRAND<"UID">;
                                updated: Timestamp;
                                wrong: number;
                            };
                        text: string;
                        type: "SINGLE"
                        | "MULTIPLE"
                        | "TEXT";
                        uid: string & BRAND<"UID">;
                        updated: Timestamp;
                    },
                > & { uid: string & BRAND<"UID"> };
            }
            | { QuestionActorMessage: "Delete" } & { value: string & BRAND<"UID"> }
            | { QuestionActorMessage: "GetAll" } & { value: {} }
            | { QuestionActorMessage: "SubscribeToCollection" } & { value: {} }
            | { QuestionActorMessage: "UnsubscribeFromCollection" } & { value: {} }
            | { QuestionActorMessage: "Unstall" } & { value: {} }

        message type

      Returns Promise<ResultType>

      promised return value. If the caller used ask, this value will be returned to the calling actor

    • Parameters

      • entity: {
            answerOrderFixed: boolean;
            answers: { correct: boolean; text: string }[];
            approved: boolean;
            archived?: Timestamp;
            authorFingerprint?: string;
            authorId: string & BRAND<"UID">;
            authorName?: string;
            created: Timestamp;
            editMode: boolean;
            hint?: string;
            quiz: string & BRAND<"UID">;
            statistics?:
                | {
                    answers: string[];
                    archived?: Timestamp;
                    created: Timestamp;
                    groupName: string;
                    maximumParticipants: number;
                    participants: number;
                    questionId: string & BRAND<"UID">;
                    quizId: string & BRAND<"UID">;
                    tag: "TextElementStatistics";
                    uid: string & BRAND<"UID">;
                    updated: Timestamp;
                    wrong: number;
                }
                | {
                    answers: number[];
                    archived?: Timestamp;
                    created: Timestamp;
                    groupName: string;
                    maximumParticipants: number;
                    participants: number;
                    passed: number;
                    questionId: string & BRAND<"UID">;
                    quizId: string & BRAND<"UID">;
                    tag: "ChoiceElementStatistics";
                    uid: string & BRAND<"UID">;
                    updated: Timestamp;
                    wrong: number;
                };
            text: string;
            type: "SINGLE"
            | "MULTIPLE"
            | "TEXT";
            uid: string & BRAND<"UID">;
            updated: Timestamp;
        }

      Returns Promise<
          {
              answerOrderFixed: boolean;
              answers: { correct: boolean; text: string }[];
              approved: boolean;
              archived?: Timestamp;
              authorFingerprint?: string;
              authorId: string & BRAND<"UID">;
              authorName?: string;
              created: Timestamp;
              editMode: boolean;
              hint?: string;
              quiz: string & BRAND<"UID">;
              statistics?:
                  | {
                      answers: string[];
                      archived?: Timestamp;
                      created: Timestamp;
                      groupName: string;
                      maximumParticipants: number;
                      participants: number;
                      questionId: string & BRAND<"UID">;
                      quizId: string & BRAND<"UID">;
                      tag: "TextElementStatistics";
                      uid: string & BRAND<"UID">;
                      updated: Timestamp;
                      wrong: number;
                  }
                  | {
                      answers: number[];
                      archived?: Timestamp;
                      created: Timestamp;
                      groupName: string;
                      maximumParticipants: number;
                      participants: number;
                      passed: number;
                      questionId: string & BRAND<"UID">;
                      quizId: string & BRAND<"UID">;
                      tag: "ChoiceElementStatistics";
                      uid: string & BRAND<"UID">;
                      updated: Timestamp;
                      wrong: number;
                  };
              text: string;
              type: "SINGLE"
              | "MULTIPLE"
              | "TEXT";
              uid: string & BRAND<"UID">;
              updated: Timestamp;
          },
      >

    • Parameters

      • _draft: State
      • _quiz: {
            answerOrderFixed: boolean;
            answers: { correct: boolean; text: string }[];
            approved: boolean;
            archived?: Timestamp;
            authorFingerprint?: string;
            authorId: string & BRAND<"UID">;
            authorName?: string;
            created: Timestamp;
            editMode: boolean;
            hint?: string;
            quiz: string & BRAND<"UID">;
            statistics?:
                | {
                    answers: string[];
                    archived?: Timestamp;
                    created: Timestamp;
                    groupName: string;
                    maximumParticipants: number;
                    participants: number;
                    questionId: string & BRAND<"UID">;
                    quizId: string & BRAND<"UID">;
                    tag: "TextElementStatistics";
                    uid: string & BRAND<"UID">;
                    updated: Timestamp;
                    wrong: number;
                }
                | {
                    answers: number[];
                    archived?: Timestamp;
                    created: Timestamp;
                    groupName: string;
                    maximumParticipants: number;
                    participants: number;
                    passed: number;
                    questionId: string & BRAND<"UID">;
                    quizId: string & BRAND<"UID">;
                    tag: "ChoiceElementStatistics";
                    uid: string & BRAND<"UID">;
                    updated: Timestamp;
                    wrong: number;
                };
            text: string;
            type: "SINGLE"
            | "MULTIPLE"
            | "TEXT";
            uid: string & BRAND<"UID">;
            updated: Timestamp;
        }

      Returns void