Merge pull request #2381 from mempool/nymkappa/bugfix/useless-mysql-query-channel-tree

Do not fetch node stats for channel tree graph
This commit is contained in:
wiz 2022-08-25 23:51:15 +09:00 committed by GitHub
commit 144eb558c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 15 deletions

View File

@ -288,8 +288,10 @@ class ChannelsApi {
const channels: any[] = [] const channels: any[] = []
for (const row of allChannels) { for (const row of allChannels) {
let channel;
if (index >= 0) {
const activeChannelsStats: any = await nodesApi.$getActiveChannelsStats(row.public_key); const activeChannelsStats: any = await nodesApi.$getActiveChannelsStats(row.public_key);
channels.push({ channel = {
status: row.status, status: row.status,
closing_reason: row.closing_reason, closing_reason: row.closing_reason,
capacity: row.capacity ?? 0, capacity: row.capacity ?? 0,
@ -302,7 +304,20 @@ class ChannelsApi {
channels: activeChannelsStats.active_channel_count ?? 0, channels: activeChannelsStats.active_channel_count ?? 0,
capacity: activeChannelsStats.capacity ?? 0, capacity: activeChannelsStats.capacity ?? 0,
} }
}); };
} else if (index === -1) {
channel = {
capacity: row.capacity ?? 0,
short_id: row.short_id,
id: row.id,
node: {
alias: row.alias.length > 0 ? row.alias : row.public_key.slice(0, 20),
public_key: row.public_key,
}
};
}
channels.push(channel);
} }
return channels; return channels;

View File

@ -47,8 +47,17 @@ class ChannelsRoutes {
res.status(400).send('Missing parameter: public_key'); res.status(400).send('Missing parameter: public_key');
return; return;
} }
const index = parseInt(typeof req.query.index === 'string' ? req.query.index : '0', 10) || 0; const index = parseInt(typeof req.query.index === 'string' ? req.query.index : '0', 10) || 0;
const status: string = typeof req.query.status === 'string' ? req.query.status : ''; const status: string = typeof req.query.status === 'string' ? req.query.status : '';
if (index < -1) {
res.status(400).send('Invalid index');
}
if (['open', 'active', 'closed'].includes(status) === false) {
res.status(400).send('Invalid status');
}
const channels = await channelsApi.$getChannelsForNode(req.query.public_key, index, 10, status); const channels = await channelsApi.$getChannelsForNode(req.query.public_key, index, 10, status);
const channelsCount = await channelsApi.$getChannelsCountForNode(req.query.public_key, status); const channelsCount = await channelsApi.$getChannelsCountForNode(req.query.public_key, status);
res.header('Pragma', 'public'); res.header('Pragma', 'public');