Skip to content

Commit

Permalink
Merge pull request #36 from rework-kr/Feat/35-updateDailyAgenda
Browse files Browse the repository at this point in the history
Feat/35 update daily agenda
  • Loading branch information
OneK-2 authored Jul 1, 2024
2 parents 9268486 + 2f0140d commit 4292549
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,16 @@ public UpdateDailyAgendaResponseDto updateDailyAgenda(UpdateDailyAgendaRequestDt
if (!dailyAgenda.getMember().getId().equals(currentUserId)) {
throw new UnAuthorizedException("유저가 소유한 아젠다가 아닙니다.");
}
//페이징 중복 확인
LocalDateTime createdAt = dailyAgenda.getCreatedAt();
LocalDateTime startOfDay = createdAt.toLocalDate().atStartOfDay();
LocalDateTime endOfDay = createdAt.toLocalDate().atTime(LocalTime.MAX);

if (dailyAgendaRepository.existsByPagingIdAndCreatedAtBetween(updateDailyAgendaRequestDto.getPagingId(), startOfDay, endOfDay)) {
throw new AlreadyPagingIdException("이미 등록된 페이징번호입니다");
}

dailyAgenda.updatePagingId(updateDailyAgendaRequestDto.getPagingId());
dailyAgenda.setTodo(updateDailyAgendaRequestDto.getTodo());
dailyAgenda.setState(updateDailyAgendaRequestDto.isState());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
@Validated
public interface DailyAgendaApi {
@Operation(
summary = "이번달 아젠다 조회",
summary = "오늘의 아젠다 조회",
description = "사용자 정보를 받아 '오늘의 아젠다를' 조회하는 API \n"
+ "조회시 옵션 3가지 제공. 공백, true, false에 따라 해당하는 아젠다를 조회."
)
Expand All @@ -31,7 +31,7 @@ ResponseEntity<CommonResDto<?>> readDailyAgenda(
);

@Operation(
summary = "이번달 아젠다 생성",
summary = "오늘의 아젠다 생성",
description = "아젠다를 입력받아 '오늘의 아젠다'를 생성함"
)
@PostMapping
Expand All @@ -41,7 +41,7 @@ ResponseEntity<CommonResDto<?>> crateDailyAgenda(
);

@Operation(
summary = "이번달 아젠다 수정",
summary = "오늘의 아젠다 수정",
description = "수정된 아젠다를 입력받아 '오늘의 아젠다'를 수정함"
)
@PutMapping
Expand All @@ -51,7 +51,7 @@ ResponseEntity<CommonResDto<?>> updateDailyAgenda(
);

@Operation(
summary = "이번달 아젠다 삭제",
summary = "오늘의 아젠다 삭제",
description = "삭제하고자 하는 아젠다id를 입력 받아 해당하는 '오늘의 아젠다'를 삭제함"
)
@DeleteMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,15 @@ void updateDailyAgenda() {
.willReturn(Optional.ofNullable(getMember()));

given(dailyAgendaRepository.findById(any()))
.willReturn(Optional.ofNullable(getDailyAgenda()));
.willReturn(Optional.ofNullable(getDailyAgendaForUpdate()));

//when
DailyAgendaResponseDto.UpdateDailyAgendaResponseDto updateDailyAgendaResponseDto = dailyAgendaService.updateDailyAgenda(updateDailyAgendaRequestDto, null);

//then
Assertions.assertThat(updateDailyAgendaResponseDto.getAgendaId()).isEqualTo(1L);
Assertions.assertThat(updateDailyAgendaResponseDto.getTodo()).isEqualTo("수정된 아젠다");

Assertions.assertThat(updateDailyAgendaResponseDto.getPagingId()).isEqualTo(2L);
}


Expand Down Expand Up @@ -224,10 +225,23 @@ private DailyAgendaRequestDto.UpdateDailyAgendaRequestDto getDailyAgendaUpdateRe
return DailyAgendaRequestDto.UpdateDailyAgendaRequestDto.builder()
.agendaId(1L)
.todo("수정된 아젠다")
.pagingId(2L)
.state(true)
.build();
}

private DailyAgenda getDailyAgendaForUpdate() {
DailyAgenda dailyAgenda = DailyAgenda.builder()
.todo("오늘의 아젠다")
.pagingId(1L)
.state(false)
.member(getMember())
.build();
ReflectionTestUtils.setField(dailyAgenda, "id", 1L);
ReflectionTestUtils.setField(dailyAgenda, "createdAt", LocalDateTime.now());
return dailyAgenda;
}

private DailyAgenda getDailyAgenda() {
DailyAgenda dailyAgenda = DailyAgenda.builder()
.todo("오늘의 아젠다")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ public static DailyAgendaRequestDto.CreateDailyAgendaRequestDto createAgenda() {
.build();
}

public static DailyAgendaRequestDto.UpdateDailyAgendaRequestDto updateAgenda(Long agendaId) {
public static DailyAgendaRequestDto.UpdateDailyAgendaRequestDto updateAgenda(Long agendaId,Long updatePagingId) {
return DailyAgendaRequestDto.UpdateDailyAgendaRequestDto.builder()
.todo("수정한 아젠다")
.agendaId(agendaId)
.pagingId(updatePagingId)
.state(true)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,9 @@ void readAgenda() throws Exception {
void updateAgenda() throws Exception {
//given
String url = "/api/v1/dailyAgenda";
Long updatePagingId = 2L;

DailyAgendaRequestDto.UpdateDailyAgendaRequestDto updateDailyAgendaRequestDto = DailyAgendaFixture.updateAgenda(dailyAgendaId);
DailyAgendaRequestDto.UpdateDailyAgendaRequestDto updateDailyAgendaRequestDto = DailyAgendaFixture.updateAgenda(dailyAgendaId, updatePagingId);

MvcResult mvcResult = mockMvc.perform(put(url)
.contentType(MediaType.APPLICATION_JSON)
Expand All @@ -158,10 +159,12 @@ void updateAgenda() throws Exception {
Long id = resultData.get("agendaId").asLong();
String todo = resultData.get("todo").asText();
boolean state = resultData.get("state").asBoolean();
Long pagingId = resultData.get("pagingId").asLong();

assertAll(
() -> assertThat(id).isNotNull(),
() -> assertThat(todo).isEqualTo("수정한 아젠다"),
() -> assertThat(pagingId).isEqualTo(2L),
() -> assertThat(state).isTrue()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.junit.jupiter.api.Test;
import org.springframework.http.MediaType;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MvcResult;

import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -40,11 +41,16 @@ void setUp() {
.role(MemberRole.MEMBER)
.state(true)
.build();

// LocalDateTime nowInKorea = LocalDateTime.now(ZoneId.of("Asia/Seoul"));

MonthlyAgenda monthlyAgenda = MonthlyAgenda.builder()
.todo("이번달아젠다")
.state(false)
.member(member)
.build();
// ReflectionTestUtils.setField(monthlyAgenda, "createdAt", nowInKorea);

memberRepository.saveAndFlush(member);
MonthlyAgenda savedAgenda = monthlyAgendaRepository.saveAndFlush(monthlyAgenda);
monthlyAgendaId = savedAgenda.getId();
Expand Down Expand Up @@ -99,8 +105,8 @@ void readTodo() throws Exception {

//when
MvcResult mvcResult = mockMvc.perform(get(url)
.param("year",String.valueOf(year))
.param("month",String.valueOf(month))
.param("year", String.valueOf(year))
.param("month", String.valueOf(month))
.contentType(MediaType.APPLICATION_JSON)
.characterEncoding(StandardCharsets.UTF_8)
)
Expand All @@ -122,13 +128,17 @@ void readTodo() throws Exception {
String createTime = resultData.get("createTime").asText();

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
LocalDateTime nowInKorea = LocalDateTime.now(ZoneId.of("Asia/Seoul"));
String formattedNow = nowInKorea.format(formatter);
// LocalDateTime nowInKorea = LocalDateTime.now(ZoneId.of("Asia/Seoul"));
// String formattedNow = nowInKorea.format(formatter);

LocalDateTime time = LocalDateTime.now();
String formattedNow = time.format(formatter);

assertAll(
() -> assertThat(id).isNotNull(),
() -> assertThat(todo).isEqualTo("이번달아젠다"),
() -> assertThat(state).isFalse(),
() -> assertThat(createTime).isEqualTo(formattedNow)
() -> assertThat(createTime.startsWith(formattedNow)).isTrue()
);
}

Expand Down

0 comments on commit 4292549

Please sign in to comment.