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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,10 @@ spotless {

java {
// don't need to set target, it is inferred from java
eclipse().configFile("config/formatter/java-style.xml")
importOrder()
removeUnusedImports()
cleanthat()
googleJavaFormat().aosp().skipJavadocFormatting()
formatAnnotations()
indentWithTabs()
trimTrailingWhitespace()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,33 @@ public class CalendarCategoryController {
private final CalendarCategoryCommandService calendarCategoryCommandService;

@GetMapping
public ResponseEntity<List<CalendarCategoryListResponse>> calendarCategoryList(@CurrentMember Member member) {
return ResponseEntity.ok(calendarCategoryQueryService.searchCalendarCategories(member.getId()).stream()
.map(CalendarCategoryListResponse::of).toList());
public ResponseEntity<List<CalendarCategoryListResponse>> calendarCategoryList(
@CurrentMember Member member) {
return ResponseEntity.ok(
calendarCategoryQueryService.searchCalendarCategories(member.getId()).stream()
.map(CalendarCategoryListResponse::of)
.toList());
}

@PostMapping
public ResponseEntity<Void> addCalendarCategory(@Valid @RequestBody CalendarCategoryAddRequest request,
@CurrentMember Member member) {
public ResponseEntity<Void> addCalendarCategory(
@Valid @RequestBody CalendarCategoryAddRequest request, @CurrentMember Member member) {
Long id = calendarCategoryCommandService.addCategory(request, member.getId());
return ResponseEntity.created(URI.create("/api/v1/calendar-categories/" + id)).build();
}

@PutMapping("/{categoryId}")
public ResponseEntity<Void> modifyCalendarCategory(@PathVariable Long categoryId,
@Valid @RequestBody CalendarCategoryModifyRequest request, @CurrentMember Member member) {
public ResponseEntity<Void> modifyCalendarCategory(
@PathVariable Long categoryId,
@Valid @RequestBody CalendarCategoryModifyRequest request,
@CurrentMember Member member) {
calendarCategoryCommandService.modifyCategory(request, categoryId, member.getId());
return ResponseEntity.noContent().build();
}

@DeleteMapping("/{categoryId}")
public ResponseEntity<Void> deleteCalendarCategory(@PathVariable Long categoryId, @CurrentMember Member member) {
public ResponseEntity<Void> deleteCalendarCategory(
@PathVariable Long categoryId, @CurrentMember Member member) {
calendarCategoryCommandService.removeCategory(categoryId, member.getId());
return ResponseEntity.noContent().build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,54 +32,63 @@ public class CalendarController {

@GetMapping
public ResponseEntity<List<CalendarResponse>> calendarList(@CurrentMember Member member) {
return ResponseEntity.ok(calendarMemberService.searchCalendarsByMemberId(member.getId()).stream()
.map(CalendarResponse::from).toList());
return ResponseEntity.ok(
calendarMemberService.searchCalendarsByMemberId(member.getId()).stream()
.map(CalendarResponse::from)
.toList());
}

@PostMapping
public ResponseEntity<CalendarResponse> addCalendar(@RequestBody @Valid CalendarAddRequest request,
@CurrentMember Member member) {
public ResponseEntity<CalendarResponse> addCalendar(
@RequestBody @Valid CalendarAddRequest request, @CurrentMember Member member) {
Calendar calendar = calendarCommandService.addCalendar(request, member.getId());
return ResponseEntity.created(URI.create("/api/v1/calendars/" + calendar.getId()))
.body(CalendarResponse.from(calendar));
}

@PutMapping("/{calendarId}")
public ResponseEntity<Void> calendarModify(@RequestBody @Valid CalendarModifyRequest request,
@PathVariable Long calendarId, @CurrentMember Member member) {
public ResponseEntity<Void> calendarModify(
@RequestBody @Valid CalendarModifyRequest request,
@PathVariable Long calendarId,
@CurrentMember Member member) {
calendarCommandService.modifyCalendar(request, calendarId, member.getId());
return ResponseEntity.noContent().build();
}

@DeleteMapping("/{calendarId}")
public ResponseEntity<Void> calendarDelete(@PathVariable Long calendarId, @CurrentMember Member member) {
public ResponseEntity<Void> calendarDelete(
@PathVariable Long calendarId, @CurrentMember Member member) {
calendarCommandService.removeByCalendarId(calendarId, member.getId());
return ResponseEntity.noContent().build();
}

@GetMapping("/{calendarId}/members")
public ResponseEntity<List<CalendarMemberResponse>> calendarMemberList(@PathVariable Long calendarId) {
public ResponseEntity<List<CalendarMemberResponse>> calendarMemberList(
@PathVariable Long calendarId) {
return ResponseEntity.ok(calendarMemberService.searchCalendarMembers(calendarId));
}

@GetMapping("/{calendarId}/members/{memberId}")
public ResponseEntity<CalendarMemberResponse> calendarMemberDetails(@PathVariable Long calendarId,
@PathVariable Long memberId) {
CalendarMember calendarMember = calendarMemberService.searchCalendarMember(calendarId, memberId);
public ResponseEntity<CalendarMemberResponse> calendarMemberDetails(
@PathVariable Long calendarId, @PathVariable Long memberId) {
CalendarMember calendarMember =
calendarMemberService.searchCalendarMember(calendarId, memberId);
Member member = memberQueryService.findByMemberId(memberId);
return ResponseEntity.ok(CalendarMemberResponse.of(calendarMember, member));
}

@DeleteMapping("/{calendarId}/members/{memberId}")
public ResponseEntity<Void> calendarMemberDelete(@PathVariable Long calendarId, @PathVariable Long memberId,
public ResponseEntity<Void> calendarMemberDelete(
@PathVariable Long calendarId,
@PathVariable Long memberId,
@CurrentMember Member member) {
calendarMemberService.removeCalendarMember(calendarId, memberId, member.getId());
return ResponseEntity.noContent().build();
}

@PostMapping("/join")
public ResponseEntity<Void> joinInCalendar(@RequestBody JoinInCalendarRequest request,
@CurrentMember Member member) {
public ResponseEntity<Void> joinInCalendar(
@RequestBody JoinInCalendarRequest request, @CurrentMember Member member) {
joinCalendarService.joinInCalendar(request.inviteCode(), member.getId());
return ResponseEntity.created(URI.create("")).build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ public class Calendar extends BaseTime {
@Column(name = "calendar_id", nullable = false)
private Long id;

@Embedded
private CalendarTitle title;
@Embedded private CalendarTitle title;

@Column(nullable = false)
private boolean deleted;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,9 @@ public class CalendarCategory extends BaseTime {
@Column(name = "calendar_category_id", nullable = false)
private Long id;

@Embedded
private CalendarColorHex colorHex;
@Embedded private CalendarColorHex colorHex;

@Embedded
private CalendarCategoryName name;
@Embedded private CalendarCategoryName name;

@Column(nullable = false)
private boolean isDefault;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,13 @@

@Entity
@Getter
@Table(name = "calendar_member", uniqueConstraints = {
@UniqueConstraint(name = "CalendarAndMember", columnNames = {"member_id", "calendar_id"})})
@Table(
name = "calendar_member",
uniqueConstraints = {
@UniqueConstraint(
name = "CalendarAndMember",
columnNames = {"member_id", "calendar_id"})
})
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class CalendarMember extends BaseTime {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
import com.sillim.recordit.global.validation.common.ColorHexValid;
import org.hibernate.validator.constraints.Length;

public record CalendarCategoryAddRequest(@ColorHexValid String colorHex, @Length(min = 1, max = 10) String name) {
}
public record CalendarCategoryAddRequest(
@ColorHexValid String colorHex, @Length(min = 1, max = 10) String name) {}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
import com.sillim.recordit.global.validation.common.ColorHexValid;
import org.hibernate.validator.constraints.Length;

public record CalendarCategoryModifyRequest(@ColorHexValid String colorHex, @Length(min = 1, max = 10) String name) {
}
public record CalendarCategoryModifyRequest(
@ColorHexValid String colorHex, @Length(min = 1, max = 10) String name) {}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

import org.hibernate.validator.constraints.Length;

public record CalendarModifyRequest(@Length(min = 1, max = 30) String title, Long calendarCategoryId) {
}
public record CalendarModifyRequest(
@Length(min = 1, max = 30) String title, Long calendarCategoryId) {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.sillim.recordit.calendar.dto.request;

public record JoinInCalendarRequest(String inviteCode) {
}
public record JoinInCalendarRequest(String inviteCode) {}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@

import com.sillim.recordit.calendar.domain.CalendarCategory;

public record CalendarCategoryListResponse(Long id, String colorHex, String name, boolean isDefault) {
public record CalendarCategoryListResponse(
Long id, String colorHex, String name, boolean isDefault) {

public static CalendarCategoryListResponse of(CalendarCategory calendarCategory) {
return new CalendarCategoryListResponse(calendarCategory.getId(), calendarCategory.getColorHex(),
calendarCategory.getName(), calendarCategory.isDefault());
return new CalendarCategoryListResponse(
calendarCategory.getId(),
calendarCategory.getColorHex(),
calendarCategory.getName(),
calendarCategory.isDefault());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
import com.sillim.recordit.calendar.domain.CalendarMember;
import com.sillim.recordit.member.domain.Member;

public record CalendarMemberResponse(Long id, Long memberId, String memberName, String memberProfileImageUrl) {
public record CalendarMemberResponse(
Long id, Long memberId, String memberName, String memberProfileImageUrl) {

public static CalendarMemberResponse of(CalendarMember calendarMember, Member member) {
return new CalendarMemberResponse(calendarMember.getId(), member.getId(), member.getName(),
return new CalendarMemberResponse(
calendarMember.getId(),
member.getId(),
member.getName(),
member.getProfileImageUrl());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public interface CalendarCategoryRepository extends JpaRepository<CalendarCatego
CalendarCategory findByDeletedIsFalseAndMemberIdAndIsDefaultIsTrue(Long memberId);

@Modifying(clearAutomatically = true)
@Query("update CalendarCategory cc set cc.memberId = null, cc.deleted = true where cc.memberId" + " = :memberId")
@Query(
"update CalendarCategory cc set cc.memberId = null, cc.deleted = true where cc.memberId"
+ " = :memberId")
void updateMemberIsNull(@Param("memberId") Long memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface CalendarMemberRepository extends JpaRepository<CalendarMember, Long>, CustomCalendarMemberRepository {
public interface CalendarMemberRepository
extends JpaRepository<CalendarMember, Long>, CustomCalendarMemberRepository {

@Modifying(clearAutomatically = true)
@Query("update CalendarMember cm set cm.deleted = true where cm.calendar.id = :calendarId")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
import com.sillim.recordit.calendar.domain.Calendar;
import org.springframework.data.jpa.repository.JpaRepository;

public interface CalendarRepository extends JpaRepository<Calendar, Long>, CustomCalendarRepository {
}
public interface CalendarRepository
extends JpaRepository<Calendar, Long>, CustomCalendarRepository {}
Original file line number Diff line number Diff line change
Expand Up @@ -11,43 +11,61 @@

@Repository
public class CustomCalendarMemberRepositoryImpl extends QuerydslRepositorySupport
implements
CustomCalendarMemberRepository {
implements CustomCalendarMemberRepository {

public CustomCalendarMemberRepositoryImpl() {
super(CalendarMember.class);
}

@Override
public Optional<CalendarMember> findCalendarMember(Long calendarId, Long memberId) {
return Optional.ofNullable(selectFrom(calendarMember).leftJoin(calendarMember.calendar).fetchJoin()
.leftJoin(calendarMember.calendar.category).fetchJoin()
// .leftJoin(calendarMember.member)
// .fetchJoin()
.where(calendarMember.deleted.isFalse()).where(calendarMember.calendar.id.eq(calendarId))
// .where(calendarMember.member.id.eq(memberId))
.fetchOne());
return Optional.ofNullable(
selectFrom(calendarMember)
.leftJoin(calendarMember.calendar)
.fetchJoin()
.leftJoin(calendarMember.calendar.category)
.fetchJoin()
// .leftJoin(calendarMember.member)
// .fetchJoin()
.where(calendarMember.deleted.isFalse())
.where(calendarMember.calendar.id.eq(calendarId))
// .where(calendarMember.member.id.eq(memberId))
.fetchOne());
}

@Override
public List<CalendarMember> findCalendarMembers(Long calendarId) {
return selectFrom(calendarMember).leftJoin(calendarMember.calendar).fetchJoin()
.leftJoin(calendarMember.calendar.category).fetchJoin()
return selectFrom(calendarMember)
.leftJoin(calendarMember.calendar)
.fetchJoin()
.leftJoin(calendarMember.calendar.category)
.fetchJoin()
// .leftJoin(calendarMember.memberId)
// .fetchJoin()
.where(calendarMember.deleted.isFalse()).where(calendarMember.calendar.id.eq(calendarId)).fetch();
.where(calendarMember.deleted.isFalse())
.where(calendarMember.calendar.id.eq(calendarId))
.fetch();
}

@Override
public List<Calendar> findCalendarsByMemberId(Long memberId) {
return getJpaQueryFactory().select(calendarMember.calendar).from(calendarMember)
.leftJoin(calendarMember.calendar.category).fetchJoin().where(calendarMember.deleted.isFalse())
.where(calendarMember.calendar.deleted.isFalse()).where(calendarMember.memberId.eq(memberId)).fetch();
return getJpaQueryFactory()
.select(calendarMember.calendar)
.from(calendarMember)
.leftJoin(calendarMember.calendar.category)
.fetchJoin()
.where(calendarMember.deleted.isFalse())
.where(calendarMember.calendar.deleted.isFalse())
.where(calendarMember.memberId.eq(memberId))
.fetch();
}

@Override
public void updateMemberIsNull(Long memberId) {
update(calendarMember).setNull(calendarMember.memberId).set(calendarMember.deleted, true)
.where(calendarMember.memberId.eq(memberId)).execute();
update(calendarMember)
.setNull(calendarMember.memberId)
.set(calendarMember.deleted, true)
.where(calendarMember.memberId.eq(memberId))
.execute();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,32 @@
import java.util.List;
import java.util.Optional;

public class CustomCalendarRepositoryImpl extends QuerydslRepositorySupport implements CustomCalendarRepository {
public class CustomCalendarRepositoryImpl extends QuerydslRepositorySupport
implements CustomCalendarRepository {

public CustomCalendarRepositoryImpl() {
super(Calendar.class);
}

@Override
public Optional<Calendar> findByIdWithFetchCategory(Long calendarId) {
return Optional.ofNullable(selectFrom(calendar).leftJoin(calendar.category).fetchJoin()
.where(calendar.deleted.isFalse()).where(calendar.id.eq(calendarId)).fetchOne());
return Optional.ofNullable(
selectFrom(calendar)
.leftJoin(calendar.category)
.fetchJoin()
.where(calendar.deleted.isFalse())
.where(calendar.id.eq(calendarId))
.fetchOne());
}

@Override
public List<Calendar> findByMemberId(Long memberId) {
return selectFrom(calendar).leftJoin(calendar.category).fetchJoin().where(calendar.deleted.isFalse())
.where(calendar.memberId.eq(memberId)).fetch();
return selectFrom(calendar)
.leftJoin(calendar.category)
.fetchJoin()
.where(calendar.deleted.isFalse())
.where(calendar.memberId.eq(memberId))
.fetch();
}

@Override
Expand All @@ -32,7 +42,9 @@ public void updateMemberIsNull(Long memberId) {

@Override
public void updateCategorySetDefault(Long defaultCategoryId, Long categoryId) {
update(calendar).set(calendar.category.id, defaultCategoryId).where(calendar.category.id.eq(categoryId))
update(calendar)
.set(calendar.category.id, defaultCategoryId)
.where(calendar.category.id.eq(categoryId))
.execute();
}
}
Loading
Loading