Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion pages/api/[network]/get-name-by-token-id.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,14 @@ async function handler(req, res) {
return res.status(400).json({ message: "Missing required parameters" });
}
const subDomainName = await sql`
SELECT name, address, "textRecords" FROM ponder_prod."NftSubdomain" WHERE "domainName" = ${domain} AND "tokenId" = ${tokenId}
SELECT
name,
address,
text_records as textRecords
FROM
ponder_prod."NftSubdomain"
WHERE
domain_name = ${domain} AND token_id = ${tokenId}
`;

if (subDomainName.length === 0) {
Expand Down
52 changes: 45 additions & 7 deletions pages/api/[network]/get-onchain-names.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,66 @@ const cors = Cors({
});

async function handler(req, res) {
// Check required parameters
const domain = req.query.domain;
const addresses = req.query.addresses?.split(","); // Assuming addresses are comma-separated
const addresses = req.query.addresses
?.split(",")
.map((address) => address.toLowerCase()); // comma-separated
const name = req.query.name;

if (!domain) {
return res.status(400).json({ message: "Missing required parameters" });
}

let subDomainNames;

if (name) {
subDomainNames = await sql`
SELECT name, address, owner, "tokenId", "textRecords" as "textRecordsPayload", "coinTypes" as "coinTypesPayload", "registeredAt", contenthash FROM ponder_prod."NftSubdomain" WHERE "domainName" = ${domain} AND "name" = ${name} order by "registeredAt" desc
SELECT
name,
address,
owner,
"token_id" AS "tokenId",
"text_records" AS "textRecordsPayload",
"coin_types" AS "coinTypesPayload",
"registered_at" AS "registeredAt",
contenthash
FROM ponder_prod."NftSubdomain"
WHERE domain_name = ${domain}
AND "name" = ${name}
ORDER BY "registered_at" DESC
`;
} else {
if (addresses && addresses.length > 0) {
subDomainNames = await sql`
SELECT name, address, owner, "tokenId", "textRecords" as "textRecordsPayload", "coinTypes" as "coinTypesPayload", "registeredAt", contenthash FROM ponder_prod."NftSubdomain" WHERE "domainName" = ${domain} AND "address" = ANY (${addresses}) order by "registeredAt" desc
`;
SELECT
name,
address,
owner,
"token_id" AS "tokenId",
"text_records" AS "textRecordsPayload",
"coin_types" AS "coinTypesPayload",
"registered_at" AS "registeredAt",
contenthash
FROM ponder_prod."NftSubdomain"
WHERE domain_name = ${domain}
AND "address" = ANY (${addresses})
ORDER BY "registered_at" DESC
`;
} else {
subDomainNames = await sql`
SELECT name, address, owner, "tokenId", "textRecords" as "textRecordsPayload", "coinTypes" as "coinTypesPayload", "registeredAt", contenthash FROM ponder_prod."NftSubdomain" WHERE "domainName" = ${domain} order by "registeredAt" desc
`;
SELECT
name,
address,
owner,
"token_id" AS "tokenId",
"text_records" AS "textRecordsPayload",
"coin_types" AS "coinTypesPayload",
"registered_at" AS "registeredAt",
contenthash
FROM ponder_prod."NftSubdomain"
WHERE domain_name = ${domain}
ORDER BY "registered_at" DESC
`;
}
}

Expand All @@ -50,6 +87,7 @@ async function handler(req, res) {
} of subDomainNames) {
const text_records = JSON.parse(textRecordsPayload);
const coin_types = JSON.parse(coinTypesPayload);

result.push({
name,
address,
Expand Down