2021-12-08 10:17:58 +01:00

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 > 100 ) 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() } )
}
}