Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@


import com.teaming.TeamingServer.Domain.Dto.FileListResponseDto;
import com.teaming.TeamingServer.Domain.Dto.ScheduleConfirmDto;
import com.teaming.TeamingServer.Exception.BaseException;
import com.teaming.TeamingServer.Service.*;
import com.teaming.TeamingServer.Domain.Dto.ScheduleEnrollRequestDto;
Expand Down Expand Up @@ -90,6 +91,27 @@ public ResponseEntity<BaseResponse> deleteSchedule (@PathVariable("memberId") Lo
}
}

// 프로젝트의 각 스케줄 확인
@GetMapping("/{memberId}/{projectId}/{scheduleId}")
public ResponseEntity<BaseResponse<List<ScheduleConfirmDto>>> readSchedule(
@PathVariable("memberId") Long memberId, @PathVariable("projectId") Long projectId,
@PathVariable("scheduleId") Long scheduleId) {
try {
List<ScheduleConfirmDto> list = projectService.readSchedule(memberId, projectId, scheduleId);

return ResponseEntity
.status(HttpStatus.OK)
.body(new BaseResponse<>(HttpStatus.OK.value(), "프로젝트의 스케줄", list));
}
catch(BaseException e) {
BaseErrorResponse errorResponse = new BaseErrorResponse(e.getCode(), e.getMessage());

return ResponseEntity
.status(e.getCode())
.body(new BaseResponse<>(e.getCode(), e.getMessage(), null));
}
}

// 파일 업로드
@PostMapping("/{memberId}/{projectId}/files-upload")
public ResponseEntity<BaseResponse> uploadFile(@PathVariable Long projectId,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.teaming.TeamingServer.Domain.Dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalTime;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class ScheduleConfirmDto {
private String schedule_name;
private LocalDate schedule_start;
private LocalDate schedule_end;
private LocalTime schedule_start_time;
private LocalTime schedule_end_time;

}
Original file line number Diff line number Diff line change
Expand Up @@ -314,12 +314,11 @@ private List<Portfolio> searchPortPolio(List<MemberProject> memberProject, List<
public void saveMemberProject(Long member_id, Long project_id, Long schedule_id) {
Member member = memberRepository.findById(member_id).get();
Project project = projectRepository.findById(project_id).get();
Schedule schedule = scheduleRepository.findById(schedule_id).get();

MemberProject memberProject = MemberProject.builder()
.member(member)
.project(project)
.schedule(schedule).build();
.build();

memberProjectRepository.save(memberProject);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.teaming.TeamingServer.Service;

import com.teaming.TeamingServer.Domain.Dto.MainPageResponseDto;
import com.teaming.TeamingServer.Domain.Dto.ScheduleConfirmDto;
import com.teaming.TeamingServer.Domain.Dto.ScheduleResponseDto;
import com.teaming.TeamingServer.Domain.entity.*;
import com.teaming.TeamingServer.Exception.BaseException;
Expand Down Expand Up @@ -33,6 +34,7 @@ public class ProjectService {
private final MemberRepository memberRepository;
private final FileRepository fileRepository;
private final MemberProjectRepository memberProjectRepository;
private final ScheduleRepository scheduleRepository;

public List<ScheduleResponseDto> searchSchedule(Long memberId, Long projectId) {

Expand All @@ -52,7 +54,25 @@ public List<ScheduleResponseDto> searchSchedule(Long memberId, Long projectId) {
return null;
}
return result;
}

public List<ScheduleConfirmDto> readSchedule(Long memberId, Long projectId, Long scheduleId) {

Project project = projectRepository.findById(projectId)
.orElseThrow(() -> new BaseException(404, "유효하지 않은 프로젝트 Id"));
Member member = memberRepository.findById(memberId).orElseThrow(()
-> new BaseException(HttpStatus.NOT_FOUND.value(), "Member not found with id: " + memberId));
Schedule schedule = scheduleRepository.findById(scheduleId).orElseThrow(()
-> new BaseException(HttpStatus.NOT_FOUND.value(), "유효하지 않은 스케줄 Id"));

List <ScheduleConfirmDto> result = project.getSchedules().stream()
.map(scheduleConfirm -> new ScheduleConfirmDto(schedule.getSchedule_name(), schedule.getSchedule_start(),
schedule.getSchedule_end(), schedule.getSchedule_start_time(),
schedule.getSchedule_end_time())).collect(Collectors.toList());
if(result.isEmpty()) {
return null;
}
return result;
}

// memberID 로 MemberProject 들 받아오기
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,21 @@ public void deleteSchedule(Long memberId, Long projectId, Long scheduleId) {
// 스케줄을 삭제한다.
scheduleRepository.deleteById(scheduleId);
}

public void readSchedule(Long memberId, Long projectId, Long scheduleId) {
Project project = projectRepository.findById(projectId).orElseThrow(()
-> new BaseException(HttpStatus.NOT_FOUND.value(), "Project not found"));
Schedule schedule = scheduleRepository.findById(scheduleId).orElseThrow(()
-> new BaseException(HttpStatus.NOT_FOUND.value(), "Schedule not found"));
Member member = memberRepository.findById(memberId).orElseThrow(()
-> new EntityNotFoundException("Member not found"));

if(!schedule.getProject().equals(project)) {
throw new IllegalArgumentException("Schedule does not belong to the specified project.");
}
if(!schedule.getMembersSchedules().equals(member)) { // 요건 필요한지 잘 모르겠다,,
throw new IllegalArgumentException("Schedule does not belong to the specified member.");
}

}
}