aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhongheng Liu <z.liu@outlook.com.gr>2024-01-19 21:02:17 +0200
committerZhongheng Liu <z.liu@outlook.com.gr>2024-01-19 21:02:17 +0200
commit7992705e9ceda23164be74378659b26008b20882 (patch)
treeb9c27899bf65e955336159245721da3a21bed9c0
parent2e73088d2a1604bc0ec77926c2c312cb86a6800a (diff)
downloadepq-api-7992705e9ceda23164be74378659b26008b20882.tar.gz
epq-api-7992705e9ceda23164be74378659b26008b20882.tar.bz2
epq-api-7992705e9ceda23164be74378659b26008b20882.zip
Added server-side CORS support for API endpoints
-rw-r--r--src/main/java/me/imsonmia/epqapi/EpqapiApplication.java12
-rw-r--r--src/main/java/me/imsonmia/epqapi/config/WebMvcConfigurer.java1
-rw-r--r--src/main/java/me/imsonmia/epqapi/controller/UserController.java17
-rw-r--r--src/main/java/me/imsonmia/epqapi/repository/UserRepository.java4
4 files changed, 23 insertions, 11 deletions
diff --git a/src/main/java/me/imsonmia/epqapi/EpqapiApplication.java b/src/main/java/me/imsonmia/epqapi/EpqapiApplication.java
index 75c0655..d4ef329 100644
--- a/src/main/java/me/imsonmia/epqapi/EpqapiApplication.java
+++ b/src/main/java/me/imsonmia/epqapi/EpqapiApplication.java
@@ -4,6 +4,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@SpringBootApplication
public class EpqapiApplication extends Thread {
@@ -14,4 +17,13 @@ public class EpqapiApplication extends Thread {
SpringApplication.run(EpqapiApplication.class, args);
}
+ @Bean
+ public WebMvcConfigurer corsConfigurer() {
+ return new WebMvcConfigurer() {
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**").allowedOrigins("*");
+ }
+ };
+ }
}
diff --git a/src/main/java/me/imsonmia/epqapi/config/WebMvcConfigurer.java b/src/main/java/me/imsonmia/epqapi/config/WebMvcConfigurer.java
new file mode 100644
index 0000000..4f699cb
--- /dev/null
+++ b/src/main/java/me/imsonmia/epqapi/config/WebMvcConfigurer.java
@@ -0,0 +1 @@
+package me.imsonmia.epqapi.config;
diff --git a/src/main/java/me/imsonmia/epqapi/controller/UserController.java b/src/main/java/me/imsonmia/epqapi/controller/UserController.java
index 8a29082..842e353 100644
--- a/src/main/java/me/imsonmia/epqapi/controller/UserController.java
+++ b/src/main/java/me/imsonmia/epqapi/controller/UserController.java
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -38,8 +39,13 @@ public class UserController {
// malformed request
return ResponseEntity.badRequest().build();
} else {
+ boolean exists = userRepository.existsByUserName(name.get());
// Filter by name branch
- return ResponseEntity.ok().body(userRepository.findByUserName(name.get()));
+ if (!exists) {
+ return ResponseEntity.notFound().build();
+ } else {
+ return ResponseEntity.ok().body(userRepository.findByUserName(name.get()).get());
+ }
}
} else {
// get by id branch
@@ -85,13 +91,4 @@ public class UserController {
}
return messages;
}
- // @PatchMapping("/user/{id}")
- // boolean changeUserProperties(@PathVariable(value = "id") Long userId,
- // @RequestBody User newUser) {
- // if (!userRepository.existsById(userId)) {
- // return false;
- // }
- // userRepository.save(newUser);
- // return true;
- // }
}
diff --git a/src/main/java/me/imsonmia/epqapi/repository/UserRepository.java b/src/main/java/me/imsonmia/epqapi/repository/UserRepository.java
index 296500b..7bc2a85 100644
--- a/src/main/java/me/imsonmia/epqapi/repository/UserRepository.java
+++ b/src/main/java/me/imsonmia/epqapi/repository/UserRepository.java
@@ -1,11 +1,13 @@
package me.imsonmia.epqapi.repository;
+import java.util.Optional;
+
import org.springframework.data.repository.CrudRepository;
import me.imsonmia.epqapi.model.User;
public interface UserRepository extends CrudRepository<User, Long> {
- User findByUserName(String userName);
+ Optional<User> findByUserName(String userName);
boolean existsByUserName(String userName);
}