Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[jangbagoony팀 이노 & MJ] OAuth 구현, 로그인, 로그아웃 API 구현 #67

Open
wants to merge 43 commits into
base: jangbagoony
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6aa804d
Refactor: dish 테이블에 manyToOne 관계를 설정하기 위해 스키마와 데이터 수정
eNoLJ Apr 27, 2021
9d03e7e
Refactor: dish 엔티티 클래스에 oneToMany 매핑 적용
eNoLJ Apr 27, 2021
df1e5f6
Refactor: DetailImage, DishBadge, Image 클래스에 dishId 멤버변수 제거
eNoLJ Apr 27, 2021
d864fc7
Refactor: DetailDishDTO, DishResponseDTO 생성자의 매개변수 수정
eNoLJ Apr 27, 2021
6f68d80
Refactor: DishService 리팩토링
eNoLJ Apr 27, 2021
a9359ee
Chore: Dish 클래스에 oneToMany 관계 매핑이 설정 됨에 따라 불필요해진 클래스 삭제
eNoLJ Apr 27, 2021
723183b
Feat: gitignore 파일에 oauth.properties 파일 추가
eNoLJ Apr 28, 2021
9927adf
Feat: user 스키마 생성
eNoLJ Apr 28, 2021
6f1741c
Feat: User, UserRepository 클래스 생성
eNoLJ Apr 28, 2021
5613928
Feat: UserController 생성
eNoLJ Apr 28, 2021
6bd1259
Feat: TokenResponseDTO 클래스 생성
eNoLJ Apr 28, 2021
c8941b7
Feat: data 추가
Apr 29, 2021
0407f81
Merge pull request #67 from skawnkk/be/feat/data
MJbae Apr 29, 2021
33dd601
Merge pull request #68 from skawnkk/be/feature/refactor
eNoLJ Apr 29, 2021
4b8befa
Merge branch 'dev-be' of https://github.com/skawnkk/sidedish into dev-be
eNoLJ Apr 29, 2021
b2af3cc
Merge branch 'be/feature/oauth' of https://github.com/skawnkk/sidedis…
eNoLJ Apr 29, 2021
776c70f
feat: 데이터 변경
Apr 29, 2021
0524fc4
Merge pull request #69 from skawnkk/be/feat/add_data
MJbae Apr 29, 2021
d3f321c
fix: data hash 변경
Apr 29, 2021
a30999e
Merge branch 'dev-be' of https://github.com/skawnkk/sidedish into be/…
eNoLJ Apr 29, 2021
8eea57a
fix: cors 전면 허용
Apr 29, 2021
8e9697e
Merge branch 'dev-be' of https://github.com/skawnkk/sidedish into be/…
eNoLJ Apr 29, 2021
ea963cc
fix: 각 dish id에 따라 image 맵핑
Apr 29, 2021
9931723
Merge branch 'dev-be' of https://github.com/skawnkk/sidedish into be/…
eNoLJ Apr 29, 2021
59debf3
Feat: UserService 클래스 생성
eNoLJ Apr 29, 2021
1e39cc5
Feat: User 클래스에 생성자와 update 메소드 생성
eNoLJ Apr 29, 2021
e9615a1
Feat: UserRepository 인터페이스에 findByUserId 생성
eNoLJ Apr 29, 2021
101c4a7
Feat: User 정보를 전달하는 DTO 생성
eNoLJ Apr 29, 2021
df1d29f
Feat: user 테이블의 id를 AUTO_INCREMENT 설정
eNoLJ Apr 29, 2021
914a8eb
Feat: User 클래스에 getter 메소드 생성
eNoLJ Apr 29, 2021
3ddcfc4
Feat: UserResponseDTO 클래스 생성
eNoLJ Apr 29, 2021
608993f
Feat: UserService 클래스의 메소드 수정
eNoLJ Apr 29, 2021
423ebf8
Feat: User 테이블 스키마 수정
eNoLJ Apr 29, 2021
131f40a
Feat: User 클래스에 기본 생성자 생성, removeToken 메소드 생성
eNoLJ Apr 29, 2021
e87c930
Feat: UserController 클래스에 logout 메소드 생성
eNoLJ Apr 29, 2021
4071738
Feat: UserService 클래스에 logout 메소드 생성
eNoLJ Apr 29, 2021
73b2daf
Feat: UserRepository 인터페이스에 findByEmail, findByToken 메소드 생성
eNoLJ Apr 29, 2021
2266a10
Merge pull request #73 from skawnkk/be/feature/oauth
eNoLJ Apr 30, 2021
ad6d179
fix: userController에 cors 허용에 따른 관련 에러 방지
Apr 30, 2021
a3adbec
Feat: user 테이블에 name 컬럼 null 허용
eNoLJ Apr 30, 2021
811b919
Feat: GitHubUrl 이넘 생성
eNoLJ Apr 30, 2021
5ff87bc
Refactor: GitHubUrl 이넘을 사용하여 UserService 리팩토링
eNoLJ Apr 30, 2021
f84f5f0
refactor: 이미지 변경
Apr 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,5 @@ gradle-app.setting
.idea/workspace.xml
.idea/modules.xml
.idea/jarRepositories.xml

