diff --git a/core/src/main/resources/application.properties b/core/src/main/resources/application.properties index 8b137891791fe96927ad78e64b0aad7bded08bdc..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/core/src/main/resources/application.properties +++ b/core/src/main/resources/application.properties @@ -1 +0,0 @@ - diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java index fbce892417a8ebbcb38d678e5f40dc3329970703..779fece81ad55b5928693cfb189a776e54fe3658 100644 --- a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java @@ -5,8 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { - - public static void main(String[] args) { - SpringApplication.run(App.class, args); - } + public static void main(String[] args) { + SpringApplication.run(App.class, args); + } } diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceController.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceController.java new file mode 100644 index 0000000000000000000000000000000000000000..c0bfe939e137351673e98a790a6a75a8db7d940e --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceController.java @@ -0,0 +1,27 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping(value = "/api/v1/electricity", produces = MediaType.APPLICATION_JSON_VALUE) +public class ElectricityPriceController { + private final ElectricityPriceService electricityPriceService; + @Autowired + public ElectricityPriceController(ElectricityPriceService electricityPriceService) { + this.electricityPriceService = electricityPriceService; + } + + @GetMapping(path = "/electricityprices") + public List<ElectricityPriceDTO> getAllElectricityPrice() { + return electricityPriceService.getAllElectricityPrice().stream().map(ElectricityPriceDTO::toElectricityPriceDTO).toList(); + } + @PostMapping(path = "/electricityprices") + public void setElectricityPrice(@RequestBody ElectricityPriceSetRequest req) { + //TODO + } +} diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceDTO.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..4b17135eeb6c8a1e84db057c94fa5bbd35065f6d --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceDTO.java @@ -0,0 +1,11 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +//DTO +public record ElectricityPriceDTO(String id, String companyId, double priceHighTariff, double priceLowTariff) { +public static ElectricityPriceDTO toElectricityPriceDTO(StoredElectricityPrice storedElectricityPrice) { + return new ElectricityPriceDTO(storedElectricityPrice.id(), + storedElectricityPrice.companyId(), + storedElectricityPrice.priceHighTariff(), + storedElectricityPrice.priceLowTariff()); +} +} diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java new file mode 100644 index 0000000000000000000000000000000000000000..71c00d6d2ed509a4c329399b5504d76aba13a8a8 --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java @@ -0,0 +1,13 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import java.util.List; + +public interface ElectricityPriceService { + public void setElectricityPrice(String companyId, + double priceHighTariff, + double priceLowTariff); + + public double getElectricityPrice(String companyId); //dependent on time - low or high tariff + + public List<StoredElectricityPrice> getAllElectricityPrice(); +} diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..372e3cb17947e4c40a212babe8a7fb60f36c348e --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java @@ -0,0 +1,45 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import jakarta.annotation.PostConstruct; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.UUID; +import java.util.concurrent.CopyOnWriteArrayList; + +@Service +public class ElectricityPriceServiceImpl implements ElectricityPriceService { + //to be stored in database in the future + private final List<StoredElectricityPrice> list = new CopyOnWriteArrayList<>(); + @PostConstruct + public void init() { + list.add(new StoredElectricityPrice("1", "1", 300.0, 200.0)); + } + @Override + public void setElectricityPrice(String companyId, + double priceHighTariff, + double priceLowTariff) { + list.add(new StoredElectricityPrice(UUID.randomUUID().toString(), companyId, priceHighTariff, priceLowTariff)); + + } + /* + public void setElectricityPrice(ElectricityPriceRegistrationRequest electricityPriceRegistrationRequest) { + ElectricityPrice electricityPrice = ElectricityPrice + .builder() + .id(electricityPriceRegistrationRequest.companyId()) + .priceHighTariff(electricityPriceRegistrationRequest.priceHighTariff()) + .priceLowTariff(electricityPriceRegistrationRequest.priceLowTariff()) + .build(); + }*/ + + @Override + public double getElectricityPrice(String companyId) { + return 0; + } + + @Override + public List<StoredElectricityPrice> getAllElectricityPrice() { + return list; + } + +} diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceSetRequest.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceSetRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..39466e325dee115e43db01de29ad24434bb36a2b --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceSetRequest.java @@ -0,0 +1,9 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +//TODO +public class ElectricityPriceSetRequest { + private String id; + private String companyId; + private double priceHighTariff; + private double priceLowTariff; +} diff --git a/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/StoredElectricityPrice.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/StoredElectricityPrice.java new file mode 100644 index 0000000000000000000000000000000000000000..adfb9140fa66193b0deb02a5846ed25a1958394e --- /dev/null +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/StoredElectricityPrice.java @@ -0,0 +1,13 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import lombok.Builder; + +@Builder +public record StoredElectricityPrice( + String id, + String companyId, + double priceHighTariff, + double priceLowTariff +) { + +} diff --git a/microservice4/src/main/resources/application.yml b/microservice4/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..2cecc5eef5f650626c0e5cd723052a5f1ee22e73 --- /dev/null +++ b/microservice4/src/main/resources/application.yml @@ -0,0 +1,6 @@ +server: + port: 8088 + +spring: + application: + name: electricityPriceService \ No newline at end of file diff --git a/microservice4/src/main/resources/banner.txt b/microservice4/src/main/resources/banner.txt new file mode 100644 index 0000000000000000000000000000000000000000..39e3232d12bd8cef3b3f3903085337289444c6b1 --- /dev/null +++ b/microservice4/src/main/resources/banner.txt @@ -0,0 +1,7 @@ + + ,--. ,--. ,--. ,--. ,--. ,------. ,--. ,---. ,--. + ,---. | |,---. ,---.,-' '-.,--.--.`--' ,---.`--',-' '-.,--. ,--.| .--. ',--.--.`--' ,---. ,---. ' .-' ,---. ,--.--.,--. ,--.`--' ,---. ,---. +| .-. :| | .-. :| .--''-. .-'| .--',--.| .--',--.'-. .-' \ ' / | '--' || .--',--.| .--'| .-. :`. `-.| .-. :| .--' \ `' / ,--.| .--'| .-. : +\ --.| \ --.\ `--. | | | | | |\ `--.| | | | \ ' | | --' | | | |\ `--.\ --..-' \ --.| | \ / | |\ `--.\ --. + `----'`--'`----' `---' `--' `--' `--' `---'`--' `--' .-' / `--' `--' `--' `---' `----'`-----' `----'`--' `--' `--' `---' `----' + `---'