use of wooteco.prolog.report.domain.Report in project prolog by woowacourse.
the class ReportService method findReportById.
public ReportResponse findReportById(Long reportId) {
Report persistReport = reportRepository.findById(reportId).orElseThrow(IllegalArgumentException::new);
List<ReportAbility> persistReportAbilities = reportAbilityRepository.findByReportId(persistReport.getId());
List<ReportStudylog> persistReportStudylogs = reportStudylogRepository.findByReportId(persistReport.getId());
return ReportResponse.of(persistReport, persistReportAbilities, persistReportStudylogs);
}
use of wooteco.prolog.report.domain.Report in project prolog by woowacourse.
the class ReportService method deleteReport.
@Transactional
public void deleteReport(LoginMember loginMember, Long reportId) {
Report report = reportRepository.findById(reportId).orElseThrow(IllegalArgumentException::new);
if (!report.isBelongTo(loginMember.getId())) {
throw new RuntimeException("내 리포트만 삭제가 가능합니다.");
}
reportRepository.deleteById(reportId);
}
use of wooteco.prolog.report.domain.Report in project prolog by woowacourse.
the class ReportService method createReport.
@Transactional
public ReportResponse createReport(LoginMember loginMember, ReportRequest reportRequest) {
Report report = reportRepository.save(new Report(reportRequest.getTitle(), reportRequest.getDescription(), loginMember.getId(), LocalDate.parse(reportRequest.getStartDate()), LocalDate.parse(reportRequest.getEndDate())));
List<HierarchyAbilityResponse> abilities = abilityService.findParentAbilitiesByMemberId(loginMember.getId());
List<ReportAbility> reportAbilities = reportAbilityRepository.saveAll(abilities.stream().map(it -> new ReportAbility(it.getName(), it.getDescription(), it.getColor(), reportRequest.findWeight(it.getId()), it.getId(), report.getId())).collect(Collectors.toList()));
List<StudylogAbility> studylogAbilities = studylogAbilityService.findStudylogAbilitiesInPeriod(loginMember.getId(), LocalDate.parse(reportRequest.getStartDate()), LocalDate.parse(reportRequest.getEndDate()));
List<ReportStudylog> reportStudylogs = reportStudylogRepository.saveAll(studylogAbilities.stream().map(it -> new ReportStudylog(report.getId(), findReportAbilityByAbility(it.getAbility(), reportAbilities), it.getStudylog(), it.getAbility().getName(), it.getAbility().getColor())).collect(Collectors.toList()));
return ReportResponse.of(report, reportAbilities, reportStudylogs);
}
use of wooteco.prolog.report.domain.Report in project prolog by woowacourse.
the class ReportService method updateReport.
@Transactional
public void updateReport(LoginMember loginMember, Long reportId, ReportUpdateRequest reportUpdateRequest) {
Report report = reportRepository.findById(reportId).orElseThrow(IllegalArgumentException::new);
if (!report.isBelongTo(loginMember.getId())) {
throw new RuntimeException("내 리포트만 수정이 가능합니다.");
}
report.update(reportUpdateRequest.getTitle(), reportUpdateRequest.getDescription());
}
use of wooteco.prolog.report.domain.Report in project prolog by woowacourse.
the class ReportService method findReportsByUsername.
public PageableResponse<ReportResponse> findReportsByUsername(String username, Pageable pageable) {
Member member = memberService.findByUsername(username);
Page<Report> reports = reportRepository.findByMemberId(member.getId(), pageable);
List<ReportResponse> reportResponses = ReportResponse.listOf(reports);
return PageableResponse.of(reportResponses, reports);
}
Aggregations