FROM `Pools` NATURAL LEFT JOIN `Tokens` WHERE `Pools`.`poolName` = {$escPool}; EOS ); REST::fatal(REST::HTTP_OK, 'Pool destroyed successfully.'); } // Handle the creation of a number of tokens, set by the user. $input = NULL; if ($_SERVER['REQUEST_METHOD'] === 'POST' && strpos(@$_SERVER['CONTENT_TYPE'], 'application/x-www-form-urlencoded') === 0) { if (isset($_POST['pool'])) { if ($_POST['pool'] === '') { REST::fatal(REST::HTTP_BAD_REQUEST, 'Empty parameter "pool"'); } $tokens = isset($_POST['tokens']) ? preg_split('/[^\\d]+/', $_POST['tokens'], -1, PREG_SPLIT_NO_EMPTY) : array(); $tgtPool = $poolId; $srcPool = Topos::poolId($_POST['pool']); $tokenIds = count($tokens) ? 'AND `tokenId` IN (' . implode(',', $tokens) . ')' : ''; Topos::real_query(<<<EOS UPDATE `Tokens` SET `poolId` = {$tgtPool} WHERE `poolId` = {$srcPool} {$tokenIds}; EOS ); REST::fatal(REST::HTTP_OK, Topos::mysqli()->affected_rows . ' tokens moved'); } elseif (isset($_POST['ntokens'])) { $offset = (int) @$_POST['offset']; $ntokens = (int) $_POST['ntokens']; if ($ntokens <= 0 || $ntokens > 1000000) { REST::fatal(REST::HTTP_BAD_REQUEST, 'Bad values for "ntokens" or "offset"'); }
DELETE FROM `Tokens` WHERE `Tokens`.`tokenId` = {$TOPOS_TOKEN} AND `poolId` = {$poolId}; EOS; Topos::real_query($query); if (Topos::mysqli()->affected_rows) { REST::fatal(REST::HTTP_OK, 'Token destroyed'); } else { REST::fatal(REST::HTTP_NOT_FOUND); } } REST::require_method('HEAD', 'GET'); if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { REST::fatal(REST::HTTP_NOT_MODIFIED); } $poolId = Topos::poolId($TOPOS_POOL); $result = Topos::query(<<<EOS SELECT `tokenLength`, `tokenType`, `tokenCreated`, `tokenName`, IF(`tokenLockTimeout` > UNIX_TIMESTAMP(), `tokenLockUUID`, NULL) AS 'tokenLockUUID', `tokenLeases` FROM `Tokens` WHERE `tokenId` = {$TOPOS_TOKEN} AND `poolId` = {$poolId}; EOS ); if (!($row = $result->fetch_array())) { REST::fatal(REST::HTTP_NOT_FOUND); } $result = Topos::query(<<<EOS SELECT `tokenValue` FROM `TokenValues` WHERE `tokenId` = {$TOPOS_TOKEN} EOS