From f9c4ca5033f78a5e8256ee43492dcea22d2ff217 Mon Sep 17 00:00:00 2001 From: Lemonochrme Date: Mon, 16 Dec 2024 17:58:51 +0100 Subject: [PATCH] Fixed cors issue with front end hehe --- .../helpapp/rest/UserServiceApplication.java | 15 +++ helpapp-frontend/index.html | 97 +++++++++++++++++++ helpapp-frontend/script.js | 69 +++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 helpapp-frontend/index.html create mode 100644 helpapp-frontend/script.js diff --git a/helpapp-backend/user-service/src/main/java/insa/application/helpapp/rest/UserServiceApplication.java b/helpapp-backend/user-service/src/main/java/insa/application/helpapp/rest/UserServiceApplication.java index 0936abb..e28966f 100644 --- a/helpapp-backend/user-service/src/main/java/insa/application/helpapp/rest/UserServiceApplication.java +++ b/helpapp-backend/user-service/src/main/java/insa/application/helpapp/rest/UserServiceApplication.java @@ -3,6 +3,9 @@ package insa.application.helpapp.rest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.*; +import org.springframework.context.annotation.Bean; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.*; import java.util.concurrent.atomic.AtomicLong; @@ -19,6 +22,18 @@ public class UserServiceApplication { SpringApplication.run(UserServiceApplication.class, args); } + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer() { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**").allowedOrigins("*") + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") + .allowedHeaders("*"); + } + }; + } + // Create a new user @PostMapping public User createUser(@RequestBody User user) { diff --git a/helpapp-frontend/index.html b/helpapp-frontend/index.html new file mode 100644 index 0000000..127956a --- /dev/null +++ b/helpapp-frontend/index.html @@ -0,0 +1,97 @@ + + + + + + HelpApp + + + +
+

HelpApp

+

Facilitons l'entraide entre les personnes

+
+
+
+

Créer un compte utilisateur

+
+ + + + + +
+
+
+ +
+

Créer une demande d'aide

+
+ + + +
+
+
+ +
+

Voir les demandes d'aide

+ +
    +
    +
    + + + + diff --git a/helpapp-frontend/script.js b/helpapp-frontend/script.js new file mode 100644 index 0000000..2da4fbf --- /dev/null +++ b/helpapp-frontend/script.js @@ -0,0 +1,69 @@ +const API_BASE = "http://localhost"; + +document.addEventListener("DOMContentLoaded", () => { + // User Registration + const registerForm = document.getElementById("register-form"); + const registerResponse = document.getElementById("register-response"); + + registerForm.addEventListener("submit", async (e) => { + e.preventDefault(); + const name = document.getElementById("name").value; + const email = document.getElementById("email").value; + const password = document.getElementById("password").value; + const role = document.getElementById("role").value; + + try { + const response = await fetch(`${API_BASE}:8083/users`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ name, email, password, role }), + }); + const result = await response.json(); + registerResponse.textContent = `Utilisateur créé : ID ${result.id}`; + } catch (error) { + registerResponse.textContent = "Erreur lors de la création de l'utilisateur."; + } + }); + + // Create Help Request + const requestForm = document.getElementById("request-form"); + const requestResponse = document.getElementById("request-response"); + + requestForm.addEventListener("submit", async (e) => { + e.preventDefault(); + const userId = document.getElementById("user-id").value; + const details = document.getElementById("details").value; + + try { + const response = await fetch(`${API_BASE}:8082/requests`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ userId, details }), + }); + const result = await response.json(); + requestResponse.textContent = `Demande créée : ID ${result.id}`; + } catch (error) { + requestResponse.textContent = "Erreur lors de la création de la demande."; + } + }); + + // Fetch Help Requests + const fetchRequestsButton = document.getElementById("fetch-requests"); + const requestList = document.getElementById("request-list"); + + fetchRequestsButton.addEventListener("click", async () => { + try { + const response = await fetch(`${API_BASE}:8082/requests`); + const requests = await response.json(); + + requestList.innerHTML = ""; // Clear existing list + requests.forEach((req) => { + const li = document.createElement("li"); + li.textContent = `ID: ${req.id}, Détails: ${req.details}, Statut: ${req.status}`; + requestList.appendChild(li); + }); + } catch (error) { + requestList.innerHTML = "
  • Erreur lors de la récupération des demandes.
  • "; + } + }); +});