Moralis.Cloud.define("getAllUserNFT", async (request) => {
const query = new Moralis.Query("NftAdded");
query.notEqualTo("isSold", true);
query.select("uid","askingPrice","biddingTime", "tokenAddress","tokenId", "token.token_uri", "token.symbol","token.owner_of","token.id", "user.username");
const queryResults = await query.find({useMasterKey:true});
const nftForSaleResult = [];
for (let i = 0; i < queryResults.length; ++i) {
if (!queryResults[i].attributes.token || !queryResults[i].attributes.user) continue;
nftForSaleResult.push({
"uid": queryResults[i].attributes.uid,
"tokenId": queryResults[i].attributes.tokenId,
"tokenAddress": queryResults[i].attributes.tokenAddress,
"askingPrice": queryResults[i].attributes.askingPrice,
"biddingTime": queryResults[i].attributes.biddingTime,
"createdAt": queryResults[i].attributes.createdAt,
"symbol": queryResults[i].attributes.token.attributes.symbol,
"tokenUri": queryResults[i].attributes.token.attributes.token_uri,
"ownerOf": queryResults[i].attributes.token.attributes.owner_of,
"tokenObjectId": queryResults[i].attributes.token.id,
"sellerUsername": queryResults[i].attributes.user.attributes.username,
});
}
const query2 = new Moralis.Query("EthNFTOwners");
query2.equalTo("contract_type", "ERC721");
if(request.user.get("accounts")){
query2.containedIn("owner_of", request.user.get("accounts"));
const queryResults2 = await query2.find();
let results = [];
for(let i = 0; i < queryResults2.length; ++i){
results.push({
"uid": '',
"tokenId": queryResults2[i].attributes.tokenId,
"tokenAddress": queryResults2[i].attributes.tokenAddress,
"askingPrice": '',
"biddingTime": '',
"createdAt": '',
"symbol": queryResults2[i].attributes.symbol,
"tokenUri": queryResults2[i].attributes.token_uri,
"ownerOf": '',
"tokenObjectId": queryResults2[i].attributes.id,
"sellerUsername": '',
});
}
const finalResult = [];
for(let i = 0; i < results.length; ++i){
for(let j = 0; j < nftForSaleResult.length; ++j){
if(results[i].tokenId === nftForSaleResult[j].tokenId) {
finalResult[i] = nftForSaleResult[j];
} else finalResult[i] = results[i];
}
}
return finalResult;
}
return;
});