use of wooteco.prolog.studylog.domain.Studylog in project prolog by woowacourse.
the class ReportRepositoryTest method createReport.
private Report createReport(Member member) {
Ability ability1 = abilityRepository.save(AbilityFixture.parentAbility1(member));
Ability ability2 = abilityRepository.save(AbilityFixture.parentAbility2(member));
Ability ability3 = abilityRepository.save(AbilityFixture.parentAbility3(member));
GraphAbilities graphAbilities = new GraphAbilities(Arrays.asList(new GraphAbility(ability1, 1L, true), new GraphAbility(ability2, 2L, true), new GraphAbility(ability3, 3L, true)));
Level level1 = levelRepository.save(LevelFixture.level1());
Mission mission = missionRepository.save(MissionFixture.mission1(level1));
Ability ability4 = abilityRepository.save(AbilityFixture.childAbility1(member, ability1));
Ability ability5 = abilityRepository.save(AbilityFixture.childAbility2(member, ability2));
Studylog studylog = studylogRepository.save(createStudylog(member, mission));
ReportedStudylogs reportedStudylogs = new ReportedStudylogs(Arrays.asList(new ReportedStudylog(studylog.getId(), Arrays.asList(new ReportedStudylogAbility(ability4), new ReportedStudylogAbility(ability5))), new ReportedStudylog(studylog.getId(), Arrays.asList(new ReportedStudylogAbility(ability4), new ReportedStudylogAbility(ability5)))));
return ReportFixture.builder().member(member).title("test report").description("test report").graph(new AbilityGraph(graphAbilities)).member(member).studylogs(reportedStudylogs).build();
}
use of wooteco.prolog.studylog.domain.Studylog in project prolog by woowacourse.
the class ReportAssembler method of.
private StudylogResponse of(ReportedStudylog reportedStudylog) {
List<StudylogAbilityResponse> abilityResponses = reportedStudylog.getAbilities().stream().map(this::of).collect(toList());
Studylog studylog = studylogRepository.findById(reportedStudylog.getStudylogId()).orElseThrow(StudylogNotFoundException::new);
return new StudylogResponse(studylog.getId(), studylog.getCreatedAt(), studylog.getUpdatedAt(), studylog.getTitle(), abilityResponses);
}
use of wooteco.prolog.studylog.domain.Studylog in project prolog by woowacourse.
the class StudylogLikeService method unlikeStudylog.
@Transactional
public StudylogLikeResponse unlikeStudylog(Long memberId, Long studylogId, boolean isMember) {
validIfMember(isMember);
Studylog studylog = studylogRepository.findById(studylogId).orElseThrow(StudylogNotFoundException::new);
Member member = memberService.findById(memberId);
studylog.unlike(member.getId());
return new StudylogLikeResponse(false, studylog.getLikeCount());
}
use of wooteco.prolog.studylog.domain.Studylog in project prolog by woowacourse.
the class StudylogLikeService method likeStudylog.
@Transactional
public StudylogLikeResponse likeStudylog(Long memberId, Long studylogId, boolean isMember) {
validIfMember(isMember);
Studylog studylog = studylogRepository.findById(studylogId).orElseThrow(StudylogNotFoundException::new);
Member member = memberService.findById(memberId);
studylog.like(member.getId());
return new StudylogLikeResponse(true, studylog.getLikeCount());
}
use of wooteco.prolog.studylog.domain.Studylog in project prolog by woowacourse.
the class StudylogScrapService method registerScrap.
@Transactional
public MemberScrapResponse registerScrap(Long memberId, Long studylogId) {
if (studylogScrapRepository.countByMemberIdAndScrapStudylogId(memberId, studylogId) > 0) {
throw new StudylogScrapAlreadyRegisteredException();
}
Studylog studylog = studylogRepository.findById(studylogId).orElseThrow(StudylogNotFoundException::new);
Member member = memberRepository.findById(memberId).orElseThrow(MemberNotFoundException::new);
StudylogScrap studylogScrap = new StudylogScrap(member, studylog);
studylogScrapRepository.save(studylogScrap);
return MemberScrapResponse.of(studylogScrap);
}
Aggregations