allow deletion of model

This commit is contained in:
Martin McKeaveney 2020-04-13 16:46:28 +01:00
parent 6a34aa72f4
commit 6d47e0df89
4 changed files with 36 additions and 4 deletions

View File

@ -61,5 +61,9 @@ exports.update = async function(ctx) {
exports.destroy = async function(ctx) { exports.destroy = async function(ctx) {
const db = couchdb.db.use(ctx.params.instanceId) const db = couchdb.db.use(ctx.params.instanceId)
ctx.body = await db.destroy(ctx.params.modelId, ctx.params.rev); const model = await db.destroy(ctx.params.modelId, ctx.params.revId);
ctx.body = {
message: `Model ${model.id} deleted.`,
status: 200
}
} }

View File

@ -7,7 +7,7 @@ router
.get("/api/:instanceId/models", controller.fetch) .get("/api/:instanceId/models", controller.fetch)
.post("/api/:instanceId/models", controller.create) .post("/api/:instanceId/models", controller.create)
// .patch("/api/:instanceId/models", controller.update) // .patch("/api/:instanceId/models", controller.update)
// .delete("/api/:instanceId/models/:modelId", controller.delete) .delete("/api/:instanceId/models/:modelId/:revId", controller.destroy);
module.exports = router; module.exports = router;

View File

@ -16,8 +16,11 @@ exports.createModel = async instanceId => {
} }
] ]
} }
await couchdb.db.use(instanceId).insert(model); const response = await couchdb.db.use(instanceId).insert(model);
return model; return {
...response,
...model
};
} }
exports.createClientDatabase = async () => { exports.createClientDatabase = async () => {

View File

@ -80,4 +80,29 @@ describe("/models", () => {
}); });
}) })
}); });
describe("destroy", () => {
let testModel;
beforeEach(async () => {
await createInstanceDatabase(TEST_INSTANCE_ID);
testModel = await createModel(TEST_INSTANCE_ID);
});
afterEach(async () => {
await destroyDatabase(TEST_INSTANCE_ID);
});
it("returns all the models for that instance in the response body", done => {
request
.delete(`/api/${TEST_INSTANCE_ID}/models/${testModel.id}/${testModel.rev}`)
.set("Accept", "application/json")
.expect('Content-Type', /json/)
.expect(200)
.end(async (_, res) => {
expect(res.body.message).toEqual(`Model ${testModel.id} deleted.`);
done();
});
})
});
}); });