Skip to content

Commit

Permalink
Merge pull request #390 from 6QuizOnTheBlock/be/feat/#386-refactor
Browse files Browse the repository at this point in the history
Be/feat/#386 refactor
  • Loading branch information
Henry-Cha authored May 26, 2024
2 parents c73a0af + 709c0dd commit d0e3448
Show file tree
Hide file tree
Showing 22 changed files with 129 additions and 129 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,59 +33,61 @@ public class ChallengeController implements ChallengeControllerDocs {
private final ChallengeService challengeService;

@GetMapping
public ResponseEntity<ResultResponse<?>> getChallenges(
public ResponseEntity<ResultResponse<ChallengeSliceResponse>> getChallenges(
ChallengeSliceRequest challengeSliceRequest) {
ChallengeSliceResponse challengeSliceResponse = challengeService.getChallenges(
challengeSliceRequest);
return ResponseEntity.ok(ResultResponse.success(challengeSliceResponse));
}

@PostMapping
public ResponseEntity<ResultResponse<?>> createChallenge(
public ResponseEntity<ResultResponse<Long>> createChallenge(
@RequestBody ChallengeRequest challengeRequest) {
return ResponseEntity.ok(
ResultResponse.success(challengeService.createChallenge(challengeRequest)));
}

@PostMapping(value = "/reports", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<ResultResponse<?>> createReport(
public ResponseEntity<ResultResponse<Long>> createReport(
@RequestPart ReportRequest reportRequest, @RequestPart MultipartFile file) {
long reportId = challengeService.createReport(reportRequest, file);
return ResponseEntity.ok(ResultResponse.success(reportId));
}

@PatchMapping(value = "/reports/{id}")
public ResponseEntity<ResultResponse<?>> confirmReport(@PathVariable long id,
public ResponseEntity<ResultResponse<Boolean>> confirmReport(@PathVariable long id,
ReportType reportType) {
challengeService.confirmReport(id, reportType);
return ResponseEntity.ok(ResultResponse.success(null));
return ResponseEntity.ok(ResultResponse.success(true));
}

@GetMapping("/running")
public ResponseEntity<ResultResponse<?>> getRunningChallenge(
@RequestParam(required = true) long organizationId) {
public ResponseEntity<ResultResponse<RunningChallengeResponse>> getRunningChallenge(
@RequestParam long organizationId) {
RunningChallengeResponse runningChallengeResponse = challengeService.getRunningChallenge(
organizationId);
return ResponseEntity.ok(ResultResponse.success(runningChallengeResponse));
}

@GetMapping("/running/member")
public ResponseEntity<ResultResponse<?>> getRunningMemberChallenge(
@RequestParam(required = true) long organizationId) {
public ResponseEntity<ResultResponse<RunningMemberChallengeResponse>> getRunningMemberChallenge(
@RequestParam long organizationId) {
RunningMemberChallengeResponse runningMemberChallenge = challengeService.getRunningMemberChallenge(
organizationId);
return ResponseEntity.ok(ResultResponse.success(runningMemberChallenge));
}

@GetMapping("/{id}")
public ResponseEntity<ResultResponse<?>> getChallengeDetail(@PathVariable long id,
public ResponseEntity<ResultResponse<ChallengeResponse>> getChallengeDetail(
@PathVariable long id,
@RequestParam(required = false) Long groupId) {
ChallengeResponse challengeResponse = challengeService.getChallengeDetail(id, groupId);
return ResponseEntity.ok(ResultResponse.success(challengeResponse));
}

@GetMapping("/{id}/simple")
public ResponseEntity<ResultResponse<?>> getChallengeSimple(@PathVariable long id) {
public ResponseEntity<ResultResponse<ChallengeSimpleResponse>> getChallengeSimple(
@PathVariable long id) {
ChallengeSimpleResponse challengeSimple = challengeService.getChallengeSimple(id);
return ResponseEntity.ok(ResultResponse.success(challengeSimple));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public interface ChallengeControllerDocs {
content = @Content(schema = @Schema(implementation = ChallengeSliceResponse.class)))
})
@GetMapping
ResponseEntity<ResultResponse<?>> getChallenges(
ResponseEntity<ResultResponse<ChallengeSliceResponse>> getChallenges(
ChallengeSliceRequest challengeSliceRequest
);

Expand All @@ -51,7 +51,7 @@ ResponseEntity<ResultResponse<?>> getChallenges(
@ApiResponse(responseCode = "404", description = "(message : \"ํ•™๊ธ‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\")", content = @Content)
})
@PostMapping
public ResponseEntity<ResultResponse<?>> createChallenge(
ResponseEntity<ResultResponse<Long>> createChallenge(
@RequestBody
ChallengeRequest challengeRequest
);
Expand All @@ -65,7 +65,7 @@ public ResponseEntity<ResultResponse<?>> createChallenge(
@ApiResponse(responseCode = "500", description = "(message : \"AWS ์„œ๋ฒ„ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค.\")", content = @Content)
})
@PostMapping(value = "/reports", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
ResponseEntity<ResultResponse<?>> createReport(
ResponseEntity<ResultResponse<Long>> createReport(
@RequestPart
ReportRequest reportRequest,
@RequestPart
Expand All @@ -79,7 +79,7 @@ ResponseEntity<ResultResponse<?>> createReport(
@ApiResponse(responseCode = "404", description = "(message : \"๋ ˆํฌํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\")", content = @Content)
})
@PatchMapping(value = "/reports/{id}")
public ResponseEntity<ResultResponse<?>> confirmReport(
ResponseEntity<ResultResponse<Boolean>> confirmReport(
@Schema(description = "๋ ˆํฌํŠธ id")
@PathVariable
long id,
Expand All @@ -102,8 +102,8 @@ public ResponseEntity<ResultResponse<?>> confirmReport(
""", content = @Content)
})
@GetMapping("/running")
public ResponseEntity<ResultResponse<?>> getRunningChallenge(
@RequestParam(required = true)
ResponseEntity<ResultResponse<RunningChallengeResponse>> getRunningChallenge(
@RequestParam
@Parameter(description = "ํ•™๊ธ‰ ID", required = true, in = ParameterIn.QUERY)
long organizationId
);
Expand All @@ -125,8 +125,8 @@ public ResponseEntity<ResultResponse<?>> getRunningChallenge(
""", content = @Content)
})
@GetMapping("/running/member")
ResponseEntity<ResultResponse<?>> getRunningMemberChallenge(
@RequestParam(required = true)
ResponseEntity<ResultResponse<RunningMemberChallengeResponse>> getRunningMemberChallenge(
@RequestParam
@Parameter(description = "ํ•™๊ธ‰ ID", required = true, in = ParameterIn.QUERY)
long organizationId
);
Expand All @@ -139,12 +139,12 @@ ResponseEntity<ResultResponse<?>> getRunningMemberChallenge(
content = @Content(schema = @Schema(implementation = ChallengeResponse.class)))
})
@GetMapping("/{id}")
public ResponseEntity<ResultResponse<?>> getChallengeDetail(
ResponseEntity<ResultResponse<ChallengeResponse>> getChallengeDetail(
@PathVariable
@Parameter(description = "ํ•จ๊ป˜๋‹ฌ๋ฆฌ๊ธฐ ID", required = true, in = ParameterIn.PATH)
long id,
@RequestParam(required = false)
@Parameter(description = "๊ทธ๋ฃน ID", required = false, in = ParameterIn.QUERY)
@Parameter(description = "๊ทธ๋ฃน ID", in = ParameterIn.QUERY)
Long groupId);

@Operation(summary = "ํ•จ๊ป˜๋‹ฌ๋ฆฌ๊ธฐ ์š”์•ฝ ์กฐํšŒ",
Expand All @@ -153,7 +153,7 @@ public ResponseEntity<ResultResponse<?>> getChallengeDetail(
content = @Content(schema = @Schema(implementation = ChallengeSimpleResponse.class)))
})
@GetMapping("/{id}/simple")
ResponseEntity<ResultResponse<?>> getChallengeSimple(
ResponseEntity<ResultResponse<ChallengeSimpleResponse>> getChallengeSimple(
@PathVariable
@Parameter(description = "ํ•จ๊ป˜๋‹ฌ๋ฆฌ๊ธฐ ID", required = true, in = ParameterIn.PATH)
long id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.quiz.ourclass.domain.challenge.dto.request.AutoGroupMatchingRequest;
import com.quiz.ourclass.domain.challenge.dto.response.AutoGroupMatchingResponse;
import com.quiz.ourclass.domain.challenge.dto.response.MatchingRoomResponse;
import com.quiz.ourclass.domain.challenge.service.GroupService;
import com.quiz.ourclass.global.dto.ResultResponse;
import java.util.List;
Expand All @@ -21,37 +22,39 @@ public class GroupController implements GroupControllerDocs {
private final GroupService groupService;

@PostMapping("/groups/matchingroom")
public ResponseEntity<ResultResponse<?>> createMatchingRoom(long challengeId) {
public ResponseEntity<ResultResponse<MatchingRoomResponse>> createMatchingRoom(
long challengeId) {
return ResponseEntity.ok(
ResultResponse.success(groupService.createMatchingRoom(challengeId)));
}

@PostMapping("/groups/join")
public ResponseEntity<ResultResponse<?>> joinMatchingRoom(String key, boolean joinStatus) {
public ResponseEntity<ResultResponse<Boolean>> joinMatchingRoom(String key,
boolean joinStatus) {
return ResponseEntity.ok(
ResultResponse.success(groupService.joinMatchingRoom(key, joinStatus)));
}

@PostMapping("/groups")
public ResponseEntity<ResultResponse<?>> createGroup(String key) {
public ResponseEntity<ResultResponse<Long>> createGroup(String key) {
return ResponseEntity.ok(
ResultResponse.success(groupService.createGroup(key)));
}

@DeleteMapping("/groups/matching")
public ResponseEntity<ResultResponse<?>> deleteMatchingMember(String key, Long memberId) {
public ResponseEntity<ResultResponse<Boolean>> deleteMatchingMember(String key, Long memberId) {
groupService.deleteMatchingMember(key, memberId);
return ResponseEntity.ok(ResultResponse.success(null));
return ResponseEntity.ok(ResultResponse.success(true));
}

@GetMapping("/groups/invite")
public ResponseEntity<ResultResponse<?>> inviteMatchingRoom(String key, Long memberId) {
public ResponseEntity<ResultResponse<Boolean>> inviteMatchingRoom(String key, Long memberId) {
groupService.inviteMatchingRoom(key, memberId);
return ResponseEntity.ok(ResultResponse.success(null));
return ResponseEntity.ok(ResultResponse.success(true));
}

@GetMapping("/groups/matching")
public ResponseEntity<ResultResponse<?>> getGroupMatching(
public ResponseEntity<ResultResponse<List<AutoGroupMatchingResponse>>> getGroupMatching(
AutoGroupMatchingRequest autoGroupMatchingRequest) {
List<AutoGroupMatchingResponse> autoGroupMatchingResponse =
// groupService.getGroupMatching(autoGroupMatchingRequest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -27,7 +28,7 @@ public interface GroupControllerDocs {
content = @Content(schema = @Schema(implementation = MatchingRoomResponse.class)))
})
@PostMapping("/groups/matchingroom")
ResponseEntity<ResultResponse<?>> createMatchingRoom(
ResponseEntity<ResultResponse<MatchingRoomResponse>> createMatchingRoom(
@Parameter(description = "ํ•จ๊ป˜๋‹ฌ๋ฆฌ๊ธฐ ID", required = true, in = ParameterIn.QUERY)
long challengeId
);
Expand All @@ -44,7 +45,7 @@ ResponseEntity<ResultResponse<?>> createMatchingRoom(
content = @Content(schema = @Schema(implementation = Boolean.class, description = "์ดˆ๋Œ€ ์‘๋‹ต")))
})
@PostMapping("/groups/join")
ResponseEntity<ResultResponse<?>> joinMatchingRoom(
ResponseEntity<ResultResponse<Boolean>> joinMatchingRoom(
@Parameter(description = "๊ทธ๋ฃน ๋Œ€๊ธฐ๋ฐฉ KEY", required = true, in = ParameterIn.QUERY)
String key,
@Parameter(description = "์ดˆ๋Œ€ ์ˆ˜๋ฝ ์—ฌ๋ถ€", required = true, in = ParameterIn.QUERY)
Expand All @@ -61,7 +62,7 @@ ResponseEntity<ResultResponse<?>> joinMatchingRoom(

})
@PostMapping("/groups")
ResponseEntity<ResultResponse<?>> createGroup(
ResponseEntity<ResultResponse<Long>> createGroup(
@Parameter(description = "๊ทธ๋ฃน ๋Œ€๊ธฐ๋ฐฉ KEY", required = true, in = ParameterIn.QUERY)
String key
);
Expand All @@ -73,7 +74,7 @@ ResponseEntity<ResultResponse<?>> createGroup(
@ApiResponse(responseCode = "200", description = "(message : \"Success\")")
})
@DeleteMapping("/groups/matching")
ResponseEntity<ResultResponse<?>> deleteMatchingMember(
ResponseEntity<ResultResponse<Boolean>> deleteMatchingMember(
@Parameter(description = "๊ทธ๋ฃน ๋Œ€๊ธฐ๋ฐฉ KEY", required = true, in = ParameterIn.QUERY)
String key,
@Parameter(description = "์ถ”๋ฐฉ ๋ฉค๋ฒ„ ID", required = true, in = ParameterIn.QUERY)
Expand All @@ -87,7 +88,7 @@ ResponseEntity<ResultResponse<?>> deleteMatchingMember(
@ApiResponse(responseCode = "200", description = "(message : \"Success\")")
})
@GetMapping("/groups/invite")
ResponseEntity<ResultResponse<?>> inviteMatchingRoom(
ResponseEntity<ResultResponse<Boolean>> inviteMatchingRoom(
@Parameter(description = "๊ทธ๋ฃน ๋Œ€๊ธฐ๋ฐฉ KEY", required = true, in = ParameterIn.QUERY)
String key,
@Parameter(description = "์ดˆ๋Œ€ ๋ฉค๋ฒ„ ID", required = true, in = ParameterIn.QUERY)
Expand All @@ -101,7 +102,7 @@ ResponseEntity<ResultResponse<?>> inviteMatchingRoom(
content = @Content(schema = @Schema(implementation = AutoGroupMatchingResponse.class)))
})
@GetMapping("/groups/matching")
ResponseEntity<ResultResponse<?>> getGroupMatching(
ResponseEntity<ResultResponse<List<AutoGroupMatchingResponse>>> getGroupMatching(
AutoGroupMatchingRequest autoGroupMatchingRequest
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,11 @@ public interface ChallengeMapper {
@Mapping(target = "createTime", source = "challengeGroup.createTime")
@Mapping(target = "endStatus", source = "challengeGroup.completeStatus")
@Mapping(target = "memberNames", source = "challengeGroup.groupMembers")
//, qualifiedByName = "MemberToString")
RunningMemberChallengeResponse groupToRunningMember(ChallengeSimpleDTO challengeSimpleDTO,
ChallengeGroup challengeGroup, boolean leaderStatus);

@Mapping(target = "id", source = "member.id")
@Mapping(target = "name", source = "member.name")
@Mapping(target = "photo", source = "member.profileImage")
MemberSimpleDTO groupMemberToMemberSimpleDTO(GroupMember groupMember);

// @Named("MemberToString")
// static List<String> memberToString(List<GroupMember> groupMembers) {
// return groupMembers.stream()
// .map(groupMember -> {
// MemberSimpleDTO
// })
// .collect(Collectors.toList());
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public ChallengeSliceResponse getChallenges(ChallengeSliceRequest request) {
.from(challenge)
.where(challengeCondition)
.offset(pageable.getOffset())
.limit(pageable.getPageSize() + 1)
.limit(pageable.getPageSize() + 1L)
.orderBy(challenge.id.desc())
.fetch();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ protected void challengeClosing(Challenge challenge) {

@EventListener(ApplicationReadyEvent.class)
@Transactional
protected void challengeClosingReload() {
public void challengeClosingReload() {
List<Challenge> challenges = challengeRepository.findAllByEndStatusIsFalse();
challenges.forEach(challenge -> {
log.info(challenge.getEndTime().toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
import com.quiz.ourclass.domain.notice.service.SseService;
import com.quiz.ourclass.domain.organization.entity.Relationship;
import com.quiz.ourclass.domain.organization.repository.MemberOrganizationRepository;
import com.quiz.ourclass.domain.organization.repository.OrganizationRepository;
import com.quiz.ourclass.domain.organization.repository.RelationshipRepository;
import com.quiz.ourclass.global.dto.MemberSimpleDTO;
import com.quiz.ourclass.global.exception.ErrorCode;
import com.quiz.ourclass.global.exception.GlobalException;
import com.quiz.ourclass.global.util.ConstantUtil;
import com.quiz.ourclass.global.util.RedisUtil;
import com.quiz.ourclass.global.util.UserAccessUtil;
import java.time.LocalDateTime;
Expand All @@ -50,25 +50,23 @@ public class GroupServiceImpl implements GroupService {
private final MemberRepository memberRepository;
private final ChallengeRepository challengeRepository;
private final RelationshipRepository relationshipRepository;
private final OrganizationRepository organizationRepository;
private final MemberOrganizationRepository memberOrganizationRepository;
private final UserAccessUtil accessUtil;
private final RedisUtil redisUtil;
private final MemberMapper memberMapper;
private final FriendlyGroup friendlyGroup;
private final static String REDIS_GROUP_KEY = "CHALLENGE_LEADER:";

@Transactional
@Override
public MatchingRoomResponse createMatchingRoom(long challengeId) {
long MemberId = accessUtil.getMember()
long memberId = accessUtil.getMember()
.orElseThrow(() -> new GlobalException(ErrorCode.MEMBER_NOT_FOUND)).getId();
String dataKey = makeGroupKey(challengeId, MemberId);
String dataKey = makeGroupKey(challengeId, memberId);
Set<String> redisMembers = redisUtil.setMembers(dataKey);
if (redisMembers != null && !redisMembers.isEmpty()) {
redisUtil.delete(dataKey);
}
redisUtil.setAdd(dataKey, String.valueOf(MemberId));
redisUtil.setAdd(dataKey, String.valueOf(memberId));
Challenge challenge = challengeRepository.findById(challengeId)
.orElseThrow(() -> new GlobalException(CHALLENGE_NOT_FOUND));
int minCount = challenge.getMinCount();
Expand Down Expand Up @@ -209,7 +207,7 @@ public List<AutoGroupMatchingResponse> getGroupMatching(
return getUnfriendlyGroup(autoGroupMatchingRequest);
}
}
return null;
return new ArrayList<>();
}

// TODO : ํ…Œ์ŠคํŠธ ๋๋‚˜๊ณ  ํ•ด๋‹น ์ฝ”๋“œ ์ง€์šฐ๊ธฐ
Expand Down Expand Up @@ -248,7 +246,7 @@ public List<AutoGroupMatchingResponse> testMethod(
.filter(Optional::isPresent)
.map(Optional::get)
.map(memberMapper::memberToMemberSimpleDTO)
.collect(Collectors.toList());
.toList();
groups.add(testGroup);
return groups.stream().map(group -> AutoGroupMatchingResponse.builder()
.members(group)
Expand Down Expand Up @@ -312,8 +310,8 @@ private List<AutoGroupMatchingResponse> getUnfriendlyGroup(
return null;
}

private static String makeGroupKey(long challengeId, long MemberId) {
return REDIS_GROUP_KEY + challengeId + "_" + MemberId;
private static String makeGroupKey(long challengeId, long memberId) {
return ConstantUtil.REDIS_GROUP_KEY + challengeId + "_" + memberId;
}

private static long getChallengeIdFromKey(String key) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ public interface SseService {

SseEmitter subscribe(String lastEventId);

void send(SseDTO SseDto);
void send(SseDTO sseDto);
}
Loading

0 comments on commit d0e3448

Please sign in to comment.