mirror of
https://github.com/oceanprotocol/ens-proxy.git
synced 2024-12-02 05:57:34 +01:00
Creating API for getting profile
This commit is contained in:
parent
61dd21b2f1
commit
9a36f47c9b
@ -1,3 +1,4 @@
|
|||||||
|
import { NextApiRequest, NextApiResponse } from 'next'
|
||||||
import { getEnsName } from './name'
|
import { getEnsName } from './name'
|
||||||
import { getEnsTextRecords } from './text'
|
import { getEnsTextRecords } from './text'
|
||||||
|
|
||||||
@ -21,7 +22,7 @@ function getEnsAvatar(ensName: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getEnsProfile(accountId: string): Promise<Profile> {
|
export async function getEnsProfile(accountId: string): Promise<Profile> {
|
||||||
const name = await getEnsName(accountId)
|
const name = (await getEnsName(accountId)).name
|
||||||
if (!name) return { name: null }
|
if (!name) return { name: null }
|
||||||
|
|
||||||
const records = await getEnsTextRecords(name)
|
const records = await getEnsTextRecords(name)
|
||||||
@ -52,6 +53,21 @@ export async function getEnsProfile(accountId: string): Promise<Profile> {
|
|||||||
...(description && { description }),
|
...(description && { description }),
|
||||||
...(links.length > 0 && { links })
|
...(links.length > 0 && { links })
|
||||||
}
|
}
|
||||||
|
|
||||||
return profile
|
return profile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default async function EnsProfileApi(
|
||||||
|
request: NextApiRequest,
|
||||||
|
response: NextApiResponse
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
const accountId = String(request.query.address)
|
||||||
|
const profile = await getEnsProfile(accountId)
|
||||||
|
console.log('profile', profile)
|
||||||
|
|
||||||
|
response.setHeader('Cache-Control', 's-maxage=86400')
|
||||||
|
response.status(200).send(profile)
|
||||||
|
} catch (error) {
|
||||||
|
response.status(500).send(`${error}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -29,7 +29,7 @@ export async function getEnsTextRecords(
|
|||||||
requestPolicy: 'cache-and-network'
|
requestPolicy: 'cache-and-network'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if (!result?.data?.domains[0]?.resolver) return
|
if (!result?.data?.domains[0]?.resolver) throw 'No ENS text records found'
|
||||||
|
|
||||||
// 2. Retrieve the text records.
|
// 2. Retrieve the text records.
|
||||||
const { texts } = result.data.domains[0].resolver
|
const { texts } = result.data.domains[0].resolver
|
||||||
@ -40,7 +40,6 @@ export async function getEnsTextRecords(
|
|||||||
for (let index = 0; index < texts?.length; index++) {
|
for (let index = 0; index < texts?.length; index++) {
|
||||||
const key = texts[index]
|
const key = texts[index]
|
||||||
const value = await ens.name(ensName).getText(key)
|
const value = await ens.name(ensName).getText(key)
|
||||||
console.log(value)
|
|
||||||
records.push({ key, value })
|
records.push({ key, value })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user