mirror of
https://github.com/stronk-dev/RandomChad.git
synced 2025-07-05 18:35:10 +02:00
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
const { safelyReturnRocketeer, safelyReturnMultipleRocketeers } = require( '../nft-media/rocketeer' )
|
|
|
|
exports.rocketeerFromRequest = async function( req, res, network='mainnet' ) {
|
|
|
|
|
|
// Parse the request
|
|
let { id } = req.params
|
|
if( !id ) return res.json( { error: `No ID specified in URL` } )
|
|
|
|
// Protect against malformed input
|
|
id = Math.floor( Math.abs( id ) )
|
|
if( typeof id !== 'number' ) return res.json( { error: `Malformed request` } )
|
|
|
|
// Set ID to string so firestore can handle it
|
|
id = `${ id }`
|
|
|
|
try {
|
|
|
|
// Get old rocketeer if it exists
|
|
const rocketeer = await safelyReturnRocketeer( id, network )
|
|
|
|
// Return the new rocketeer
|
|
return res.json( rocketeer )
|
|
|
|
} catch( e ) {
|
|
|
|
// Log error for debugging
|
|
console.error( `${ network } api error for ${ id }: `, e )
|
|
|
|
// Return error to frontend
|
|
return res.json( { error: e.mesage || e.toString() } )
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
exports.multipleRocketeersFromRequest = async function( req, res, network='mainnet' ) {
|
|
|
|
try {
|
|
|
|
// Parse the request
|
|
let { ids } = req.query
|
|
ids = ids.split( ',' )
|
|
if( ids.length > 250 ) throw new Error( 'Please do not ask for so much data at once :)' )
|
|
const rocketeers = await safelyReturnMultipleRocketeers( ids, network )
|
|
return res.json( rocketeers )
|
|
|
|
} catch( e ) {
|
|
return res.json( { error: e.message || e.toString() } )
|
|
}
|
|
|
|
} |