Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/moidot/backend
Browse files Browse the repository at this point in the history
  • Loading branch information
yujung7768903 committed Feb 4, 2024
2 parents b3190bb + d6964af commit 0b31d50
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 20 deletions.
2 changes: 0 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
implementation 'com.fasterxml.jackson.core:jackson-databind'

// lombok
compileOnly 'org.projectlombok:lombok'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ public class GroupMyParticipateResponse {
private String groupDate;
private Integer groupParticipates;
private String confirmPlace;
private Boolean isAdmin;
private List<String> bestPlaceNames;
private List<String> participantNames;

public static GroupMyParticipateResponse response(
Groups group, String groupAdminName, List<String> bestPlaceNames, List<String> participantNames
Groups group, String groupAdminName, boolean isAdmin, List<String> bestPlaceNames, List<String> participantNames
) {
return GroupMyParticipateResponse.builder()
.groupId(group.getGroupId())
Expand All @@ -37,6 +38,7 @@ public static GroupMyParticipateResponse response(
.orElse("none"))
.groupParticipates(group.getParticipations().size())
.confirmPlace(group.getPlace())
.isAdmin(isAdmin)
.bestPlaceNames(bestPlaceNames)
.participantNames(participantNames)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,26 @@
import com.moim.backend.domain.space.request.service.GroupNameUpdateServiceRequest;
import com.moim.backend.domain.space.request.service.GroupParticipateServiceRequest;
import com.moim.backend.domain.space.request.service.GroupParticipateUpdateServiceRequest;
import com.moim.backend.domain.space.response.*;
import com.moim.backend.domain.space.response.MiddlePoint;
import com.moim.backend.domain.space.response.NaverMapListDto;
import com.moim.backend.domain.space.response.NicknameValidationResponse;
import com.moim.backend.domain.space.response.PlaceRouteResponse;
import com.moim.backend.domain.space.response.group.*;
import com.moim.backend.domain.subway.repository.SubwayRepository;
import com.moim.backend.global.dto.BestRegion;
import com.moim.backend.domain.user.entity.Users;
import com.moim.backend.domain.user.repository.UserRepository;
import com.moim.backend.global.aspect.TimeCheck;
import com.moim.backend.global.common.CacheName;
import com.moim.backend.global.common.Result;
import com.moim.backend.global.common.exception.CustomException;
import com.moim.backend.global.dto.BestRegion;
import com.moim.backend.global.util.DistanceCalculator;
import com.moim.backend.global.util.RedisDao;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.http.*;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
Expand All @@ -42,7 +45,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.StringTokenizer;
import java.util.function.Function;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -232,22 +234,25 @@ public List<GroupMyParticipateResponse> getMyParticipate(Users user) {
List<Groups> groups = groupRepository.findByGroupsFetch(user.getUserId());

return groups.stream()
.map(GroupService::toMyParticiPateResponse)
.map(group -> toMyParticiPateResponse(group, user))
.toList();
}

private static GroupMyParticipateResponse toMyParticiPateResponse(Groups group) {
private static GroupMyParticipateResponse toMyParticiPateResponse(Groups group, Users user) {
Participation admin = getGroupAdmin(group);
return GroupMyParticipateResponse.response(
group,
getGroupAdminName(group),
admin.getUserName(),
admin.getUserId().equals(user.getUserId()),
group.getBestPlaces().stream().map(BestPlace::getPlaceName).toList(),
group.getParticipations().stream().map(Participation::getUserName).toList());
}

private static String getGroupAdminName(Groups group) {
private static Participation getGroupAdmin(Groups group) {
return group.getParticipations().stream()
.filter(participation -> participation.getUserId().equals(group.getAdminId()))
.map(Participation::getUserName).findFirst().orElseThrow(
.findFirst()
.orElseThrow(
() -> new CustomException(NOT_FOUND_PARTICIPATE)
);
}
Expand Down Expand Up @@ -400,11 +405,12 @@ private static void validateParticipationMyInfo(Users user, Participation myPart


// method

private static String getRegionName(Participation participation) {
validateLocationName(participation.getLocationName());
StringTokenizer st = new StringTokenizer(participation.getLocationName());
return String.format("%s %s", st.nextToken(), st.nextToken());
String[] locationName = participation.getLocationName().split(" ");
if (locationName.length < 2) {
return participation.getLocationName();
}
return String.format("%s %s", locationName[0], locationName[1]);
}

private static Function<NaverMapListDto.placeList, GroupPlaceResponse> toPlaceEntity(Double x, Double y, String local) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.moim.backend.docs.space;

import com.epages.restdocs.apispec.ResourceSnippetParameters;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.moim.backend.RestDocsSupport;
import com.moim.backend.domain.space.controller.GroupController;
import com.moim.backend.domain.space.request.controller.GroupCreateRequest;
Expand All @@ -11,20 +10,17 @@
import com.moim.backend.domain.space.response.*;
import com.moim.backend.domain.space.response.group.*;
import com.moim.backend.domain.space.service.GroupService;
import com.moim.backend.domain.user.response.UserLoginResponse;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import java.util.List;

import static com.epages.restdocs.apispec.Schema.schema;
import static com.moim.backend.domain.space.entity.TransportationType.PERSONAL;
import static com.moim.backend.domain.space.entity.TransportationType.PUBLIC;
import static com.moim.backend.domain.user.config.Platform.NAVER;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
Expand Down Expand Up @@ -465,6 +461,7 @@ void getMyParticipate() throws Exception {
.groupDate("2023-07-15")
.groupParticipates(3)
.confirmPlace("none")
.isAdmin(true)
.bestPlaceNames(List.of("종로5가역", "종로3가역", "동대문역"))
.participantNames(List.of("양파쿵야", "주먹밥쿵야", "샐러리쿵야"))
.build();
Expand All @@ -476,6 +473,7 @@ void getMyParticipate() throws Exception {
.groupDate("2023-07-28")
.groupParticipates(3)
.confirmPlace("교대역")
.isAdmin(false)
.bestPlaceNames(List.of("강남역", "교대역", "역삼역"))
.participantNames(List.of("양파쿵야", "주먹밥쿵야", "샐러리쿵야"))
.build();
Expand Down Expand Up @@ -510,6 +508,8 @@ void getMyParticipate() throws Exception {
.description("그룹 참여자 수 / Integer"),
fieldWithPath("data[].confirmPlace").type(STRING)
.description("그룹 확정 장소 / 미확정 : 'none' "),
fieldWithPath("data[].isAdmin").type(BOOLEAN)
.description("해당 그룹 모임장 여부"),
fieldWithPath("data[].participantNames[]").type(ARRAY)
.description("그룹 참여자 이름 리스트"),
fieldWithPath("data[].bestPlaceNames[]").type(ARRAY)
Expand Down

0 comments on commit 0b31d50

Please sign in to comment.