if (isset($_GET['timeout'])) { $timeout = (int) $_GET['timeout']; if ($timeout < 1) { REST::fatal(REST::HTTP_BAD_REQUEST, 'Bad value for parameter "timeout"'); } $description = isset($_GET['description']) ? ', `tokenLockDescription` = ' . Topos::escape_string((string) $_GET['description']) : ''; Topos::real_query(<<<EOS UPDATE `Tokens` SET `tokenLockTimeout` = UNIX_TIMESTAMP() + {$timeout}, `tokenLockCounter` = `tokenLockCounter` + 1 {$description} WHERE `tokenLockUUID` = {$escLockUUID} AND `tokenLockTimeout` > UNIX_TIMESTAMP(); EOS ); if (!Topos::mysqli()->affected_rows) { REST::fatal(REST::HTTP_NOT_FOUND); } } $result = Topos::query(<<<EOS SELECT `tokenId`, `tokenName`, `tokenLockTimeout` - UNIX_TIMESTAMP(), `tokenLockDescription` FROM `Tokens` WHERE `tokenLockUUID` = {$escLockUUID} AND `tokenLockTimeout` > UNIX_TIMESTAMP(); EOS ); if (!($row = $result->fetch_row())) { REST::fatal(REST::HTTP_NOT_FOUND);
Topos::mysqli()->rollback(); REST::fatal(REST::HTTP_INTERNAL_SERVER_ERROR, 'stmt2: ' . $stmt2->error); } // if ( !$stmt2->execute() ) } // if (isset($t_upload_map[$paramname][$key])) } // foreach ( $file['name'] as $key => $filename ) } // foreach ($_FILES as $paramname => $file) } catch (Topos_MySQL $e) { Topos::mysqli()->rollback(); throw $e; } if (!Topos::mysqli()->commit()) { REST::fatal(REST::HTTP_SERVICE_UNAVAILABLE, 'Transaction failed: ' . htmlentities(Topos::mysqli()->error)); } REST::fatal(REST::HTTP_ACCEPTED); } REST::require_method('HEAD', 'GET'); $query = <<<EOS SELECT `tokenId`, `tokenLength`, `tokenType`, `tokenName`, `tokenLockUUID`, `tokenLockTimeout` - UNIX_TIMESTAMP(), `tokenLockDescription`, `tokenLeases`, `tokenCreated` FROM `Tokens`