api update.

This commit is contained in:
Heidi
2026-05-16 12:00:19 +01:00
parent df89753b93
commit 818ad8aea7
+55 -4
View File
@@ -5119,20 +5119,71 @@ function registerTssTeamRoutes(teamBasePath) {
if (!name) return res.status(400).json({ error: 'name query parameter is required' });
loadTssTeamLookupCached((lookup) => {
const team = resolveTssTeam(name, lookup);
if (!team.row) {
return res.status(404).json({
query: String(name),
resolved: false,
error: 'TSS team not found',
});
}
res.json({
query: String(name),
resolved: !!team.row,
resolved: true,
clan_id: team.clanId,
long_name: team.canonicalName,
short_name: team.row ? team.row.short_name : null,
short_name: team.row.short_name || null,
tag_name: team.tagName,
members: team.row ? team.row.members : null,
clanrating: team.row ? team.row.clanrating : null,
members: team.row.members,
clanrating: team.row.clanrating,
source: 'tss_teams.db'
});
});
});
app.get(`${teamBasePath}/search`, (req, res) => {
const query = String(req.query.q || req.query.name || '').trim().toLowerCase();
const limit = Math.max(1, Math.min(parseInt(req.query.limit, 10) || 10, 20));
if (query.length < 2) {
return res.status(400).json({ error: 'q must be at least 2 characters' });
}
loadTssTeamLookupCached((lookup) => {
const seen = new Set();
const teams = Object.values(lookup || {})
.filter((row) => {
if (!row || row.clan_id == null) return false;
const key = String(row.clan_id);
if (seen.has(key)) return false;
seen.add(key);
return [row.long_name, row.short_name, row.tag_name, String(row.clan_id)]
.filter(Boolean)
.some((value) => String(value).toLowerCase().includes(query));
})
.slice(0, limit)
.map((row) => ({
resolved: true,
clan_id: row.clan_id,
long_name: row.long_name,
short_name: row.short_name,
tag_name: row.tag_name || row.short_name || row.long_name,
members: row.members,
clanrating: row.clanrating,
}));
res.json({
query,
total_found: teams.length,
teams,
});
});
});
app.get(`${teamBasePath}/:teamname`, (req, res) => {
if (!tssDb) return tssDbUnavailable(res);
if (!hasTssTeamColumn) {