Documentation

SubmitAnswer

Use case for submitting an answer during review.

Updates word status and session progress.

Tags
since
3.0.0

Table of Contents

Properties

$repository  : ReviewRepositoryInterface
$scheduledReview  : RecordScheduledReview
$sessionManager  : SessionStateManager

Methods

__construct()  : mixed
Constructor.
execute()  : array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}
Submit answer with explicit new status.
executeWithChange()  : array<string|int, mixed>
Submit answer with relative status change.
executeWithGrade()  : array<string|int, mixed>
Submit a graded answer (issue #238, phase 2a).
calculateNewStatus()  : int
Calculate new status based on change direction.
calculateStatusChange()  : int
Calculate status change direction.
isValidStatus()  : bool
Check if status is valid.
updateSessionProgress()  : array{total: int, wrong: int, correct: int, remaining: int}
Update session progress after answer.

Properties

Methods

execute()

Submit answer with explicit new status.

public execute(int $wordId, int $newStatus) : array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}
Parameters
$wordId : int

Word ID

$newStatus : int

New status (1-5, 98, 99)

Return values
array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}

executeWithChange()

Submit answer with relative status change.

public executeWithChange(int $wordId, int $change[, Rating|null $grade = null ]) : array<string|int, mixed>
Parameters
$wordId : int

Word ID

$change : int

Change amount (+1 or -1)

$grade : Rating|null = null
Return values
array<string|int, mixed>

Same as execute()

executeWithGrade()

Submit a graded answer (issue #238, phase 2a).

public executeWithGrade(int $wordId, Rating $grade) : array<string|int, mixed>

This is the FSRS-native entry point: the grade drives the scheduler, and is also mapped onto the legacy ±1 status nudge so the reading view behaves exactly as it does for a binary answer. Again lowers the status, every other grade raises it.

Parameters
$wordId : int

Word ID

$grade : Rating

Again / Hard / Good / Easy

Return values
array<string|int, mixed>

Same shape as execute(), plus a 'scheduled' flag

calculateNewStatus()

Calculate new status based on change direction.

private calculateNewStatus(int $currentStatus, int $change) : int
Parameters
$currentStatus : int

Current status

$change : int

Change amount

Return values
int

New status

calculateStatusChange()

Calculate status change direction.

private calculateStatusChange(int $oldStatus, int $newStatus) : int
Parameters
$oldStatus : int

Old status

$newStatus : int

New status

Return values
int

-1, 0, or 1

isValidStatus()

Check if status is valid.

private isValidStatus(int $status) : bool
Parameters
$status : int

Status value

Return values
bool

updateSessionProgress()

Update session progress after answer.

private updateSessionProgress(int $statusChange) : array{total: int, wrong: int, correct: int, remaining: int}
Parameters
$statusChange : int

Status change direction

Return values
array{total: int, wrong: int, correct: int, remaining: int}
On this page

Search results