diff --git a/src/main/java/com/teamsixnus/scaleup/repository/ActivityInviteRepository.java b/src/main/java/com/teamsixnus/scaleup/repository/ActivityInviteRepository.java index add5b17..1367d3b 100644 --- a/src/main/java/com/teamsixnus/scaleup/repository/ActivityInviteRepository.java +++ b/src/main/java/com/teamsixnus/scaleup/repository/ActivityInviteRepository.java @@ -1,6 +1,8 @@ package com.teamsixnus.scaleup.repository; import com.teamsixnus.scaleup.domain.ActivityInvite; +import com.teamsixnus.scaleup.service.dto.ActivityInviteDTO; +import java.util.List; import org.springframework.data.jpa.repository.*; import org.springframework.stereotype.Repository; @@ -9,4 +11,7 @@ */ @SuppressWarnings("unused") @Repository -public interface ActivityInviteRepository extends JpaRepository {} +public interface ActivityInviteRepository extends JpaRepository { + // Fetch all invites for a specific activity by its ID + List findByActivity_Id(Long activityId); +} diff --git a/src/main/java/com/teamsixnus/scaleup/service/ActivityInviteService.java b/src/main/java/com/teamsixnus/scaleup/service/ActivityInviteService.java index 717cc40..d2bc095 100644 --- a/src/main/java/com/teamsixnus/scaleup/service/ActivityInviteService.java +++ b/src/main/java/com/teamsixnus/scaleup/service/ActivityInviteService.java @@ -4,6 +4,7 @@ import com.teamsixnus.scaleup.repository.ActivityInviteRepository; import com.teamsixnus.scaleup.service.dto.ActivityInviteDTO; import com.teamsixnus.scaleup.service.mapper.ActivityInviteMapper; +import java.util.List; import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -110,4 +111,9 @@ public void delete(Long id) { log.debug("Request to delete ActivityInvite : {}", id); activityInviteRepository.deleteById(id); } + + // Fetch all invites for a specific activity + public List getInvitesByActivityId(Long activityId) { + return activityInviteRepository.findByActivity_Id(activityId); + } } diff --git a/src/main/java/com/teamsixnus/scaleup/web/rest/ActivityInviteResource.java b/src/main/java/com/teamsixnus/scaleup/web/rest/ActivityInviteResource.java index e2f1de3..554229b 100644 --- a/src/main/java/com/teamsixnus/scaleup/web/rest/ActivityInviteResource.java +++ b/src/main/java/com/teamsixnus/scaleup/web/rest/ActivityInviteResource.java @@ -177,4 +177,9 @@ public ResponseEntity deleteActivityInvite(@PathVariable("id") Long id) { .headers(HeaderUtil.createEntityDeletionAlert(applicationName, false, ENTITY_NAME, id.toString())) .build(); } + + @GetMapping("/{activityId}") + public List getActivityInvitesByActivityId(@PathVariable Long activityId) { + return activityInviteService.getInvitesByActivityId(activityId); + } } diff --git a/src/main/resources/.h2.server.properties b/src/main/resources/.h2.server.properties index 7cb0e88..dfbeb57 100644 --- a/src/main/resources/.h2.server.properties +++ b/src/main/resources/.h2.server.properties @@ -1,6 +1,6 @@ #H2 Server Properties -#Sat Sep 07 13:25:07 SGT 2024 +#Mon Sep 09 22:45:36 SGT 2024 0=JHipster H2 (Disk)|org.h2.Driver|jdbc\:h2\:file\:./target/h2db/db/scaleup|scaleup +webSSL=false webAllowOthers=true webPort=8092 -webSSL=false diff --git a/src/main/webapp/app/entities/activity/activity-detail.tsx b/src/main/webapp/app/entities/activity/activity-detail.tsx index 4957ee4..a2f84fc 100644 --- a/src/main/webapp/app/entities/activity/activity-detail.tsx +++ b/src/main/webapp/app/entities/activity/activity-detail.tsx @@ -13,6 +13,8 @@ import { ASC, DESC, ITEMS_PER_PAGE } from 'app/shared/util/pagination.constants' import { faSort, faSortDown, faSortUp } from '@fortawesome/free-solid-svg-icons'; import InfiniteScroll from 'react-infinite-scroll-component'; import { overridePaginationStateWithQueryParams } from 'app/shared/util/entity-utils'; +import { getSkillById } from 'app/entities/skill/skill.reducer'; +import { getEntity } from 'app/entities/user-profile/user-profile.reducer'; export const ActivityDetail = () => { const dispatch = useAppDispatch(); @@ -32,6 +34,20 @@ export const ActivityDetail = () => { }, []); const activityEntity = useAppSelector(state => state.activity.entity); + + useEffect(() => { + if (activityEntity?.creatorProfile?.id) { + dispatch(getEntity(activityEntity.creatorProfile.id)); // Fetch profile by ID + } + if (activityEntity?.skill?.id) { + dispatch(getSkillById(activityEntity.skill.id)); // Fetch skill by ID + } + }, [dispatch, activityEntity]); + + // Get profile and skill data from the Redux state + const creatorProfile = useAppSelector(state => (activityEntity.creatorProfile?.id ? state.userProfile.entity : null)); + const skill = useAppSelector(state => (activityEntity.skill?.id ? state.skill.entity : null)); + const [paginationState, setPaginationState] = useState( overridePaginationStateWithQueryParams(getPaginationState(pageLocation, ITEMS_PER_PAGE, 'id'), pageLocation.search), ); @@ -150,9 +166,9 @@ export const ActivityDetail = () => {
{activityEntity.details}
Creator Profile
-
{activityEntity.creatorProfile ? activityEntity.creatorProfile.id : ''}
+
{creatorProfile ? creatorProfile.nickname : ''}
Skill
-
{activityEntity.skill ? activityEntity.skill.id : ''}
+
{skill ? skill.skillName : ''}
{activityInvite.willParticipate ? 'true' : 'false'} - {activityInvite.createdBy} {activityInvite.activity ? ( {activityInvite.activity.id}