Skip to content

Commit

Permalink
Feat/#50 add home api (#51)
Browse files Browse the repository at this point in the history
* refactor: 폴더 구조 변경

* feat: 주민 기본, 게스트 홈페이지 API 구현

* feat: 비회원 홈 url security filter 예외처리 추가

* refactor: booktalk 엔티티에 city 값 추가 및 북토크 조회 로직 수정

* feat: 작가 홈 및 이번달 북토크 개최 많이된 지역 조회 API 구현 | Init DB에 값 추가

* add: 지역 값 추가
  • Loading branch information
dong2ast committed Jul 14, 2023
1 parent 4611e70 commit a133520
Show file tree
Hide file tree
Showing 38 changed files with 281 additions and 74 deletions.
21 changes: 19 additions & 2 deletions src/main/java/org/sophy/sophy/InitDb.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lombok.RequiredArgsConstructor;
import org.sophy.sophy.domain.*;
import org.sophy.sophy.domain.enumerate.*;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -79,8 +80,8 @@ public void dbInit() {

Place place = Place.builder()
.name("장소")
.city(City.UIJEONGBU_SI)
.address("의정부시 무슨동 뭐시기")
.city(City.NAKYANG_DONG)
.address("의정부시 낙양동")
.maximum(30)
.build();
Place place2 = Place.builder()
Expand Down Expand Up @@ -124,6 +125,22 @@ public void dbInit() {
.build();
em.persist(booktalk2);

Booktalk booktalk3 = Booktalk.builder()
.place(place)
.title("테스트 타이틀3 - 낙양동")
.booktalkImageUrl("dwqE@EWQDQFQEWQ")
.member(author)
.bookCategory(BookCategory.HEALTH_COOKING)
.startDate(LocalDateTime.of(2023, 7, 18, 16, 0))
.endDate(LocalDateTime.of(2023, 7, 18, 18, 0))
.maximum(6)
.participationFee(10000)
.preliminaryInfo(PreliminaryInfo.PRE_READING)
.description("재밌습니다~")
.booktalkStatus(BooktalkStatus.RECRUITING)
.build();
em.persist(booktalk3);

MemberBooktalk memberBooktalk = MemberBooktalk.builder()
.member(citizen)
.booktalk(booktalk)
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/sophy/sophy/config/SecurityConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.antMatchers("/profile/**").permitAll()
.antMatchers("/actuator/**").permitAll()
.antMatchers("/health/**").permitAll()
.antMatchers("/home/**").permitAll()
.anyRequest().authenticated() //나머지 API는 전부 인증 필요

//JwtFilter 를 addFilterBefore 로 등록했던 JwtSecurityConfig 클래스를 적용
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/sophy/sophy/controller/BooktalkController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import lombok.RequiredArgsConstructor;
import org.sophy.sophy.common.dto.ApiResponseDto;
import org.sophy.sophy.controller.dto.BooktalkUpdateDto;
import org.sophy.sophy.controller.dto.request.BooktalkParticipationRequestDto;
import org.sophy.sophy.controller.dto.request.BooktalkRequestDto;
import org.sophy.sophy.controller.dto.request.CityRequestDto;
import org.sophy.sophy.controller.dto.response.*;
import org.sophy.sophy.domain.dto.booktalk.BooktalkUpdateDto;
import org.sophy.sophy.domain.dto.booktalk.request.BooktalkParticipationRequestDto;
import org.sophy.sophy.domain.dto.booktalk.request.BooktalkRequestDto;
import org.sophy.sophy.domain.dto.booktalk.response.*;
import org.sophy.sophy.domain.dto.CityRequestDto;
import org.sophy.sophy.exception.SuccessStatus;
import org.sophy.sophy.service.BooktalkService;
import org.springframework.http.HttpStatus;
Expand Down
27 changes: 27 additions & 0 deletions src/main/java/org/sophy/sophy/controller/HomeController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.sophy.sophy.controller;

import lombok.RequiredArgsConstructor;
import org.sophy.sophy.common.dto.ApiResponseDto;
import org.sophy.sophy.domain.dto.HomeResponseDto;
import org.sophy.sophy.exception.SuccessStatus;
import org.sophy.sophy.service.HomeService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequiredArgsConstructor
public class HomeController {
private final HomeService homeService;

@GetMapping("/myhome/{memberId}")
public ApiResponseDto<HomeResponseDto> getHome(@PathVariable("memberId") Long memberId) {
return ApiResponseDto.success(SuccessStatus.GET_HOME_SUCCESS, homeService.getHome(memberId));
}

@GetMapping("/home")
public ApiResponseDto<HomeResponseDto> getHome() {
return ApiResponseDto.success(SuccessStatus.GET_GUEST_HOME_SUCCESS, homeService.getGuestHome());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import lombok.RequiredArgsConstructor;
import org.sophy.sophy.common.dto.ApiResponseDto;
import org.sophy.sophy.controller.dto.request.MemberAdditionalInfoDto;
import org.sophy.sophy.domain.dto.MyPageBooktalkDto;
import org.sophy.sophy.domain.dto.MyPageDto;
import org.sophy.sophy.domain.dto.MyInfoDto;
import org.sophy.sophy.domain.dto.mypage.MyPageBooktalkDto;
import org.sophy.sophy.domain.dto.mypage.MyPageDto;
import org.sophy.sophy.domain.dto.mypage.MyInfoDto;
import org.sophy.sophy.exception.SuccessStatus;
import org.sophy.sophy.service.MemberService;
import org.springframework.http.HttpStatus;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import lombok.RequiredArgsConstructor;
import org.sophy.sophy.common.dto.ApiResponseDto;
import org.sophy.sophy.controller.dto.request.CityRequestDto;
import org.sophy.sophy.domain.dto.CityRequestDto;
import org.sophy.sophy.controller.dto.response.PlaceResponseDto;
import org.sophy.sophy.exception.SuccessStatus;
import org.sophy.sophy.service.PlaceService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.sophy.sophy.domain.Authority;
import org.sophy.sophy.domain.enumerate.Authority;
import org.sophy.sophy.domain.Member;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.crypto.password.PasswordEncoder;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/sophy/sophy/domain/Book.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.sophy.sophy.domain;

import lombok.*;
import org.sophy.sophy.domain.enumerate.BookCategory;

import javax.persistence.*;

Expand Down
9 changes: 8 additions & 1 deletion src/main/java/org/sophy/sophy/domain/Booktalk.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.sophy.sophy.controller.dto.BooktalkUpdateDto;
import org.sophy.sophy.domain.dto.booktalk.BooktalkUpdateDto;
import org.sophy.sophy.domain.enumerate.BookCategory;
import org.sophy.sophy.domain.enumerate.BooktalkStatus;
import org.sophy.sophy.domain.enumerate.City;
import org.sophy.sophy.domain.enumerate.PreliminaryInfo;

import javax.persistence.*;
import java.time.LocalDateTime;
Expand All @@ -23,6 +27,8 @@ public class Booktalk extends AuditingTimeEntity {
@JoinColumn(name = "place_id")
private Place place;

private City city;

@Column(nullable = false)
private String title;

Expand Down Expand Up @@ -73,6 +79,7 @@ public void setPlace(Place place) {
}

this.place = place;
this.city = place.getCity();

if (!place.getBooktalkList().contains(this)) {
place.getBooktalkList().add(this);
Expand Down
14 changes: 0 additions & 14 deletions src/main/java/org/sophy/sophy/domain/City.java

This file was deleted.

4 changes: 3 additions & 1 deletion src/main/java/org/sophy/sophy/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.sophy.sophy.controller.dto.request.MemberAdditionalInfoDto;
import org.sophy.sophy.domain.dto.MyInfoDto;
import org.sophy.sophy.domain.dto.mypage.MyInfoDto;
import org.sophy.sophy.domain.enumerate.Authority;
import org.sophy.sophy.domain.enumerate.City;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/sophy/sophy/domain/Place.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.sophy.sophy.domain.enumerate.City;

import javax.persistence.*;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.sophy.sophy.controller.dto.request;
package org.sophy.sophy.domain.dto;

import lombok.Getter;
import org.sophy.sophy.domain.City;
import org.sophy.sophy.domain.enumerate.City;

import javax.validation.constraints.NotNull;

Expand Down
20 changes: 20 additions & 0 deletions src/main/java/org/sophy/sophy/domain/dto/HomeResponseDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.sophy.sophy.domain.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import org.sophy.sophy.domain.dto.booktalk.response.BooktalkDeadlineUpcomingDto;
import org.sophy.sophy.domain.enumerate.City;

import java.util.List;

@Getter
@AllArgsConstructor
@Builder
public class HomeResponseDto {
private Integer booktalkCount;
private Integer myCityBooktalkCount;
private List<BooktalkDeadlineUpcomingDto> booktalkDeadlineUpcoming;
private List<City> cityRanks;

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.sophy.sophy.controller.dto;
package org.sophy.sophy.domain.dto.booktalk;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.sophy.sophy.domain.BookCategory;
import org.sophy.sophy.domain.PreliminaryInfo;
import org.sophy.sophy.domain.enumerate.BookCategory;
import org.sophy.sophy.domain.enumerate.PreliminaryInfo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.controller.dto.request;
package org.sophy.sophy.domain.dto.booktalk.request;

import lombok.Getter;
import org.sophy.sophy.domain.Booktalk;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package org.sophy.sophy.controller.dto.request;
package org.sophy.sophy.domain.dto.booktalk.request;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.sophy.sophy.domain.*;
import org.sophy.sophy.domain.enumerate.BookCategory;
import org.sophy.sophy.domain.enumerate.BooktalkStatus;
import org.sophy.sophy.domain.enumerate.PreliminaryInfo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.controller.dto.response;
package org.sophy.sophy.domain.dto.booktalk.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.controller.dto.response;
package org.sophy.sophy.domain.dto.booktalk.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.controller.dto.response;
package org.sophy.sophy.domain.dto.booktalk.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package org.sophy.sophy.controller.dto.response;
package org.sophy.sophy.domain.dto.booktalk.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.sophy.sophy.domain.BookCategory;
import org.sophy.sophy.domain.enumerate.BookCategory;
import org.sophy.sophy.domain.Booktalk;
import org.sophy.sophy.domain.PreliminaryInfo;
import org.sophy.sophy.domain.enumerate.PreliminaryInfo;

import java.time.LocalDateTime;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.controller.dto.response;
package org.sophy.sophy.domain.dto.booktalk.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.sophy.sophy.domain.dto;
package org.sophy.sophy.domain.dto.mypage;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import org.sophy.sophy.domain.BookCategory;
import org.sophy.sophy.domain.enumerate.BookCategory;

@Getter
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.sophy.sophy.domain.dto;
package org.sophy.sophy.domain.dto.mypage;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import org.sophy.sophy.domain.City;
import org.sophy.sophy.domain.enumerate.City;

import javax.validation.constraints.Email;
import javax.validation.constraints.Pattern;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.sophy.sophy.domain.dto;
package org.sophy.sophy.domain.dto.mypage;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import org.sophy.sophy.domain.BooktalkStatus;
import org.sophy.sophy.domain.enumerate.BooktalkStatus;

import java.time.LocalDateTime;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.domain.dto;
package org.sophy.sophy.domain.dto.mypage;

import lombok.AllArgsConstructor;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.domain;
package org.sophy.sophy.domain.enumerate;

public enum Authority {
ROLE_USER, ROLE_ADMIN
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.domain;
package org.sophy.sophy.domain.enumerate;

public enum BookCategory {
//인문/문학/예술/과학/육아/일상_취미/어린이/청소년/IT_컴퓨터/자기계발/건강_요리/여행
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.domain;
package org.sophy.sophy.domain.enumerate;

public enum BooktalkStatus {
//개설 신청/장소 확정/청중 모집 중/모집 마감/완료
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/org/sophy/sophy/domain/enumerate/City.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.sophy.sophy.domain.enumerate;

public enum City {
UIJEONGBU_SI,
UIJEONGBU_DONG,
HOWON_DONG,
JANGAM_DONG,
SINGOK_DONG,
YOUNGHYUN_DONG,
MINRAK_DONG,
NAKYANG_DONG,
JAIL_DONG,
GEUMO_DONG,
GANEUNG_DONG,
NOKYANG_DONG,
GOSAN_DONG,
SANGOK_DONG,
UIJEONGBU1_DONG,
HOWON1_DONG,
HOWON2_DONG,
SINGOK1_DONG,
SINGOK2_DONG,
SONGSAN1_DONG,
SONGSAN2_DONG,
SONGSAN3_DONG,
JAGEUM_DONG,
HEUNGSUN_DONG


}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sophy.sophy.domain;
package org.sophy.sophy.domain.enumerate;

public enum PreliminaryInfo {
//미리 읽어와주세요 / 발췌문을 드려요 / 편하게와주세요
Expand Down
Loading

0 comments on commit a133520

Please sign in to comment.