Add live furnidata reload without hotel reload and notImported status filter
CI / check (push) Successful in 26s
CI / release (push) Skipped
CI / deploy (push) Successful in 57s

- Add /api/admin/import/furni?action=live-reconcile POST endpoint that reconciles FurnitureData.json with items_base without triggering RCON hotel reload
- Add 'notImported' status filter in studio to show all non-imported furniture items
- Useful for verifying imports and seeing what's missing after furniture import
This commit is contained in:
openhands committed 2026-08-20 16:58:26 +02:00
1 parent 7ad78db0ea
commit 652d331402
2 files changed
+13

No files matched your search

+11
View File
@@ -168,6 +168,17 @@ export const GET = withAdmin(
return apiOk({ totalInDb, inCatalog, notInCatalog, missingNitro });
}
// Live furnidata reconcile (without hotel RCON reload)
if (action === "live-reconcile") {
const furniReconcile = await reconcileFurniDataWithItemsBase();
return apiOk({
furniDataFixedIds: furniReconcile.fixedIds,
furniDataFixedOfferIds: furniReconcile.fixedOfferIds,
furniDataMissing: furniReconcile.missing,
furniDataConflicts: furniReconcile.conflicts,
});
}
// Missing nitro endpoint: returns only imported items missing .nitro files
if (action === "missing-nitro") {
const pageNum = parseInt(
@@ -159,6 +159,8 @@ export function StudioClient({
result = result.filter((i) => i.alreadyImported && i.nitroExists);
else if (statusFilter === "missingNitro")
result = result.filter((i) => i.alreadyImported && !i.nitroExists);
else if (statusFilter === "notImported")
result = result.filter((i) => !i.alreadyImported);
}
const sorted = [...result];
if (sortBy === "name") sorted.sort((a, b) => a.name.localeCompare(b.name));