apeman-app-rest
Version:
apeman app to handle restful endpoint.
56 lines (46 loc) • 998 B
JavaScript
/**
* Endpoint for destroy
* @augments Endpoint
* @class DestroyEndpoint
*/
const Endpoint = require('./endpoint')
const { defineDestroy } = require('apemanmodel')
const co = require('co')
/** @lends DestroyEndpoint */
class DestroyEndpoint extends Endpoint {
/**
* @override
*/
getDefaultConfig () {
return {
name: 'destroy'
}
}
/**
* @override
*/
handle (ctx, next) {
const s = this
let succeed = s.bindSucceed(ctx)
return co(function * () {
let { state } = ctx
let { id } = state
let destroyed = yield s.destroy(id, state)
return succeed(destroyed)
})
}
destroy (id, state) {
const s = this
let { transaction, model, instance } = state
let destroy = defineDestroy(model, transaction)
return co(function * () {
if (!instance) {
return { count: 0 }
}
yield destroy(instance)
return { count: 1 }
})
}
}
module.exports = DestroyEndpoint