Skip to content

Commit

Permalink
Merge pull request #190 from Codiary-UMC-6th/feature/#178-post-entityโ€ฆ
Browse files Browse the repository at this point in the history
โ€ฆ-refactoring

Feat: ํŒ€ ์„ค์ •์„ ์œ„ํ•œ ํŒ€ ์ „์ฒด ๋ฆฌ์ŠคํŠธ ์กฐํšŒ Api ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • Loading branch information
ParkJh38 authored Aug 20, 2024
2 parents 3ebe500 + e53137c commit 6141d5f
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 7 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
@@ -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 @@ -89,4 +89,22 @@ public static class TeamImageDTO {
String url;
}

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

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class TeamPreviewListDTO {
List<TeamResponseDTO.TeamPreviewDTO> teams;
}


}

0 comments on commit 6141d5f

Please sign in to comment.