mempool/lightning-backend/src/api/explorer/channels.api.ts

73 lines
2.8 KiB
TypeScript
Raw Normal View History

2022-04-29 03:57:27 +04:00
import logger from '../../logger';
import DB from '../../database';
class ChannelsApi {
2022-05-01 15:35:28 +04:00
public async $getAllChannels(): Promise<any[]> {
try {
const query = `SELECT * FROM channels`;
const [rows]: any = await DB.query(query);
return rows;
} catch (e) {
2022-05-07 11:32:15 +04:00
logger.err('$getAllChannels error: ' + (e instanceof Error ? e.message : e));
2022-05-01 15:35:28 +04:00
throw e;
}
}
public async $getChannelsByStatus(status: number): Promise<any[]> {
try {
const query = `SELECT * FROM channels WHERE status = ?`;
const [rows]: any = await DB.query(query, [status]);
return rows;
} catch (e) {
2022-05-07 11:32:15 +04:00
logger.err('$getChannelsByStatus error: ' + (e instanceof Error ? e.message : e));
2022-05-01 15:35:28 +04:00
throw e;
}
}
2022-05-05 23:19:24 +04:00
public async $getChannelsWithoutCreatedDate(): Promise<any[]> {
try {
const query = `SELECT * FROM channels WHERE created IS NULL`;
const [rows]: any = await DB.query(query);
return rows;
} catch (e) {
logger.err('$getChannelsWithoutCreatedDate error: ' + (e instanceof Error ? e.message : e));
throw e;
}
}
2022-05-01 03:01:27 +04:00
public async $getChannel(shortId: string): Promise<any> {
try {
const query = `SELECT n1.alias AS alias_left, n2.alias AS alias_right, channels.* FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key WHERE channels.id = ?`;
const [rows]: any = await DB.query(query, [shortId]);
return rows[0];
} catch (e) {
logger.err('$getChannel error: ' + (e instanceof Error ? e.message : e));
throw e;
}
}
2022-05-07 11:32:15 +04:00
public async $getChannelByTransactionId(transactionId: string): Promise<any> {
try {
const query = `SELECT n1.alias AS alias_left, n2.alias AS alias_right, channels.* FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key WHERE channels.transaction_id = ?`;
const [rows]: any = await DB.query(query, [transactionId]);
return rows[0];
} catch (e) {
logger.err('$getChannelByTransactionId error: ' + (e instanceof Error ? e.message : e));
throw e;
}
}
2022-04-29 03:57:27 +04:00
public async $getChannelsForNode(public_key: string): Promise<any> {
try {
2022-05-01 03:01:27 +04:00
const query = `SELECT n1.alias AS alias_left, n2.alias AS alias_right, channels.* FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key WHERE node1_public_key = ? OR node2_public_key = ?`;
2022-04-29 03:57:27 +04:00
const [rows]: any = await DB.query(query, [public_key, public_key]);
return rows;
} catch (e) {
logger.err('$getChannelsForNode error: ' + (e instanceof Error ? e.message : e));
throw e;
}
}
}
export default new ChannelsApi();