apeman-app-rest
Version:
apeman app to handle restful endpoint.
43 lines (37 loc) • 760 B
JavaScript
/**
* @class SpecEndpoint
*/
const Endpoint = require('./endpoint')
const restSpec = require('../specifying/rest_spec')
const url = require('url')
const co = require('co')
/** @lends SpecEndpoint */
class SpecEndpoint extends Endpoint {
/**
* @override
*/
getDefaultConfig () {
return {
name: 'spec'
}
}
/**
* @override
*/
handle (ctx, next) {
const s = this
let { model } = ctx.state
let { pathname } = s
return co(function * spec () {
let $spec = restSpec(model, { pathname })
let link = url.parse(ctx.link('.'))
Object.assign($spec, {
basePath: link.pathname,
host: link.host
})
ctx.body = $spec
})
}
}
module.exports = SpecEndpoint