UNPKG

apeman-app-rest

Version:
56 lines (46 loc) 998 B
/** * Endpoint for destroy * @augments Endpoint * @class DestroyEndpoint */ 'use strict' 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