use of wooteco.prolog.session.domain.Session in project prolog by woowacourse.
the class StudylogService method insertStudylog.
@Transactional
public StudylogResponse insertStudylog(Long memberId, StudylogRequest studylogRequest) {
Member member = memberService.findById(memberId);
Tags tags = tagService.findOrCreate(studylogRequest.getTags());
Session session = sessionService.findSessionById(studylogRequest.getSessionId()).orElse(null);
Mission mission = missionService.findMissionById(studylogRequest.getMissionId()).orElse(null);
Studylog persistStudylog = studylogRepository.save(new Studylog(member, studylogRequest.getTitle(), studylogRequest.getContent(), session, mission, tags.getList()));
onStudylogCreatedEvent(member, tags, persistStudylog);
deleteStudylogTemp(memberId);
return StudylogResponse.of(persistStudylog);
}
use of wooteco.prolog.session.domain.Session in project prolog by woowacourse.
the class MissionService method create.
@Transactional
public MissionResponse create(MissionRequest missionRequest) {
validateName(missionRequest.getName());
Session session = sessionService.findById(missionRequest.getSessionId());
return MissionResponse.of(missionRepository.save(new Mission(missionRequest.getName(), session)));
}
use of wooteco.prolog.session.domain.Session in project prolog by woowacourse.
the class SessionService method create.
@Transactional
public SessionResponse create(SessionRequest sessionRequest) {
validateName(sessionRequest.getName());
Session save = sessionRepository.save(sessionRequest.toEntity());
return SessionResponse.of(save);
}
use of wooteco.prolog.session.domain.Session in project prolog by woowacourse.
the class StudylogTagRepositoryTest method createStudylogTag.
@DisplayName("StudylogTag 생성")
@Test
void createStudylogTag() {
// given
Member member = memberRepository.save(웨지);
Session session = sessionRepository.save(new Session("세션1"));
Mission mission = missionRepository.save(new Mission("미션", session));
Tag tag = tagRepository.save(new Tag("태그"));
Studylog studylog = studylogRepository.save(new Studylog(member, "제목", "내용", mission, Lists.emptyList()));
// when
StudylogTag studylogTag = new StudylogTag(studylog, tag);
StudylogTag savedStudylogTag = studylogTagRepository.save(studylogTag);
// then
assertThat(savedStudylogTag.getId()).isNotNull();
assertThat(savedStudylogTag).usingRecursiveComparison().ignoringFields("id", "createdAt", "updatedAt").isEqualTo(studylogTag);
}
use of wooteco.prolog.session.domain.Session in project prolog by woowacourse.
the class StudylogTagRepositoryTest method findByTagIn.
@DisplayName("Tag 리스트와 매칭되는 StudylogTag 리스트 조회")
@Test
void findByTagIn() {
// given
Member member = memberRepository.save(웨지);
Session session = sessionRepository.save(new Session("세션1"));
Mission mission = missionRepository.save(new Mission("미션", session));
Studylog studylog1 = studylogRepository.save(new Studylog(member, "제목1", "내용1", mission, Lists.emptyList()));
Studylog studylog2 = studylogRepository.save(new Studylog(member, "제목2", "내용2", mission, Lists.emptyList()));
Tag tag1 = tagRepository.save(new Tag("태그1"));
Tag tag2 = tagRepository.save(new Tag("태그2"));
StudylogTag studylogTag1 = studylogTagRepository.save(new StudylogTag(studylog1, tag1));
StudylogTag studylogTag2 = studylogTagRepository.save(new StudylogTag(studylog1, tag2));
StudylogTag studylogTag3 = studylogTagRepository.save(new StudylogTag(studylog2, tag2));
// when
List<StudylogTag> studylogTags = studylogTagRepository.findByTagIn(Arrays.asList(tag1, tag2));
// then
assertThat(studylogTags).usingFieldByFieldElementComparator().containsExactlyInAnyOrder(studylogTag1, studylogTag2, studylogTag3);
}
Aggregations