mirror of
https://github.com/stronk-dev/RandomChad.git
synced 2025-07-05 10:35:08 +02:00
✨ easy endpoint to get multiple rocketeers
This commit is contained in:
parent
a578cf071f
commit
e47a1054b7
@ -1,6 +1,6 @@
|
||||
const app = require( './express' )()
|
||||
const { getTotalSupply } = require( '../modules/contract' )
|
||||
const { safelyReturnRocketeer, web2domain } = require( '../nft-media/rocketeer' )
|
||||
const { safelyReturnRocketeer, web2domain, safelyReturnMultipleRocketeers } = require( '../nft-media/rocketeer' )
|
||||
const { setAvatar, resetAvatar } = require( '../integrations/avatar' )
|
||||
const { generateNewOutfit, setPrimaryOutfit } = require( '../integrations/changingroom' )
|
||||
|
||||
@ -40,6 +40,24 @@ app.get( '/api/rocketeer/:id', async ( req, res ) => {
|
||||
|
||||
} )
|
||||
|
||||
app.get( '/api/rocketeers/', async ( req, res ) => {
|
||||
|
||||
try {
|
||||
|
||||
// Parse the request
|
||||
let { ids } = req.query
|
||||
ids = ids.split( ',' )
|
||||
if( ids.length > 100 ) throw new Error( 'Please do not ask for so much data at once :)' )
|
||||
const rocketeers = await safelyReturnMultipleRocketeers( ids, 'testnet' )
|
||||
return res.json( rocketeers )
|
||||
|
||||
} catch( e ) {
|
||||
return res.json( { error: e.message || e.toString() } )
|
||||
}
|
||||
|
||||
|
||||
} )
|
||||
|
||||
/* ///////////////////////////////
|
||||
// VGR's dashboard integration
|
||||
// /////////////////////////////*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
const app = require( './express' )()
|
||||
const { getTotalSupply } = require( '../modules/contract' )
|
||||
const { safelyReturnRocketeer, web2domain } = require( '../nft-media/rocketeer' )
|
||||
const { safelyReturnRocketeer, web2domain, safelyReturnMultipleRocketeers } = require( '../nft-media/rocketeer' )
|
||||
const { generateNewOutfit, setPrimaryOutfit } = require( '../integrations/changingroom' )
|
||||
|
||||
////////////////////////////////
|
||||
@ -39,6 +39,24 @@ app.get( '/testnetapi/rocketeer/:id', async ( req, res ) => {
|
||||
|
||||
} )
|
||||
|
||||
app.get( '/testnetapi/rocketeers/', async ( req, res ) => {
|
||||
|
||||
try {
|
||||
|
||||
// Parse the request
|
||||
let { ids } = req.query
|
||||
ids = ids.split( ',' )
|
||||
if( ids.length > 100 ) throw new Error( 'Please do not ask for so much data at once :)' )
|
||||
const rocketeers = await safelyReturnMultipleRocketeers( ids, 'testnet' )
|
||||
return res.json( rocketeers )
|
||||
|
||||
} catch( e ) {
|
||||
return res.json( { error: e.message || e.toString() } )
|
||||
}
|
||||
|
||||
|
||||
} )
|
||||
|
||||
/* ///////////////////////////////
|
||||
// Changing room endpoints
|
||||
// /////////////////////////////*/
|
||||
|
@ -149,7 +149,22 @@ async function safelyReturnRocketeer( id, network ) {
|
||||
|
||||
}
|
||||
|
||||
async function safelyReturnMultipleRocketeers( ids=[], network='mainnet' ) {
|
||||
|
||||
// Chech if this is an illegal ID
|
||||
const invalidIds = await Promise.all( ids.map( id => isInvalidRocketeerId( id, network ) ) )
|
||||
if( invalidIds.includes( true ) ) throw invalidIds
|
||||
|
||||
// Get old rocketeers
|
||||
const rocketeers = await Promise.all( ids.map( id => getExistingRocketeer( id ) ) )
|
||||
|
||||
// Send back an array of rocketeers, but not any failed ones
|
||||
return rocketeers.filter( rocketeer => rocketeer )
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
web2domain: web2domain,
|
||||
safelyReturnRocketeer: safelyReturnRocketeer
|
||||
web2domain,
|
||||
safelyReturnRocketeer,
|
||||
safelyReturnMultipleRocketeers
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user