diff --git a/src/main/java/myblog/blog/article/controller/ArticleController.java b/src/main/java/myblog/blog/article/controller/ArticleController.java index 56717b3..7b3c81c 100644 --- a/src/main/java/myblog/blog/article/controller/ArticleController.java +++ b/src/main/java/myblog/blog/article/controller/ArticleController.java @@ -8,8 +8,6 @@ import myblog.blog.article.service.ArticleService; import myblog.blog.category.dto.CategoryForView; import myblog.blog.category.dto.CategoryNormalDto; import myblog.blog.category.service.CategoryService; -import myblog.blog.comment.domain.Comment; -import myblog.blog.comment.dto.CommentDto; import myblog.blog.comment.dto.CommentDtoForSide; import myblog.blog.comment.service.CommentService; import myblog.blog.member.auth.PrincipalDetails; diff --git a/src/main/java/myblog/blog/article/domain/Article.java b/src/main/java/myblog/blog/article/domain/Article.java index b1fb615..18ef4cf 100644 --- a/src/main/java/myblog/blog/article/domain/Article.java +++ b/src/main/java/myblog/blog/article/domain/Article.java @@ -80,8 +80,4 @@ public class Article extends BasicEntity { this.category = category; } - public void deleteArticle(){ - this.articleTagLists = null; - this.parentCommentList = null; - } } diff --git a/src/main/java/myblog/blog/article/dto/ArticleForm.java b/src/main/java/myblog/blog/article/dto/ArticleForm.java index 31a31da..9d68f7f 100644 --- a/src/main/java/myblog/blog/article/dto/ArticleForm.java +++ b/src/main/java/myblog/blog/article/dto/ArticleForm.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; +import java.util.Objects; @Setter @Getter diff --git a/src/main/java/myblog/blog/member/auth/UserInfoFactory.java b/src/main/java/myblog/blog/member/auth/UserInfoFactory.java index 3103a04..3ee7d07 100644 --- a/src/main/java/myblog/blog/member/auth/UserInfoFactory.java +++ b/src/main/java/myblog/blog/member/auth/UserInfoFactory.java @@ -7,24 +7,27 @@ import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; -import java.util.function.Supplier; +import java.util.function.Function; @Component public class UserInfoFactory { + private final static Map> userInfoFactoryMap; + + static { + userInfoFactoryMap = new HashMap<>(); + userInfoFactoryMap.put("google", GoogleUserInfo::new); + userInfoFactoryMap.put("facebook", FacebookUserInfo::new); + userInfoFactoryMap.put("kakao", FacebookUserInfo::new); + userInfoFactoryMap.put("naver", FacebookUserInfo::new); + } + public Oauth2UserInfo makeOauth2UserinfoOf(OAuth2UserRequest oAuth2UserRequest, OAuth2User oAuth2User) { - if (oAuth2UserRequest.getClientRegistration().getRegistrationId().equals("google")) { - return new GoogleUserInfo(oAuth2User.getAttributes()); - } else if (oAuth2UserRequest.getClientRegistration().getRegistrationId().equals("facebook")) { - return new FacebookUserInfo(oAuth2User.getAttributes()); - } else if (oAuth2UserRequest.getClientRegistration().getRegistrationId().equals("kakao")) { - return new KakaoUserInfo(oAuth2User.getAttributes()); - } else if (oAuth2UserRequest.getClientRegistration().getRegistrationId().equals("naver")) { - return new NaverUserInfo(oAuth2User.getAttribute("response")); - } - else { - throw new IllegalArgumentException("지원하지 않는 Oauth 인증 시도입니다");} + return userInfoFactoryMap + .get(oAuth2UserRequest.getClientRegistration().getRegistrationId()) + .apply(oAuth2User); + } diff --git a/src/main/java/myblog/blog/member/auth/userinfo/FacebookUserInfo.java b/src/main/java/myblog/blog/member/auth/userinfo/FacebookUserInfo.java index 2d10ff6..c6ad7d5 100644 --- a/src/main/java/myblog/blog/member/auth/userinfo/FacebookUserInfo.java +++ b/src/main/java/myblog/blog/member/auth/userinfo/FacebookUserInfo.java @@ -1,5 +1,6 @@ package myblog.blog.member.auth.userinfo; +import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.stereotype.Component; import java.util.Map; @@ -9,8 +10,8 @@ public class FacebookUserInfo implements Oauth2UserInfo { private Map attributes; - public FacebookUserInfo(Map attributes) { - this.attributes = attributes; + public FacebookUserInfo(OAuth2User oAuth2User) { + this.attributes = oAuth2User.getAttributes(); } @Override diff --git a/src/main/java/myblog/blog/member/auth/userinfo/GoogleUserInfo.java b/src/main/java/myblog/blog/member/auth/userinfo/GoogleUserInfo.java index 8a71ead..c6cdac7 100644 --- a/src/main/java/myblog/blog/member/auth/userinfo/GoogleUserInfo.java +++ b/src/main/java/myblog/blog/member/auth/userinfo/GoogleUserInfo.java @@ -1,5 +1,6 @@ package myblog.blog.member.auth.userinfo; +import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.stereotype.Component; import java.util.Map; @@ -9,8 +10,8 @@ public class GoogleUserInfo implements Oauth2UserInfo{ private Map attributes; - public GoogleUserInfo(Map attributes) { - this.attributes = attributes; + public GoogleUserInfo(OAuth2User oAuth2User) { + this.attributes = oAuth2User.getAttributes(); } diff --git a/src/main/java/myblog/blog/member/auth/userinfo/KakaoUserInfo.java b/src/main/java/myblog/blog/member/auth/userinfo/KakaoUserInfo.java index 5285416..2831a9f 100644 --- a/src/main/java/myblog/blog/member/auth/userinfo/KakaoUserInfo.java +++ b/src/main/java/myblog/blog/member/auth/userinfo/KakaoUserInfo.java @@ -1,5 +1,6 @@ package myblog.blog.member.auth.userinfo; +import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.stereotype.Component; import java.util.Map; @@ -9,8 +10,8 @@ public class KakaoUserInfo implements Oauth2UserInfo { private Map attributes; - public KakaoUserInfo(Map attributes) { - this.attributes = attributes; + public KakaoUserInfo(OAuth2User oAuth2User) { + this.attributes = oAuth2User.getAttributes(); } @Override diff --git a/src/main/java/myblog/blog/member/auth/userinfo/NaverUserInfo.java b/src/main/java/myblog/blog/member/auth/userinfo/NaverUserInfo.java index 2016f1c..c6d00fb 100644 --- a/src/main/java/myblog/blog/member/auth/userinfo/NaverUserInfo.java +++ b/src/main/java/myblog/blog/member/auth/userinfo/NaverUserInfo.java @@ -1,5 +1,6 @@ package myblog.blog.member.auth.userinfo; +import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.stereotype.Component; import java.util.Map; @@ -9,8 +10,8 @@ public class NaverUserInfo implements Oauth2UserInfo { private Map attributes; - public NaverUserInfo(Map attributes) { - this.attributes = attributes; + public NaverUserInfo(OAuth2User oAuth2User) { + this.attributes = oAuth2User.getAttribute("response"); } @Override diff --git a/src/main/java/myblog/blog/member/auth/userinfo/Oauth2UserInfo.java b/src/main/java/myblog/blog/member/auth/userinfo/Oauth2UserInfo.java index 5b93970..def7eb0 100644 --- a/src/main/java/myblog/blog/member/auth/userinfo/Oauth2UserInfo.java +++ b/src/main/java/myblog/blog/member/auth/userinfo/Oauth2UserInfo.java @@ -16,4 +16,5 @@ public interface Oauth2UserInfo { Map getAttributes(); + } diff --git a/src/main/java/myblog/blog/member/doamin/PersistentLogins.java b/src/main/java/myblog/blog/member/doamin/PersistentLogins.java deleted file mode 100644 index 6fcfb1e..0000000 --- a/src/main/java/myblog/blog/member/doamin/PersistentLogins.java +++ /dev/null @@ -1,29 +0,0 @@ -package myblog.blog.member.doamin; - -import lombok.Getter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import java.time.LocalDateTime; - -@Table(name = "persistent_logins") -@Entity -@Getter -public class PersistentLogins { - - @Id - @Column(length = 64) - private String series; - - @Column(nullable = false, length = 64) - private String username; - - @Column(nullable = false, length = 64) - private String token; - - @Column(name = "last_used", nullable = false, length = 64) - private LocalDateTime lastUsed; - -} diff --git a/src/main/resources/static/js/thumbnail.js b/src/main/resources/static/js/thumbnail.js index 91014e1..7961197 100644 --- a/src/main/resources/static/js/thumbnail.js +++ b/src/main/resources/static/js/thumbnail.js @@ -1,8 +1,14 @@ + + + +const myModal = new bootstrap.Modal(document.getElementById('thumbnailModal'), {keyboard: false}); + const thumbBox = document.getElementById("thumbBox"); const uploadThumbBtn = document.getElementById("thumbnail"); const thumbDel = document.getElementById("thumbDelBtn"); const previewThumb = document.getElementById("thumbnailPreView"); -const thumbUrl = document.getElementById("thumbnailUrl") +const thumbUrl = document.getElementById("thumbnailUrl"); +const thumbUrlUploadBtn = document.getElementById("thumbnail-url-upload-btn"); function uploadImg(input) { @@ -21,13 +27,17 @@ function uploadImg(input) { if (xhr.readyState === 4 && xhr.status === 200) { thumbUrl.value = xhr.response; + previewThumb.src = thumbUrl.value; + + // 썸네일 등록은 서버에서 하도록 리팩토링할것 + // const reader = new FileReader(); + // reader.onload = e => { + // previewThumb.src = e.target.result; + // } + // reader.readAsDataURL(input.files[0]) - const reader = new FileReader(); - reader.onload = e => { - previewThumb.src = e.target.result; - } - reader.readAsDataURL(input.files[0]) thumbBox.style.display = '' + myModal.hide(); } else { alert("이미지가 정상적으로 업로드되지 못했습니다.") @@ -37,6 +47,16 @@ function uploadImg(input) { } + +thumbUrlUploadBtn.addEventListener("click", () =>{ + const thumbUrlUploadInput = document.getElementById("thumbnail-url-upload-input"); + const url = thumbUrlUploadInput.value; + previewThumb.src = url; + thumbUrl.value = url; + thumbBox.style.display = '' + myModal.hide(); +}) + uploadThumbBtn.addEventListener("change", e => { uploadImg(e.target); }) diff --git a/src/main/resources/templates/article/articleEditForm.html b/src/main/resources/templates/article/articleEditForm.html index 5fddca5..0f961ef 100644 --- a/src/main/resources/templates/article/articleEditForm.html +++ b/src/main/resources/templates/article/articleEditForm.html @@ -62,15 +62,35 @@
-
- - - - - - +
+ + + + +
+ + +
@@ -119,6 +139,7 @@
+ diff --git a/src/main/resources/templates/article/articleList.html b/src/main/resources/templates/article/articleList.html index 1aaf3da..f06f8b0 100644 --- a/src/main/resources/templates/article/articleList.html +++ b/src/main/resources/templates/article/articleList.html @@ -134,6 +134,8 @@
+ + diff --git a/src/main/resources/templates/article/articleListByKeyword.html b/src/main/resources/templates/article/articleListByKeyword.html index 299cb0b..40138b8 100644 --- a/src/main/resources/templates/article/articleListByKeyword.html +++ b/src/main/resources/templates/article/articleListByKeyword.html @@ -134,6 +134,8 @@
+ + diff --git a/src/main/resources/templates/article/articleListByTag.html b/src/main/resources/templates/article/articleListByTag.html index 365b124..df79bab 100644 --- a/src/main/resources/templates/article/articleListByTag.html +++ b/src/main/resources/templates/article/articleListByTag.html @@ -134,6 +134,9 @@ + + + diff --git a/src/main/resources/templates/article/articleView.html b/src/main/resources/templates/article/articleView.html index 5fe8fe8..0f9609c 100644 --- a/src/main/resources/templates/article/articleView.html +++ b/src/main/resources/templates/article/articleView.html @@ -51,7 +51,7 @@