From 6133f7ae0576b4c2241672afc3c941064c73876c Mon Sep 17 00:00:00 2001 From: Kaldigi252-ops Date: Tue, 21 Oct 2025 15:41:58 +0000 Subject: [PATCH 1/4] feat: added Event Guest Service class --- .../api/demo/services/EventGuestService.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java diff --git a/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java b/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java new file mode 100644 index 00000000..b1766f5e --- /dev/null +++ b/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java @@ -0,0 +1,87 @@ +package com.api.demo.services; + +import com.api.demo.models.EventGuest; +import com.api.demo.models.EventGuestKey; +import com.api.demo.repos.EventGuestRepo; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; +import org.springframework.stereotype.Service; + +@Service +public class EventGuestService { + + private final EventGuestRepo eventGuestRepo; + + public EventGuestService(EventGuestRepo eventGuestRepo) { + this.eventGuestRepo = eventGuestRepo; + } + + /** + * Retrieves all guests for a specific event. + * + * @param eventId the ID of the event + * @return list of EventGuest entities for the specified event + */ + public List getGuestsByEventId(Long eventId) { + return StreamSupport.stream(eventGuestRepo.findAllByEventGuestKeyEventId(eventId).spliterator(), false) + .collect(Collectors.toList()); + } + + /** + * Retrieves all events for a specific guest. + * + * @param guestId the ID of the guest + * @return list of EventGuest entities for the specified guest + */ + public List getEventsByGuestId(Long guestId) { + return StreamSupport.stream(eventGuestRepo.findAllByEventGuestKeyGuestId(guestId).spliterator(), false) + .collect(Collectors.toList()); + } + + /** + * Retrieves a specific EventGuest by composite key. + * + * @param eventId the event ID + * @param guestId the guest ID + * @return Optional containing the EventGuest if found + */ + public Optional getEventGuest(Long eventId, Long guestId) { + EventGuestKey key = new EventGuestKey(eventId, guestId); + return eventGuestRepo.findById(key); + } + + /** + * Saves or updates an EventGuest. + * + * @param eventGuest the EventGuest to save + * @return the saved EventGuest + */ + public EventGuest saveEventGuest(EventGuest eventGuest) { + return eventGuestRepo.save(eventGuest); + } + + /** + * Deletes an EventGuest by composite key. + * + * @param eventId the event ID + * @param guestId the guest ID + */ + public void deleteEventGuest(Long eventId, Long guestId) { + EventGuestKey key = new EventGuestKey(eventId, guestId); + eventGuestRepo.deleteById(key); + } + + /** + * Checks if an EventGuest exists. + * + * @param eventId the event ID + * @param guestId the guest ID + * @return true if the EventGuest exists, false otherwise + */ + public boolean existsEventGuest(Long eventId, Long guestId) { + EventGuestKey key = new EventGuestKey(eventId, guestId); + return eventGuestRepo.existsById(key); + } +} From 1762cf52a4849bd7c7043b98f722c5c6084c840b Mon Sep 17 00:00:00 2001 From: Kaldigi252-ops Date: Tue, 21 Oct 2025 15:52:36 +0000 Subject: [PATCH 2/4] chore: added .DS_Store to gitignore --- event-planner/api/demo/.gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/event-planner/api/demo/.gitignore b/event-planner/api/demo/.gitignore index c2065bc2..83d33af1 100644 --- a/event-planner/api/demo/.gitignore +++ b/event-planner/api/demo/.gitignore @@ -35,3 +35,12 @@ out/ ### VS Code ### .vscode/ + +### macOS ### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db From 1709e778a03d57fa514447d48e7b69f74d720cd0 Mon Sep 17 00:00:00 2001 From: Kaldigi252-ops Date: Tue, 21 Oct 2025 15:57:34 +0000 Subject: [PATCH 3/4] feat: added Event Guest Service class --- .../java/com/api/demo/services/EventGuestService.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java b/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java index b1766f5e..142f30a4 100644 --- a/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java +++ b/event-planner/api/demo/src/main/java/com/api/demo/services/EventGuestService.java @@ -57,8 +57,12 @@ public Optional getEventGuest(Long eventId, Long guestId) { * * @param eventGuest the EventGuest to save * @return the saved EventGuest + * @throws IllegalArgumentException if eventGuest is null */ public EventGuest saveEventGuest(EventGuest eventGuest) { + if (eventGuest == null) { + throw new IllegalArgumentException("EventGuest cannot be null"); + } return eventGuestRepo.save(eventGuest); } @@ -67,8 +71,12 @@ public EventGuest saveEventGuest(EventGuest eventGuest) { * * @param eventId the event ID * @param guestId the guest ID + * @throws IllegalArgumentException if eventId or guestId is null */ public void deleteEventGuest(Long eventId, Long guestId) { + if (eventId == null || guestId == null) { + throw new IllegalArgumentException("EventId and GuestId cannot be null"); + } EventGuestKey key = new EventGuestKey(eventId, guestId); eventGuestRepo.deleteById(key); } From d12aa71f6fb5c4453232c54e26d70c08267e3f88 Mon Sep 17 00:00:00 2001 From: Kaldigi252-ops Date: Tue, 21 Oct 2025 15:58:37 +0000 Subject: [PATCH 4/4] chore: added more .DS_Store files specific to event planner to gitignore --- event-planner/api/demo/.gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/event-planner/api/demo/.gitignore b/event-planner/api/demo/.gitignore index 83d33af1..c9a9ee79 100644 --- a/event-planner/api/demo/.gitignore +++ b/event-planner/api/demo/.gitignore @@ -44,3 +44,8 @@ out/ .Trashes ehthumbs.db Thumbs.db + +### Event Planner Specific ### +.DS_Store +event-planner/.DS_Store +event-planner/api/.DS_Store