BE/src/main/resources/oauth.properties
48 changes: 24 additions & 24 deletions BE/src/main/java/com/mj_eno/sidedish/config/MyCorsFilter.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
package com.mj_eno.sidedish.config;

import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

public class MyCorsFilter extends CorsFilter {

public MyCorsFilter() {
super(configurationSource());
}

private static UrlBasedCorsConfigurationSource configurationSource() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("http://15.164.68.136/");
config.addAllowedOrigin("http://localhost:3000/");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return source;
}
}
//package com.mj_eno.sidedish.config;
//
//import org.springframework.web.cors.CorsConfiguration;
//import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
//import org.springframework.web.filter.CorsFilter;
//
//public class MyCorsFilter extends CorsFilter {
//
// public MyCorsFilter() {
// super(configurationSource());
// }
//
// private static UrlBasedCorsConfigurationSource configurationSource() {
// CorsConfiguration config = new CorsConfiguration();
// config.setAllowCredentials(true);
// config.addAllowedOrigin("http://15.164.68.136/");
// config.addAllowedOrigin("http://localhost:3000/");
// config.addAllowedHeader("*");
// config.addAllowedMethod("*");
// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// source.registerCorsConfiguration("/**", config);
// return source;
// }
//}
5 changes: 0 additions & 5 deletions BE/src/main/java/com/mj_eno/sidedish/domain/Image/Image.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ public class Image {
private Long id;
private String url;
private boolean top;
private int dishId;

public Long getId() {
return id;
Expand All @@ -21,8 +20,4 @@ public String getUrl() {
public boolean isTop() {
return top;
}

public int getDishId() {
return dishId;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ public class DetailImage {
@Id
private Long id;
private String url;
private int dishId;

public Long getId() {
return id;
Expand All @@ -16,8 +15,4 @@ public Long getId() {
public String getUrl() {
return url;
}

public int getDishId() {
return dishId;
}
}

This file was deleted.

54 changes: 46 additions & 8 deletions BE/src/main/java/com/mj_eno/sidedish/domain/dish/Dish.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package com.mj_eno.sidedish.domain.dish;

import com.mj_eno.sidedish.domain.Image.Image;
import com.mj_eno.sidedish.domain.detailImage.DetailImage;
import com.mj_eno.sidedish.domain.dishBadge.DishBadge;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Embedded;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Dish {

@Id
Expand All @@ -18,12 +25,41 @@ public class Dish {
private Delivery delivery;
private int menuCategoryId;
private Integer bestMenuCategoryId;
private List<Image> images = new ArrayList<>();
private List<DetailImage> detailImages = new ArrayList<>();
private List<DishBadge> dishBadges = new ArrayList<>();

public Dish(String hash, int stock) {
this.hash = hash;
this.stock = stock;
}

public String getTopImageUrl() {
return images.stream()
.filter(Image::isTop)
.map(Image::getUrl)
.collect(Collectors.toList())
.get(0);
Comment on lines +41 to +42
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.findFirst() 를 쓰면 예외 처리까지 잘 할 수 있겠네요.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분 리스트에서는 어떻게 예외처리를 하지? 싶었다가 넘긴 부분이였는데 findFirst()라는 메소드가 있군요. 참고하겠습니다. 감사해요!!ㅎㅎ

}

public List<String> getImagesUrl() {
return images.stream()
.map(Image::getUrl)
.collect(Collectors.toList());
}

public List<String> getDetailImagesUrl() {
return detailImages.stream()
.map(DetailImage::getUrl)
.collect(Collectors.toList());
}

public List<Integer> getBadgesId() {
return dishBadges.stream()
.map(DishBadge::getBadgeId)
.collect(Collectors.toList());
}

public void order(Dish dish) {
this.stock -= dish.stock;
}
Expand Down Expand Up @@ -97,13 +133,15 @@ public int getBestMenuCategoryId() {
return bestMenuCategoryId;
}

@Override
public String toString() {
return "Dish{" +
"title='" + title + '\'' +
", description='" + description + '\'' +
", menuCategoryId=" + menuCategoryId +
", bestMenuCategoryId=" + bestMenuCategoryId +
'}';
public List<Image> getImages() {
return images;
}

public List<DetailImage> getDetailImages() {
return detailImages;
}

public List<DishBadge> getDishBadges() {
return dishBadges;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,12 @@ public class DishBadge {

@Id
private Long id;
private int dishId;
private int badgeId;

public Long getId() {
return id;
}

public int getDishId() {
return dishId;
}

public int getBadgeId() {
return badgeId;
}
Expand Down

This file was deleted.

67 changes: 67 additions & 0 deletions BE/src/main/java/com/mj_eno/sidedish/domain/user/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.mj_eno.sidedish.domain.user;

import com.mj_eno.sidedish.web.dto.EmailDTO;
import com.mj_eno.sidedish.web.dto.TokenDTO;
import com.mj_eno.sidedish.web.dto.UserInfoDTO;
import org.springframework.data.annotation.Id;

public class User {

@Id
private Long id;
private String name;
private String email;
private String userId;
private String token;

public User() {}

public User(UserInfoDTO userInfoDTO, EmailDTO emailDTO, TokenDTO tokenDTO) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DTO에서 정보를 가져오는 구현이 꼭 필요하다면, 별도의 스태틱 메소드나 빌더를 활용해 주시고요,
가급적이면 생성자는 필드 그대로, 타입 그대로 받는 것이 좋다고 생각합니다.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오홍!! 그렇군요. 타입을 그대로 받는 생성자를 만들고 스태틱 메소드를 활용하도록 하겠습니다. 지적해 주신 부분 생각해보니까 타입을 그대로 받는 생성자가 좀 더 범용성?이 있겠네요!! 감사합니다.

this.name = userInfoDTO.getName();
this.email = emailDTO.getEmail();
this.userId = userInfoDTO.getLogin();
this.token = tokenDTO.getAccess_token();
}

public void update(UserInfoDTO userInfoDTO, EmailDTO emailDTO, TokenDTO tokenDTO) {
this.name = userInfoDTO.getName();
this.email = emailDTO.getEmail();
this.userId = userInfoDTO.getLogin();
this.token = tokenDTO.getAccess_token();
}

public void removeToken() {
this.token = null;
}

public Long getId() {
return id;
}

public String getName() {
return name;
}

public String getEmail() {
return email;
}

public String getUserId() {
return userId;
}

public String getToken() {
return token;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", userId='" + userId + '\'' +
", token='" + token + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.mj_eno.sidedish.domain.user;

import org.springframework.data.repository.CrudRepository;

import java.util.Optional;

public interface UserRepository extends CrudRepository<User, Long> {

Optional<User> findByEmail(String email);

Optional<User> findByToken(String token);
}
37 changes: 0 additions & 37 deletions BE/src/main/java/com/mj_eno/sidedish/service/BadgeService.java

This file was deleted.

38 changes: 0 additions & 38 deletions BE/src/main/java/com/mj_eno/sidedish/service/CategoryService.java

This file was deleted.

Loading