From 65d6e325bc408c2ad94532ffa3f1260984b36ebb Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Sat, 10 Feb 2024 07:48:47 +0700 Subject: [PATCH] Implemented getting server version --- .../api/repository/RoomPickerRepository.java | 8 ++++++++ .../response/RoomPickerInfoResponse.java | 3 +++ .../controller/RoomPickerController.java | 14 ++++++++++++++ .../picker/cp/page/MainLayout.java | 12 +++++++++++- .../impl/RoomPickerRepositoryImpl.java | 19 +++++++++++++++++++ 5 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 api/src/main/java/ru/dragonestia/picker/api/repository/RoomPickerRepository.java create mode 100644 api/src/main/java/ru/dragonestia/picker/api/repository/response/RoomPickerInfoResponse.java create mode 100644 app/src/main/java/ru/dragonestia/picker/controller/RoomPickerController.java create mode 100644 control-panel/src/main/java/ru/dragonestia/picker/cp/repository/impl/RoomPickerRepositoryImpl.java diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/RoomPickerRepository.java b/api/src/main/java/ru/dragonestia/picker/api/repository/RoomPickerRepository.java new file mode 100644 index 0000000..6e3e203 --- /dev/null +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/RoomPickerRepository.java @@ -0,0 +1,8 @@ +package ru.dragonestia.picker.api.repository; + +import ru.dragonestia.picker.api.repository.response.RoomPickerInfoResponse; + +public interface RoomPickerRepository { + + RoomPickerInfoResponse getInfo(); +} diff --git a/api/src/main/java/ru/dragonestia/picker/api/repository/response/RoomPickerInfoResponse.java b/api/src/main/java/ru/dragonestia/picker/api/repository/response/RoomPickerInfoResponse.java new file mode 100644 index 0000000..d94394a --- /dev/null +++ b/api/src/main/java/ru/dragonestia/picker/api/repository/response/RoomPickerInfoResponse.java @@ -0,0 +1,3 @@ +package ru.dragonestia.picker.api.repository.response; + +public record RoomPickerInfoResponse(String version) {} diff --git a/app/src/main/java/ru/dragonestia/picker/controller/RoomPickerController.java b/app/src/main/java/ru/dragonestia/picker/controller/RoomPickerController.java new file mode 100644 index 0000000..eefb0d6 --- /dev/null +++ b/app/src/main/java/ru/dragonestia/picker/controller/RoomPickerController.java @@ -0,0 +1,14 @@ +package ru.dragonestia.picker.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import ru.dragonestia.picker.api.repository.response.RoomPickerInfoResponse; + +@RestController +public class RoomPickerController { + + @GetMapping("/info") + RoomPickerInfoResponse info() { + return new RoomPickerInfoResponse("v0.0.1"); + } +} diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/MainLayout.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/MainLayout.java index c590618..8d8d5e7 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/MainLayout.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/MainLayout.java @@ -5,14 +5,22 @@ import com.vaadin.flow.component.Html; import com.vaadin.flow.component.applayout.AppLayout; import com.vaadin.flow.component.applayout.DrawerToggle; import com.vaadin.flow.component.icon.VaadinIcon; +import com.vaadin.flow.component.orderedlayout.FlexComponent; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.Scroller; import com.vaadin.flow.component.sidenav.SideNav; import com.vaadin.flow.component.sidenav.SideNavItem; +import org.springframework.beans.factory.annotation.Autowired; +import ru.dragonestia.picker.api.repository.RoomPickerRepository; +import ru.dragonestia.picker.api.repository.response.RoomPickerInfoResponse; public class MainLayout extends AppLayout { - public MainLayout() { + private final RoomPickerInfoResponse info; + + public MainLayout(RoomPickerRepository roomPickerRepository) { + info = roomPickerRepository.getInfo(); + var toggle = new DrawerToggle(); var scroller = new Scroller(createSideNav()); @@ -22,8 +30,10 @@ public class MainLayout extends AppLayout { private Component createLogo() { var layout = new HorizontalLayout(); + layout.setAlignItems(FlexComponent.Alignment.END); layout.setPadding(true); layout.add(new Html("

RoomPicker!

")); + layout.add(new Html("" + info.version() + "")); return layout; } diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/repository/impl/RoomPickerRepositoryImpl.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/repository/impl/RoomPickerRepositoryImpl.java new file mode 100644 index 0000000..8a7c80c --- /dev/null +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/repository/impl/RoomPickerRepositoryImpl.java @@ -0,0 +1,19 @@ +package ru.dragonestia.picker.cp.repository.impl; + +import com.vaadin.flow.spring.annotation.SpringComponent; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpMethod; +import ru.dragonestia.picker.api.repository.RoomPickerRepository; +import ru.dragonestia.picker.api.repository.response.RoomPickerInfoResponse; + +@RequiredArgsConstructor +@SpringComponent +public class RoomPickerRepositoryImpl implements RoomPickerRepository { + + private final RestUtil rest; + + @Override + public RoomPickerInfoResponse getInfo() { + return rest.query("/info", HttpMethod.GET, RoomPickerInfoResponse.class, params -> {}); + } +}