diff --git a/.woodpecker/maven.yaml b/.woodpecker/maven.yaml
index 6458761..82461b2 100644
--- a/.woodpecker/maven.yaml
+++ b/.woodpecker/maven.yaml
@@ -1,5 +1,5 @@
variables:
- &maven_image maven:3.9.6-eclipse-temurin-21-alpine
+ &maven_image maven:3.9.6-eclipse-temurin-17-alpine
steps:
- name: build
diff --git a/pom.xml b/pom.xml
index 9ae7829..3756469 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
${source.encoding}
- 21
+ 17
${java.version}
${java.version}
@@ -51,10 +51,6 @@
org.springframework.boot
spring-boot-starter-data-jpa
-
- org.springframework.boot
- spring-boot-starter-actuator
-
@@ -73,12 +69,6 @@
org.springframework.boot
spring-boot-starter-test
- test
-
-
- org.springframework.boot
- spring-boot-starter-webflux
- test
org.junit.jupiter
@@ -119,32 +109,6 @@
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- default-test
-
-
- **/*Tests.java
-
-
-
-
- integration-tests
- test
-
- test
-
-
-
- **/*Test.java
-
-
-
-
-
diff --git a/src/main/java/eu/ztsh/wymiana/config/NbpProperties.java b/src/main/java/eu/ztsh/wymiana/config/NbpProperties.java
deleted file mode 100644
index 0ed6c42..0000000
--- a/src/main/java/eu/ztsh/wymiana/config/NbpProperties.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package eu.ztsh.wymiana.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-@ConfigurationProperties("nbp")
-public record NbpProperties(String baseurl) {
-
-}
diff --git a/src/main/java/eu/ztsh/wymiana/config/RestClientConfiguration.java b/src/main/java/eu/ztsh/wymiana/config/RestClientConfiguration.java
index f264dbe..74ee47b 100644
--- a/src/main/java/eu/ztsh/wymiana/config/RestClientConfiguration.java
+++ b/src/main/java/eu/ztsh/wymiana/config/RestClientConfiguration.java
@@ -8,9 +8,9 @@ import org.springframework.web.client.RestClient;
public class RestClientConfiguration {
@Bean
- public RestClient restClient(NbpProperties nbpProperties) {
+ public RestClient restClient() {
return RestClient.builder()
- .baseUrl(nbpProperties.baseurl())
+ .baseUrl("http://api.nbp.pl")
.defaultHeader("Accept", "application/json")
.build();
}
diff --git a/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java b/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java
deleted file mode 100644
index 3cf38c2..0000000
--- a/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package eu.ztsh.wymiana.exception;
-
-import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest;
-
-public class UserNotFoundException extends RuntimeException {
-
- public UserNotFoundException(CurrencyExchangeRequest entity) {
- this(entity.pesel());
- }
-
- public UserNotFoundException(String pesel) {
- super("User with PESEL %s not found".formatted(pesel));
- }
-
-}
diff --git a/src/main/java/eu/ztsh/wymiana/service/CurrencyService.java b/src/main/java/eu/ztsh/wymiana/service/CurrencyService.java
index 401626a..b00f761 100644
--- a/src/main/java/eu/ztsh/wymiana/service/CurrencyService.java
+++ b/src/main/java/eu/ztsh/wymiana/service/CurrencyService.java
@@ -2,7 +2,6 @@ package eu.ztsh.wymiana.service;
import eu.ztsh.wymiana.exception.ExchangeFailedException;
import eu.ztsh.wymiana.exception.InsufficientFundsException;
-import eu.ztsh.wymiana.exception.UserNotFoundException;
import eu.ztsh.wymiana.model.Currency;
import eu.ztsh.wymiana.model.User;
import eu.ztsh.wymiana.validation.InstanceValidator;
@@ -50,7 +49,7 @@ public class CurrencyService {
user.currencies().putAll(exchanged);
return userService.update(user);
})
- .orElseThrow(() -> new UserNotFoundException(request));
+ .orElseThrow(ExchangeFailedException::new);
}
private Currency create(String symbol) {
diff --git a/src/main/java/eu/ztsh/wymiana/service/UserService.java b/src/main/java/eu/ztsh/wymiana/service/UserService.java
index 857bc0f..f9e7cde 100644
--- a/src/main/java/eu/ztsh/wymiana/service/UserService.java
+++ b/src/main/java/eu/ztsh/wymiana/service/UserService.java
@@ -7,13 +7,10 @@ import eu.ztsh.wymiana.util.UserMapper;
import eu.ztsh.wymiana.validation.InstanceValidator;
import eu.ztsh.wymiana.web.model.UserCreateRequest;
import lombok.RequiredArgsConstructor;
-import org.hibernate.validator.constraints.pl.PESEL;
import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
import java.util.Optional;
-@Validated
@RequiredArgsConstructor
@Service
public class UserService {
@@ -29,7 +26,7 @@ public class UserService {
return UserMapper.entityToPojo(userRepository.save(UserMapper.requestToEntity(request)));
}
- public Optional get(@PESEL String pesel) {
+ public Optional get(String pesel) {
return userRepository.findById(pesel).map(UserMapper::entityToPojo);
}
diff --git a/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java b/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java
deleted file mode 100644
index fb0ee13..0000000
--- a/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package eu.ztsh.wymiana.web.controller;
-
-import eu.ztsh.wymiana.exception.InsufficientFundsException;
-import eu.ztsh.wymiana.exception.UserNotFoundException;
-import eu.ztsh.wymiana.service.CurrencyService;
-import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest;
-import jakarta.validation.Valid;
-import lombok.RequiredArgsConstructor;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RequiredArgsConstructor
-@Validated
-@RestController
-@RequestMapping(path = "/api/exchange", produces = "application/json")
-public class ExchangeController {
-
- private final CurrencyService currencyService;
-
- @PostMapping
- public ResponseEntity