polygon-website-foss/api/account/data/inventory.php

46 lines
1.8 KiB
PHP

<?php require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
use pizzaboxer\ProjectPolygon\Database;
use pizzaboxer\ProjectPolygon\API;
use pizzaboxer\ProjectPolygon\Catalog;
API::initialize(["method" => "GET", "logged_in" => true]);
$items = [];
$assets = Database::singleton()->run(
"SELECT assets.*, users.username,
ownedAssets.wearing, ownedAssets.last_toggle, ownedAssets.timestamp FROM ownedAssets
INNER JOIN assets ON assets.id = assetId
INNER JOIN users ON creator = users.id
WHERE userId = :uid",
[":uid" => SESSION["user"]["id"]]
);
while ($asset = $assets->fetch())
{
$items[] = [
"AssetID" => (int)$asset["id"],
"AssetName" => $asset["name"],
"AssetDescription" => $asset["description"],
"AssetType" => Catalog::GetTypeByNum($asset["type"]),
"AssetTypeID" => (int)$asset["type"],
"AssetSales" => (int)$asset["Sales"],
"AssetPrice" => (bool)$asset["sale"] ? (int)$asset["price"] : null,
"AssetIsForSale" => (bool)$asset["sale"],
"AssetIsCopylocked" => (bool)!$asset["publicDomain"],
"AssetCreatorID" => (int)$asset["creator"],
"AssetCreatorName" => $asset["username"],
"TimeAssetCreated" => date('c', $asset["created"]),
"TimeAssetUpdated" => date('c', $asset["updated"]),
"Wearing" => (bool)$asset["wearing"],
"TimeLastWorn" => $asset["last_toggle"] > 0 ? date('c', $asset["last_toggle"]) : null,
"TimeObtained" => date('c', $asset["timestamp"])
];
}
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . SESSION["user"]["id"] . '-inventory.json"');
echo json_encode($items, JSON_PRETTY_PRINT);