From c92e48501897d4aecdabba2f25c00960648f14b5 Mon Sep 17 00:00:00 2001 From: CodeSteak Date: Tue, 12 May 2020 22:42:25 +0200 Subject: [PATCH] Implement API Bindings for SupplierService --- .../hso/ecommerce/api/SupplierService.java | 27 +++++++++++++++++++ .../org/hso/ecommerce/api/data/Article.java | 11 ++++++++ .../org/hso/ecommerce/api/data/Order.java | 9 +++++++ .../ecommerce/api/data/OrderConfirmation.java | 12 +++++++++ .../org/hso/ecommerce/api/data/Supplier.java | 11 ++++++++ .../ecommerce/api/data/SupplierDiscount.java | 6 +++++ 6 files changed, 76 insertions(+) create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/SupplierService.java create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/data/Article.java create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/data/Order.java create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/data/OrderConfirmation.java create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/data/Supplier.java create mode 100644 prototype/src/main/java/org/hso/ecommerce/api/data/SupplierDiscount.java diff --git a/prototype/src/main/java/org/hso/ecommerce/api/SupplierService.java b/prototype/src/main/java/org/hso/ecommerce/api/SupplierService.java new file mode 100644 index 0000000..35b87c0 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/SupplierService.java @@ -0,0 +1,27 @@ +package org.hso.ecommerce.api; + +import org.hso.ecommerce.api.data.Order; +import org.hso.ecommerce.api.data.OrderConfirmation; +import org.hso.ecommerce.api.data.Supplier; +import org.springframework.web.client.RestTemplate; + +public class SupplierService { + + private final String url; + + public SupplierService(String url) { + this.url = url; + } + + public Supplier getSupplier() { + RestTemplate restTemplate = new RestTemplate(); + + return restTemplate.getForObject(url, Supplier.class); + } + + public OrderConfirmation order(Order order) { + RestTemplate restTemplate = new RestTemplate(); + + return restTemplate.postForObject(url + "/order", order, OrderConfirmation.class); + } +} diff --git a/prototype/src/main/java/org/hso/ecommerce/api/data/Article.java b/prototype/src/main/java/org/hso/ecommerce/api/data/Article.java new file mode 100644 index 0000000..ad2da1c --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/data/Article.java @@ -0,0 +1,11 @@ +package org.hso.ecommerce.api.data; + +public class Article { + public String title; + public String manufacturer; + public String articleNumber; + + public int vatPercent; + public int pricePerUnitNet; + public boolean shouldBeAdvertised; +} diff --git a/prototype/src/main/java/org/hso/ecommerce/api/data/Order.java b/prototype/src/main/java/org/hso/ecommerce/api/data/Order.java new file mode 100644 index 0000000..679d7a7 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/data/Order.java @@ -0,0 +1,9 @@ +package org.hso.ecommerce.api.data; + +public class Order { + public String manufacturer; + public String articleNumber; + + public int quantity; + public int maxTotalPriceCentNet; +} diff --git a/prototype/src/main/java/org/hso/ecommerce/api/data/OrderConfirmation.java b/prototype/src/main/java/org/hso/ecommerce/api/data/OrderConfirmation.java new file mode 100644 index 0000000..78c8285 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/data/OrderConfirmation.java @@ -0,0 +1,12 @@ +package org.hso.ecommerce.api.data; + +public class OrderConfirmation { + public String manufacturer; + public String articleNumber; + + public int quantity; + + public int pricePerUnitNetCent; + public int discountNetCent; + public int totalPriceNetCharged; +} diff --git a/prototype/src/main/java/org/hso/ecommerce/api/data/Supplier.java b/prototype/src/main/java/org/hso/ecommerce/api/data/Supplier.java new file mode 100644 index 0000000..4ed1f7b --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/data/Supplier.java @@ -0,0 +1,11 @@ +package org.hso.ecommerce.api.data; + +import java.util.List; + +public class Supplier { + + public String id; + public String name; + public SupplierDiscount discount; + public List
articles; +} diff --git a/prototype/src/main/java/org/hso/ecommerce/api/data/SupplierDiscount.java b/prototype/src/main/java/org/hso/ecommerce/api/data/SupplierDiscount.java new file mode 100644 index 0000000..9ccf250 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/api/data/SupplierDiscount.java @@ -0,0 +1,6 @@ +package org.hso.ecommerce.api.data; + +public class SupplierDiscount { + public int minimumDailySalesVolumeNetCent; + public int percentDiscount; +}