Skip to content

Commit

Permalink
Feat: 팀 ID 추가 반환
Browse files Browse the repository at this point in the history
  • Loading branch information
yumzen committed Aug 20, 2024
2 parents 105fcbb + 6141d5f commit a0665d0
Show file tree
Hide file tree
Showing 10 changed files with 74 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
.requestMatchers("/posts","/posts/{postId}", "/posts/visibility/{postId}", "/posts/coauthors/{postId}", "/posts/categories/{postId}").permitAll()
.requestMatchers("/posts/title/paging", "/posts/team/{teamId}/{postId}", "/posts/team/{teamId}/member/{memberId}/paging", "/posts/project/{projectId}/team/{teamId}/paging", "/posts/project/{projectId}/member/{memberId}/paging", "/posts/member/{memberId}/paging", "/posts/categories/paging", "/posts/{postId}/adjacent").permitAll()
.requestMatchers("/posts/poplular/list", "/posts/latest/list", "/posts/comments/list/{postId}", "/posts/search/title/body/member/project/categories").permitAll()
.requestMatchers("/categories/list", "/projects/list").permitAll()
.requestMatchers("/categories/list", "/projects/list", "/teams/list").permitAll()
// Comment 관련 접근
.requestMatchers("/comments/count/{postId}").permitAll()
// Bookmark 관련 접근
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ public static MemberResponseDTO.UserProfileDTO toProfileResponseDto(Member membe
.teamList(user.getTeamMemberList().stream()
.map(teamMember -> {
Team team = teamMember.getTeam();
return TeamResponseDTO.TeamInfoDTO.builder()
return TeamResponseDTO.TeamPreviewDTO.builder()
.teamId(team.getTeamId())
.teamName(team.getName())
.build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
package com.codiary.backend.global.converter;

import com.codiary.backend.global.domain.entity.Member;
import com.codiary.backend.global.domain.entity.Project;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.domain.entity.TeamFollow;
import com.codiary.backend.global.web.dto.Project.ProjectResponseDTO;
import com.codiary.backend.global.web.dto.Team.TeamResponseDTO;
import com.codiary.backend.global.web.dto.Team.TeamSumResponseDTO;
import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import static com.codiary.backend.global.converter.ProjectConverter.toProjectPreviewDTO;

public class TeamConverter {
//팀생성
Expand Down Expand Up @@ -88,4 +93,23 @@ public static List<TeamSumResponseDTO> toTeamFollowerResponseDto(List<Member> me
(member.getImage() != null) ? member.getImage().getImageUrl() : ""))
.collect(Collectors.toList());
}



public static TeamResponseDTO.TeamPreviewDTO toTeamPreviewDTO(Team team) {
return TeamResponseDTO.TeamPreviewDTO.builder()
.teamId(team.getTeamId())
.teamName(team.getName())
.build();
}

public static TeamResponseDTO.TeamPreviewListDTO toTeamPreviewListDTO(List<Team> teamList) {
List<TeamResponseDTO.TeamPreviewDTO> teamPreviewDTOList = IntStream.range(0, teamList.size())
.mapToObj(i->toTeamPreviewDTO(teamList.get(i)))
.collect(Collectors.toList());
return TeamResponseDTO.TeamPreviewListDTO.builder()
.teams(teamPreviewDTOList)
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ public interface PostRepository extends JpaRepository<Post, Long> {
// "JOIN FETCH p.categoriesList c " +
// "WHERE LOWER(c.name) LIKE LOWER(CONCAT('%', :categoryName, '%'))")
// List<Post> findPostIdsByCategoryName(@Param("categoryName") String categoryName);
// @Query("SELECT p.postId FROM Post p JOIN FETCH p.categoriesList c WHERE LOWER(c.name) LIKE LOWER(CONCAT('%', :categoryName, '%'))")
// List<Long> findPostIdsByCategoryName(@Param("categoryName") String categoryName);


Page<Post> findByPostIdIn(List<Long> postIds, Pageable pageable);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package com.codiary.backend.global.repository;

import com.codiary.backend.global.domain.entity.Project;
import com.codiary.backend.global.domain.entity.Team;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

public interface TeamRepository extends JpaRepository<Team, Long> {
@Query("SELECT t FROM Team t LEFT JOIN FETCH t.followers WHERE t.teamId = :teamId")
Optional<Team> findByIdWithFollowers(@Param("teamId") Long teamId);

List<Team> findAllByOrderByTeamIdDesc();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.codiary.backend.global.apiPayload.ApiResponse;
import com.codiary.backend.global.domain.entity.Member;
import com.codiary.backend.global.domain.entity.Project;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.web.dto.Team.TeamResponseDTO;
import org.springframework.stereotype.Service;
import com.codiary.backend.global.web.dto.Team.TeamResponseDTO;
Expand All @@ -20,4 +22,6 @@ public interface TeamQueryService {
Boolean isFollowingTeam(Long teamId, Member fromMember);

List<Member> getTeamFollowers(Long teamId);

List<Team> getTeams();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@
import com.codiary.backend.global.apiPayload.code.status.ErrorStatus;
import com.codiary.backend.global.apiPayload.code.status.SuccessStatus;
import com.codiary.backend.global.apiPayload.exception.GeneralException;
import com.codiary.backend.global.domain.entity.*;
import com.codiary.backend.global.repository.TeamBannerImageRepository;
import com.codiary.backend.global.repository.TeamFollowRepository;
import com.codiary.backend.global.repository.TeamProfileImageRepository;
import com.codiary.backend.global.domain.entity.Member;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.domain.entity.TeamFollow;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.domain.enums.MemberRole;
import com.codiary.backend.global.jwt.SecurityUtil;
import com.codiary.backend.global.repository.*;
import com.codiary.backend.global.converter.TeamConverter;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.web.dto.Team.TeamResponseDTO;
import lombok.RequiredArgsConstructor;
import org.hibernate.Hibernate;
Expand Down Expand Up @@ -101,4 +104,10 @@ public List<Member> getTeamFollowers(Long teamId) {
.map(TeamFollow::getMember)
.collect(Collectors.toList());
}

// 팀 전체 리스트 조회
@Override
public List<Team> getTeams() {
return teamRepository.findAllByOrderByTeamIdDesc();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
import com.codiary.backend.global.apiPayload.ApiResponse;
import com.codiary.backend.global.apiPayload.code.status.SuccessStatus;
import com.codiary.backend.global.converter.PostConverter;
import com.codiary.backend.global.converter.ProjectConverter;
import com.codiary.backend.global.converter.TeamConverter;
import com.codiary.backend.global.domain.entity.Member;
import com.codiary.backend.global.domain.entity.Post;
import com.codiary.backend.global.domain.entity.Team;
import com.codiary.backend.global.domain.entity.TeamFollow;
import com.codiary.backend.global.domain.entity.*;
import com.codiary.backend.global.service.PostService.PostCommandService;
import com.codiary.backend.global.service.TeamService.TeamCommandService;
import com.codiary.backend.global.service.TeamService.TeamQueryService;
import com.codiary.backend.global.web.dto.Post.PostRequestDTO;
import com.codiary.backend.global.web.dto.Post.PostResponseDTO;
import com.codiary.backend.global.web.dto.Project.ProjectResponseDTO;
import com.codiary.backend.global.web.dto.Team.TeamRequestDTO;
import com.codiary.backend.global.web.dto.Team.TeamResponseDTO;
import com.codiary.backend.global.web.dto.Team.TeamSumResponseDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -156,4 +156,13 @@ public ApiResponse<String> deleteProfileImage(
return teamCommandService.deleteTeamProfileImage(teamId);
}


// 팀 설정을 위한 팀 리스트 조회
@GetMapping("/list")
@Operation(summary = "팀 리스트 조회 API", description = "팀 설정을 위한 팀 전체 리스트를 조회합니다.", security = @SecurityRequirement(name = "accessToken"))
public ApiResponse<TeamResponseDTO.TeamPreviewListDTO> findTeams(){
List<Team> teams = teamQueryService.getTeams();
return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, TeamConverter.toTeamPreviewListDTO(teams));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public static class UserProfileDTO {
String discordUrl;
String introduction;
List<TechStack> techStacksList;
List<TeamResponseDTO.TeamInfoDTO> teamList;
List<TeamResponseDTO.TeamPreviewDTO> teamList;
Boolean myPage;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,22 @@ public static class TeamImageDTO {
String url;
}


@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class TeamPreviewDTO {
Long teamId;
String teamName;
}

@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class TeamInfoDTO {
private Long teamId;
private String teamName;
public static class TeamPreviewListDTO {
List<TeamResponseDTO.TeamPreviewDTO> teams;
}


}

0 comments on commit a0665d0

Please sign in to comment.