fixed session numbering
Some checks failed
PHPUnit / test (push) Has been cancelled

This commit is contained in:
2026-07-01 08:44:29 +02:00
parent 9db886a1ae
commit e589b46a8a
4 changed files with 92 additions and 28 deletions

View File

@ -40,11 +40,12 @@ case 'POST':
if ($name === '') {
json_error('BAD_REQUEST', 'name is required', 400);
}
$sessionNumber = max(1, (int)($body['sessionNumber'] ?? 1));
$orderIndex = max(0, (int)($body['orderIndex'] ?? 0));
$members = qdb_parse_program_session_questionnaires($body['questionnaires'] ?? []);
try {
[$pdo, $tmpDb, $lockFp] = qdb_open_write_or_fail();
$order = qdb_program_session_resolve_order($pdo, $body);
$sessionNumber = $order['sessionNumber'];
$orderIndex = $order['orderIndex'];
$err = qdb_validate_program_session_questionnaires($pdo, $members);
if ($err !== null) {
qdb_discard($tmpDb, $lockFp);
@ -103,6 +104,7 @@ case 'PUT':
json_error('INVALID_FIELD', $err, 400);
}
}
$order = qdb_program_session_resolve_order($pdo, $body, $existing);
$pdo->prepare(
'UPDATE program_session SET
name = :name,
@ -115,12 +117,8 @@ case 'PUT':
)->execute([
':name' => $name,
':desc' => trim($body['description'] ?? $existing['description']),
':num' => isset($body['sessionNumber'])
? max(1, (int)$body['sessionNumber'])
: $existing['sessionNumber'],
':ord' => isset($body['orderIndex'])
? max(0, (int)$body['orderIndex'])
: $existing['orderIndex'],
':num' => $order['sessionNumber'],
':ord' => $order['orderIndex'],
':act' => isset($body['isActive'])
? (!empty($body['isActive']) ? 1 : 0)
: $existing['isActive'],