Skip to content

Commit

Permalink
Merge pull request #886 from amido/feature/4714-4715-Swagger-Annotati…
Browse files Browse the repository at this point in the history
…ons-and-Controller-Impls

Feature/4714 & 4715 Swagger annotations and Controller impls
  • Loading branch information
sdavis-amido authored Jul 15, 2022
2 parents d9aa4c8 + fd60e9e commit 4f24a76
Show file tree
Hide file tree
Showing 41 changed files with 677 additions and 1,665 deletions.
2 changes: 1 addition & 1 deletion java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<description>Demo project for Java</description>

<properties>
<stacks.core.api.version>1.0.0</stacks.core.api.version>
<stacks.core.api.version>1.0.2.2-RELEASE</stacks.core.api.version>
<stacks.core.commons.version>1.0.3</stacks.core.commons.version>

<java.version>11</java.version>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package com.amido.stacks.workloads.menu.api.v1;

import static org.springframework.http.HttpStatus.OK;

import com.amido.stacks.core.api.annotations.CreateAPIResponses;
import com.amido.stacks.core.api.annotations.DeleteAPIResponses;
import com.amido.stacks.core.api.annotations.UpdateAPIResponses;
import com.amido.stacks.core.api.dto.response.ResourceCreatedResponse;
import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse;
import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateCategoryRequest;
import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateCategoryRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import java.util.UUID;
import javax.validation.Valid;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping(
path = "/v1/menu/{id}/category",
produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8")
@RestController
public class CategoryController {

@PostMapping
@Operation(
tags = "Category",
summary = "Create a category in the menu",
description = "Adds a category to menu",
operationId = "AddMenuCategory")
@CreateAPIResponses
ResponseEntity<ResourceCreatedResponse> addMenuCategory(
@Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId,
@Valid @RequestBody CreateCategoryRequest body,
@Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) {

return new ResponseEntity<>(new ResourceCreatedResponse(UUID.randomUUID()), HttpStatus.CREATED);
}

@PutMapping("/{categoryId}")
@Operation(
tags = "Category",
summary = "Update a category in the menu",
description = "Update a category to menu",
operationId = "UpdateMenuCategory")
@UpdateAPIResponses
ResponseEntity<ResourceUpdatedResponse> updateMenuCategory(
@Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId,
@Parameter(description = "Category id", required = true) @PathVariable("categoryId")
UUID categoryId,
@Valid @RequestBody UpdateCategoryRequest body,
@Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) {

return new ResponseEntity<>(new ResourceUpdatedResponse(UUID.randomUUID()), OK);
}

@DeleteMapping("/{categoryId}")
@Operation(
tags = "Category",
summary = "Removes a category and its items from menu",
description = "Removes a category and its items from menu",
operationId = "DeleteCategory")
@DeleteAPIResponses
ResponseEntity<Void> deleteCategory(
@Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId,
@Parameter(description = "Category id", required = true) @PathVariable("categoryId")
UUID categoryId,
@Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) {

return new ResponseEntity<>(OK);
}
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 4f24a76

Please sign in to comment.