Update Saqel Platform: 2026-09-10 12:26:22
This commit is contained in:
@@ -41,6 +41,17 @@ final class TeacherSubmissionService {
|
||||
[$versionUuid, $teacherId]
|
||||
) === 1;
|
||||
}
|
||||
/** Releases a reservation only when no media was accepted for review. */
|
||||
public static function releaseUploadReservation(int $teacherId, string $versionUuid): void {
|
||||
if (!self::uuidValid($versionUuid)) return;
|
||||
Database::execute(
|
||||
"UPDATE video_versions vv JOIN teacher_submissions ts ON ts.id=vv.teacher_submission_id
|
||||
SET vv.status='draft',
|
||||
ts.status=CASE WHEN ts.current_published_video_version_id IS NULL THEN 'draft' ELSE 'published' END
|
||||
WHERE vv.uuid=? AND ts.teacher_id=? AND vv.status='uploading'",
|
||||
[$versionUuid, $teacherId]
|
||||
);
|
||||
}
|
||||
private static function commit(\PDO $pdo,int $teacher,string $op,string $key,string $hash,array $r):array {Database::insert('INSERT INTO submission_idempotency_keys (teacher_id,operation,idempotency_key,request_sha256,response_json,http_status) VALUES (?,?,?,?,?,?)',[$teacher,$op,$key,$hash,json_encode($r,JSON_UNESCAPED_UNICODE),$r['http_status']]);$pdo->commit();return $r;}
|
||||
private static function result(int $status,string $code,string $message):array{return ['http_status'=>$status,'status'=>$code,'message'=>$message];}
|
||||
private static function uuidValid(string $v):bool{return(bool)preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i',$v);}
|
||||
|
||||
Reference in New Issue
Block a user