diff --git a/src/main/java/nl/veenm/jobfindr/domain/Event.java b/src/main/java/nl/veenm/jobfindr/domain/Event.java index 4b53354..b7578f3 100644 --- a/src/main/java/nl/veenm/jobfindr/domain/Event.java +++ b/src/main/java/nl/veenm/jobfindr/domain/Event.java @@ -1,6 +1,15 @@ package nl.veenm.jobfindr.domain; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity public class Event { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private String id; private String timestamp; private String className; private String methodName; @@ -25,6 +34,10 @@ public class Event { this.error = error; } + public Event() { + + } + public String getTimestamp() { return timestamp; } diff --git a/src/main/java/nl/veenm/jobfindr/repository/EventRepository.java b/src/main/java/nl/veenm/jobfindr/repository/EventRepository.java new file mode 100644 index 0000000..5411e64 --- /dev/null +++ b/src/main/java/nl/veenm/jobfindr/repository/EventRepository.java @@ -0,0 +1,12 @@ +package nl.veenm.jobfindr.repository; + +import io.quarkus.hibernate.orm.panache.PanacheRepository; +import jakarta.enterprise.context.ApplicationScoped; +import nl.veenm.jobfindr.domain.Event; +import nl.veenm.jobfindr.domain.VacatureDetail; + +@ApplicationScoped +public class EventRepository implements PanacheRepository { + +} + diff --git a/src/main/java/nl/veenm/jobfindr/repository/VacatureDetailRepository.java b/src/main/java/nl/veenm/jobfindr/repository/VacatureDetailRepository.java index 1886c32..f1eb101 100644 --- a/src/main/java/nl/veenm/jobfindr/repository/VacatureDetailRepository.java +++ b/src/main/java/nl/veenm/jobfindr/repository/VacatureDetailRepository.java @@ -4,10 +4,6 @@ import io.quarkus.hibernate.orm.panache.PanacheRepository; import jakarta.enterprise.context.ApplicationScoped; import nl.veenm.jobfindr.domain.VacatureDetail; -import java.time.LocalDate; -import java.util.List; - - @ApplicationScoped public class VacatureDetailRepository implements PanacheRepository { diff --git a/src/main/java/nl/veenm/jobfindr/util/EventService.java b/src/main/java/nl/veenm/jobfindr/util/EventService.java index 7140126..6eea52d 100644 --- a/src/main/java/nl/veenm/jobfindr/util/EventService.java +++ b/src/main/java/nl/veenm/jobfindr/util/EventService.java @@ -3,6 +3,7 @@ package nl.veenm.jobfindr.util; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import nl.veenm.jobfindr.domain.Event; +import nl.veenm.jobfindr.repository.EventRepository; import java.time.Instant; @@ -10,7 +11,8 @@ import java.time.Instant; public class EventService { @Inject - EventWebSocket eventWebSocket; + EventRepository eventRepository; + public void logInfo(String className, String methodName, String message) { // Maak een nieuw event @@ -23,8 +25,7 @@ public class EventService { // Bericht ); - // Verstuur het event via WebSocket - eventWebSocket.sendEvent(event); + saveEvent(event); } public void logSucces(String className, String methodName, String message) { @@ -38,9 +39,9 @@ public class EventService { // Bericht ); - // Verstuur het event via WebSocket - eventWebSocket.sendEvent(event); + saveEvent(event); } + public void logError(String className, String methodName, String message, Exception e) { // Maak een nieuw event Event event = new Event( @@ -53,7 +54,10 @@ public class EventService { // Bericht ); - // Verstuur het event via WebSocket - eventWebSocket.sendEvent(event); + saveEvent(event); + } + + private void saveEvent(Event event) { + eventRepository.persist(event); } } diff --git a/src/main/java/nl/veenm/jobfindr/util/EventWebSocket.java b/src/main/java/nl/veenm/jobfindr/util/EventWebSocket.java deleted file mode 100644 index fa1062a..0000000 --- a/src/main/java/nl/veenm/jobfindr/util/EventWebSocket.java +++ /dev/null @@ -1,48 +0,0 @@ -package nl.veenm.jobfindr.util; - -import jakarta.websocket.OnOpen; -import jakarta.websocket.Session; -import jakarta.websocket.server.ServerEndpoint; -import nl.veenm.jobfindr.domain.Event; -import org.jboss.logging.Logger; - -import jakarta.enterprise.context.ApplicationScoped; -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -@ServerEndpoint("/events") -@ApplicationScoped -public class EventWebSocket { - - private static final Logger logger = Logger.getLogger(EventWebSocket.class); - private final Set sessions = ConcurrentHashMap.newKeySet(); - private final ObjectMapper objectMapper = new ObjectMapper(); // Om objecten naar JSON te serialiseren - - @OnOpen - public void onOpen(Session session) { - logger.info("event websocket opened: " + session.getId()); - sessions.add(session); - } - - public void sendEvent(Event event) { - String jsonEvent; - try { - jsonEvent = objectMapper.writeValueAsString(event); // Event naar JSON converteren - } catch (IOException e) { - logger.error(e); - return; - } - - for (Session session : sessions) { - if (session.isOpen()) { - try { - session.getBasicRemote().sendText(jsonEvent); - } catch (IOException e) { - logger.error(e); - } - } - } - } -}