change sth
This commit is contained in:
parent
5ceb0445b7
commit
4424e44416
@ -22,6 +22,46 @@ export class NftHolderClass extends BaseModule {
|
|||||||
public version: number
|
public version: number
|
||||||
@prop()
|
@prop()
|
||||||
public lastTxHash: string
|
public lastTxHash: string
|
||||||
|
|
||||||
|
public toQlModel() {
|
||||||
|
return {
|
||||||
|
id: this.tokenId,
|
||||||
|
address: this.user,
|
||||||
|
chain: this.chain + '',
|
||||||
|
contract: this.address,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async queryNFT({
|
||||||
|
address,
|
||||||
|
chain,
|
||||||
|
contract,
|
||||||
|
id,
|
||||||
|
}: {
|
||||||
|
address?: string
|
||||||
|
chain?: string
|
||||||
|
contract?: string
|
||||||
|
id?: string
|
||||||
|
}) {
|
||||||
|
chain = chain || process.env.CHAIN_DEFAULT
|
||||||
|
const chainNum = parseInt(chain)
|
||||||
|
const query: any = { chain: chainNum }
|
||||||
|
if (address) {
|
||||||
|
query.user = address.toLowerCase()
|
||||||
|
}
|
||||||
|
if (contract) {
|
||||||
|
query.address = contract.toLowerCase()
|
||||||
|
}
|
||||||
|
if (id) {
|
||||||
|
query.tokenId = id
|
||||||
|
}
|
||||||
|
let records = await NftHolder.find(query)
|
||||||
|
let results: any = []
|
||||||
|
for (let record of records) {
|
||||||
|
results.push(record.toQlModel())
|
||||||
|
}
|
||||||
|
return results
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const NftHolder = getModelForClass(NftHolderClass, {
|
export const NftHolder = getModelForClass(NftHolderClass, {
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { NftHolder } from 'models/NftHolder'
|
||||||
import { RequestTask } from 'models/RequestTask'
|
import { RequestTask } from 'models/RequestTask'
|
||||||
|
|
||||||
const graphql = require('graphql')
|
const graphql = require('graphql')
|
||||||
@ -11,6 +12,7 @@ const nftType = new GraphQLObjectType({
|
|||||||
address: { type: GraphQLString },
|
address: { type: GraphQLString },
|
||||||
contract: { type: GraphQLString },
|
contract: { type: GraphQLString },
|
||||||
id: { type: GraphQLString },
|
id: { type: GraphQLString },
|
||||||
|
chain: { type: GraphQLString },
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -27,8 +29,14 @@ const RootQuery = new GraphQLObjectType({
|
|||||||
},
|
},
|
||||||
nfts: {
|
nfts: {
|
||||||
type: new GraphQLList(nftType),
|
type: new GraphQLList(nftType),
|
||||||
|
args: {
|
||||||
|
address: { type: GraphQLString },
|
||||||
|
contract: { type: GraphQLString },
|
||||||
|
id: { type: GraphQLString },
|
||||||
|
chain: { type: GraphQLString },
|
||||||
|
},
|
||||||
async resolve(parent, args) {
|
async resolve(parent, args) {
|
||||||
return await RequestTask.find(args)
|
return await NftHolder.queryNFT(args)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user