diff --git a/specmatic.yaml b/specmatic.yaml index 59f6e4b..5688a98 100644 --- a/specmatic.yaml +++ b/specmatic.yaml @@ -15,6 +15,7 @@ components: specmaticOrderContracts: git: url: https://github.com/specmatic/specmatic-order-contracts.git + branch: missing-response-codes localFilesystem: filesystem: directory: "." diff --git a/src/main/java/com/store/controllers/Orders.kt b/src/main/java/com/store/controllers/Orders.kt index 500ab3b..bb47991 100644 --- a/src/main/java/com/store/controllers/Orders.kt +++ b/src/main/java/com/store/controllers/Orders.kt @@ -6,6 +6,7 @@ import jakarta.validation.Valid import jakarta.validation.constraints.NotNull import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus +import org.springframework.http.MediaType import org.springframework.http.ResponseEntity import org.springframework.security.core.annotation.AuthenticationPrincipal import org.springframework.validation.annotation.Validated @@ -18,7 +19,7 @@ class Orders { @Autowired lateinit var orderService: OrderService - @PostMapping("/orders") + @PostMapping("/orders", consumes = [MediaType.APPLICATION_JSON_VALUE]) fun create( @Valid @RequestBody request: NewOrderRequest, @NotNull @RequestHeader("Idempotency-Key", required = true) idempotencyKey: UUID, @@ -39,7 +40,7 @@ class Orders { return ResponseEntity(HttpStatus.OK) } - @PatchMapping("/orders/{id}") + @PatchMapping("/orders/{id}", consumes = [MediaType.APPLICATION_JSON_VALUE]) fun update( @PathVariable("id") id: Int, @Valid @RequestBody request: UpdateOrderRequest, diff --git a/src/main/java/com/store/controllers/Products.kt b/src/main/java/com/store/controllers/Products.kt index 7e2c0e6..3c96e62 100644 --- a/src/main/java/com/store/controllers/Products.kt +++ b/src/main/java/com/store/controllers/Products.kt @@ -8,6 +8,7 @@ import jakarta.validation.constraints.Positive import org.springframework.beans.factory.annotation.Autowired import org.springframework.format.annotation.DateTimeFormat import org.springframework.http.HttpStatus +import org.springframework.http.MediaType import org.springframework.http.ResponseEntity import org.springframework.security.core.annotation.AuthenticationPrincipal import org.springframework.validation.annotation.Validated @@ -22,7 +23,7 @@ open class Products { @Autowired lateinit var productService: ProductService - @PatchMapping("/products/{id}") + @PatchMapping("/products/{id}", consumes = [MediaType.APPLICATION_JSON_VALUE]) @Validated fun update( @PathVariable("id") id: Int, @@ -38,7 +39,7 @@ open class Products { return productService.getProduct(id) } - @PostMapping("/products") + @PostMapping("/products", consumes = [MediaType.APPLICATION_JSON_VALUE]) fun create( @Valid @RequestBody request: NewProductRequest, @NotNull @RequestHeader("Idempotency-Key", required = true) idempotencyKey: UUID, @@ -72,7 +73,7 @@ open class Products { return ResponseEntity(products.take(pageSize ?: products.size), HttpStatus.OK) } - @PutMapping("/products/{id}/image", consumes = ["multipart/form-data"]) + @PutMapping("/products/{id}/image", consumes = [MediaType.MULTIPART_FORM_DATA_VALUE]) fun uploadImage(@PathVariable("id") id: Int, @RequestPart("image") image: MultipartFile): ResponseEntity> { productService.addImage(id, image.originalFilename, image.bytes) val response = mapOf("message" to "Product image updated successfully")