diff --git a/src/main/java/org/mobidgim/mobidigimproject/config/filterconfig/FilterConfig.java b/src/main/java/org/mobidgim/mobidigimproject/config/filterconfig/FilterConfig.java new file mode 100644 index 0000000..dee55c7 --- /dev/null +++ b/src/main/java/org/mobidgim/mobidigimproject/config/filterconfig/FilterConfig.java @@ -0,0 +1,18 @@ +package org.mobidgim.mobidigimproject.config.filterconfig; + +import org.mobidgim.mobidigimproject.filter.LoggerFilter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class FilterConfig { + @Bean + public FilterRegistrationBean loggerFilter() { + FilterRegistrationBean registration = new FilterRegistrationBean<>(); + registration.setFilter(new LoggerFilter()); + registration.addUrlPatterns("/*"); + registration.setOrder(1); + return registration; + } +} \ No newline at end of file diff --git a/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java b/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java index d6fe50f..ae89b7e 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java +++ b/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java @@ -4,7 +4,6 @@ import jakarta.servlet.ServletResponse; import lombok.AllArgsConstructor; import org.mobidgim.mobidigimproject.common.api.Api; import org.mobidgim.mobidigimproject.model.device.DeviceDTO; -import org.mobidgim.mobidigimproject.model.register.RegisterDTO; import org.mobidgim.mobidigimproject.service.SettingService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -26,9 +25,9 @@ public class Controller { return Api.OK(request); } - @PostMapping("/register") - public Api settingRegister(@RequestBody RegisterDTO request)throws IOException{ - settingService.saveFileWithRegister(request); - return Api.OK(request); - } +// @PostMapping("/register") +// public Api settingRegister(@RequestBody RegisterDTO request)throws IOException{ +// settingService.saveFileWithRegister(request); +// return Api.OK(request); +// } } diff --git a/src/main/java/org/mobidgim/mobidigimproject/filter/LoggerFilter.java b/src/main/java/org/mobidgim/mobidigimproject/filter/LoggerFilter.java new file mode 100644 index 0000000..a3658b1 --- /dev/null +++ b/src/main/java/org/mobidgim/mobidigimproject/filter/LoggerFilter.java @@ -0,0 +1,63 @@ +package org.mobidgim.mobidigimproject.filter; + +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.util.ContentCachingRequestWrapper; +import org.springframework.web.util.ContentCachingResponseWrapper; + +import java.io.IOException; + +@Slf4j +public class LoggerFilter implements Filter { + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + + + var req = new ContentCachingRequestWrapper((HttpServletRequest) request); + var res = new ContentCachingResponseWrapper((HttpServletResponse) response); + log.info("INIT URI: {}", req.getRequestURI()); + chain.doFilter(req,res); + + var headersNames = req.getHeaderNames(); + var headersValues = new StringBuilder(); + + headersNames.asIterator().forEachRemaining(headerKey->{ + var headerValue = req.getHeader(headerKey); + + headersValues.append("[") + .append(headerKey) + .append(":") + .append(headerValue) + .append("]"); + }); + + var requestBody = new String(req.getContentAsByteArray()); + + var uri = req.getRequestURI(); + var method = req.getMethod(); + log.info(">>>> uri: {}, method: {}, header: {}, body: {}",uri,method,headersValues,requestBody); + + var responseHeadersValues = new StringBuilder(); + + res.getHeaderNames().forEach(headerKey ->{ + var headerValue = req.getHeader(headerKey); + + responseHeadersValues.append("[") + .append(headerKey) + .append(":") + .append(headerValue) + .append("]"); + }); + var responseBody = new String(res.getContentAsByteArray()); + log.info("<<<< uri: {}, method: {}, header: {}, body: {}",uri,method,responseHeadersValues,responseBody); + + res.copyBodyToResponse(); + + + } + + +} diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/DeviceDTO.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/DeviceDTO.java index 5aed725..a74fa08 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/DeviceDTO.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/DeviceDTO.java @@ -1,6 +1,7 @@ package org.mobidgim.mobidigimproject.model.device; import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonUnwrapped; import lombok.Getter; import lombok.Setter; @@ -32,5 +33,6 @@ public class DeviceDTO { @JsonUnwrapped private Imu imuConfig; - private List wifiSSID; + @JsonProperty("WIFI_SSID") + private List wifiSsid; } \ No newline at end of file diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/WifiSSIDS.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/WifiSSIDS.java index 66972c3..71ba1d9 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/WifiSSIDS.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/WifiSSIDS.java @@ -7,7 +7,8 @@ import org.mobidgim.mobidigimproject.model.device.enums.WiFiSecurity; @Data public class WifiSSIDS { - private String wifiSSID; + + private String wifiSsid; private String wifiPassword; private WiFiSecurity wifiSecurity; } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/enums/ImuRemap.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/enums/ImuRemap.java index 4b4aeed..b85bb51 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/enums/ImuRemap.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/enums/ImuRemap.java @@ -7,7 +7,8 @@ import lombok.AllArgsConstructor; @AllArgsConstructor public enum ImuRemap { X("x"), - Y("y"); + Y("y"), + Z("z"); private final String remap; @JsonValue diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/CanBus.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/CanBus.java index 4a244cd..857a9da 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/CanBus.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/CanBus.java @@ -9,5 +9,5 @@ import org.mobidgim.mobidigimproject.model.device.enums.CanBusType; @Setter public class CanBus { private CanBusType canBusType; - private int baudrate; + private int canBudrate; } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Imu.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Imu.java index 0d8ec10..ce42060 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Imu.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Imu.java @@ -1,5 +1,6 @@ package org.mobidgim.mobidigimproject.model.device.subDTO; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; import org.mobidgim.mobidigimproject.model.device.enums.ImuRemap; @@ -8,10 +9,21 @@ import org.mobidgim.mobidigimproject.model.device.enums.ImuRemapSign; @Getter @Setter public class Imu { - private ImuRemap imuRempaX; - private ImuRemap imuRempaY; - private ImuRemap imuRempaZ; + @JsonProperty("imu_remap_x") + private ImuRemap imuRemapX; + + @JsonProperty("imu_remap_y") + private ImuRemap imuRemapY; + + @JsonProperty("imu_remap_z") + private ImuRemap imuRemapZ; + + @JsonProperty("imu_remap_x_sign") private ImuRemapSign imuRemapXSign; + + @JsonProperty("imu_remap_y_sign") private ImuRemapSign imuRemapYSign; + + @JsonProperty("imu_remap_z_sign") private ImuRemapSign imuRemapZSign; } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Rs485.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Rs485.java index c0a2db0..aa0e0db 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Rs485.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Rs485.java @@ -8,8 +8,8 @@ import org.mobidgim.mobidigimproject.model.device.enums.Rs485Mode; @Setter public class Rs485 { private Rs485Mode rs485Mode; - private int rs485baudrate; - private int rs485dataBits; - private String rs485parity; + private int rs485Baudrate; + private int rs485DataBits; + private String rs485Parity; private int rs485StopBits; } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Wifi.java b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Wifi.java index def3447..93f9dc9 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Wifi.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/device/subDTO/Wifi.java @@ -9,8 +9,8 @@ import org.mobidgim.mobidigimproject.model.device.enums.WifiStatic; public class Wifi { private WifiStatic wifiStatic; private String wifiIp; - private String netmask; - private String gateway; - private String dns1; - private String dns2; + private String wifiNetmask; + private String wifiGateway; + private String wifiDns1; + private String wifiDns2; } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java b/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java deleted file mode 100644 index 805a325..0000000 --- a/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.mobidgim.mobidigimproject.model.register; - -public class RegisterDTO { -} diff --git a/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java b/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java index eba15f7..962b7c0 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java +++ b/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java @@ -3,8 +3,7 @@ package org.mobidgim.mobidigimproject.service; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import org.mobidgim.mobidigimproject.model.device.DeviceDTO; -import org.mobidgim.mobidigimproject.model.register.RegisterDTO; -import org.springframework.boot.context.config.ConfigData; + import org.springframework.stereotype.Service; import java.io.IOException; @@ -14,23 +13,21 @@ import java.nio.file.Paths; @Service public class SettingService { - public DeviceDTO saveFileWithDevice(DeviceDTO request) throws IOException { + public void saveFileWithDevice(DeviceDTO request) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(request); String filename = "./temp/deviceConfig.json"; Files.writeString(Paths.get(filename), json); - - return request; } - public RegisterDTO saveFileWithRegister(RegisterDTO request) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); - String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(request); - String filename = "./temp/registerConfig.json"; - - return request; - } +// public RegisterDTO saveFileWithRegister(RegisterDTO request) throws IOException { +// ObjectMapper mapper = new ObjectMapper(); +// mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); +// String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(request); +// String filename = "./temp/registerConfig.json"; +// +// return request; +// } } diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index e69de29..4bd7916 100644 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -0,0 +1,410 @@ + + + + + + Device Configuration UI + + + + + + + + +
+
SSID
+
+ + +
+
+

SSID List

+ + + +
+ +
+
+ + + + + + + + + + + +
+ + + +
+
+
+ + + + + \ No newline at end of file