diff --git a/src/main/java/net/dontcode/prj/ProjectResource.java b/src/main/java/net/dontcode/prj/ProjectResource.java index 294d4d7..414079e 100644 --- a/src/main/java/net/dontcode/prj/ProjectResource.java +++ b/src/main/java/net/dontcode/prj/ProjectResource.java @@ -1,5 +1,7 @@ package net.dontcode.prj; +import com.mongodb.client.model.FindOneAndReplaceOptions; +import com.mongodb.client.model.ReturnDocument; import io.quarkus.mongodb.MongoClientName; import io.quarkus.mongodb.reactive.ReactiveMongoClient; import io.quarkus.mongodb.reactive.ReactiveMongoCollection; @@ -81,7 +83,8 @@ public Uni getProject (String projectName, @HeaderParam("DbName") Stri @Produces(MediaType.APPLICATION_JSON) public Uni updateProject (String projectName, @HeaderParam("DbName") String dbName, Document body) { changeIdToObjectId(body); - Uni ret = getProjects(dbName).findOneAndReplace(new Document().append("_id", body.get("_id")), body).map(document -> { + Uni ret = getProjects(dbName).findOneAndReplace(new Document().append("_id", body.get("_id")), body, + new FindOneAndReplaceOptions().upsert(false).returnDocument(ReturnDocument.AFTER)).map(document -> { if( document != null) { changeIdToString(document); return Response.ok(document).build(); diff --git a/src/test/java/net/dontcode/prj/ProjectResourceTest.java b/src/test/java/net/dontcode/prj/ProjectResourceTest.java index acec3ec..f05db3d 100644 --- a/src/test/java/net/dontcode/prj/ProjectResourceTest.java +++ b/src/test/java/net/dontcode/prj/ProjectResourceTest.java @@ -90,6 +90,7 @@ public void testCompleteFlow () { .body("_id", Matchers.notNullValue() ) .and().extract().as(Document.class); Assertions.assertEquals(created.get("_id"), updated.get("_id")); + Assertions.assertEquals("PrjUpdated2", updated.get("name")); given().accept(ContentType.JSON).when().get("/{prjName}","PrjUpdated2").then().statusCode(HttpStatus.SC_OK) .body("name", Matchers.is("PrjUpdated2"))