This commit is contained in:
Vendored
+13
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"files.exclude": {
|
||||||
|
"**/.git": true,
|
||||||
|
"**/.svn": true,
|
||||||
|
"**/.hg": true,
|
||||||
|
"**/.DS_Store": true,
|
||||||
|
"**/Thumbs.db": true,
|
||||||
|
"**/target": true,
|
||||||
|
"**/docker": true,
|
||||||
|
"node_modules": true
|
||||||
|
},
|
||||||
|
"explorerExclude.backup": {}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.eclipse.microprofile.graphql.Input;
|
import org.eclipse.microprofile.graphql.Input;
|
||||||
|
import org.eclipse.microprofile.graphql.NonNull;
|
||||||
|
|
||||||
@Input
|
@Input
|
||||||
@Getter
|
@Getter
|
||||||
@@ -16,7 +17,9 @@ import org.eclipse.microprofile.graphql.Input;
|
|||||||
@RegisterForReflection
|
@RegisterForReflection
|
||||||
public class AddMenuItem implements MenuItemInterface {
|
public class AddMenuItem implements MenuItemInterface {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private Double price;
|
private Double price;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,25 @@ public class EateryService {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Mutation("deleteMenuItem")
|
||||||
|
@RolesAllowed(Role.Manager)
|
||||||
|
@Transactional
|
||||||
|
public boolean deleteMenuItem(@Name("menuItemId") UUID menuItemId) {
|
||||||
|
UUID ownerId = UUID.fromString(request.getHeader(InternalValue.userId));
|
||||||
|
|
||||||
|
MenuItemEntity item = MenuItemEntity.find(
|
||||||
|
"id = ?1 and eatery.ownerId = ?2",
|
||||||
|
menuItemId,
|
||||||
|
ownerId
|
||||||
|
).firstResult();
|
||||||
|
|
||||||
|
if (item == null) return false;
|
||||||
|
|
||||||
|
item.delete();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Query("menuItemsByEatery")
|
@Query("menuItemsByEatery")
|
||||||
public List<MenuItemEntity> getMenuItemsByEatery(
|
public List<MenuItemEntity> getMenuItemsByEatery(
|
||||||
@Name("eateryId") UUID eateryId
|
@Name("eateryId") UUID eateryId
|
||||||
|
|||||||
@@ -310,4 +310,31 @@ public class EateryServiceTest {
|
|||||||
.body("data.updateMenuItem.id", is(savedMenuItemId.toString()))
|
.body("data.updateMenuItem.id", is(savedMenuItemId.toString()))
|
||||||
.statusCode(200);
|
.statusCode(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteMenuItem_Success() {
|
||||||
|
String mutation = """
|
||||||
|
mutation deleteItem($input: String!) {
|
||||||
|
deleteMenuItem(menuItemId: $input)
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
variables.put("input", savedMenuItemId.toString());
|
||||||
|
|
||||||
|
Map<String, Object> requestBody = new HashMap<>();
|
||||||
|
requestBody.put("query", mutation);
|
||||||
|
requestBody.put("variables", variables);
|
||||||
|
|
||||||
|
given()
|
||||||
|
.contentType(ContentType.JSON)
|
||||||
|
.header(InternalValue.role, Role.Manager)
|
||||||
|
.header(InternalValue.userId, savedOwnerId)
|
||||||
|
.body(requestBody)
|
||||||
|
.when()
|
||||||
|
.post("/graphql")
|
||||||
|
.then()
|
||||||
|
.statusCode(200)
|
||||||
|
.body("data.deleteMenuItem", is(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user