create-backan
Version:
Quickly create a backan application to get started
63 lines (51 loc) • 1.18 kB
JavaScript
/**
* Backan Route: [get-example].
*
* @see https://backan.pigeonposse.com/guide/core/route/get
*/
import { Route } from 'backan'
import { getRandomFact } from './_utils'
const id = 'get-example'
const route = new Route( {
path : id,
} )
route.add(
{
method : 'get',
path : '/',
summary : 'Get random facts from [uselessfacts] api',
request : {
query : route.validation.object( {
lang : route.validation.union([
route.validation.literal( 'en' ),
route.validation.literal( 'de' ),
])
.optional()
.default( 'en' )
.describe( 'Select language: en | de' ),
} ),
},
responses : {
200 : route.response.responseJSONSuccess( route.validation.object( {
fact : route.validation.string(),
} ) ),
400 : route.response.responseJSONError400,
500 : route.response.responseJSONError500,
},
tags : [
id,
],
},
async c => {
try {
const { lang } = c.req.valid( 'query' )
const fact = await getRandomFact( lang )
return route.response.addSuccessResponse( c, {
fact,
} )
} catch ( e ) {
return route.response.add500Error( c, e )
}
},
)
export default route