Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
ecd3b56
프로핈 수정
mintaek22 Mar 4, 2023
5b86d18
메세지 수정
mintaek22 Mar 4, 2023
eece72e
자잘한 오류 수정
mintaek22 Mar 4, 2023
7861185
내 작업물 등록
MIN0225 Mar 4, 2023
a8a552e
pushh
MIN0225 Mar 4, 2023
4316c3c
cors 해결
mintaek22 Mar 4, 2023
c075d80
Merge pull request #8 from ProjectFRIDAY/reference
mintaek22 Mar 4, 2023
00510ec
cors 수정ㅇ
mintaek22 Mar 4, 2023
3cfc5ab
http only 변경
mintaek22 Mar 4, 2023
a75cc10
로그아웃 기능 구현 완료
mintaek22 Mar 5, 2023
1d2ddf3
닉네임 중복시 임의 닉네임(유저-{kakaoId}) 생성
jayrhie Mar 4, 2023
ab20695
카카오 로그인 한글 깨짐 문제 수정
jayrhie Mar 5, 2023
4f2ba71
클래스 세분화 및 file 일대일 대응
mintaek22 Mar 6, 2023
d61e260
Post File 일대다 재수정, Post에 File 저장되지 않는 문제 해결, 코드 정리
jayrhie Mar 7, 2023
b761e7c
테스트 코드 제거
jayrhie Mar 7, 2023
9650808
for->forEach 변경
jayrhie Mar 7, 2023
544d41e
내 작업물 목록 페이지 구현, Post 작성시 postingTime 등 초기 값 설정, 오탈자 수정(regist->regis…
jayrhie Mar 7, 2023
5f8d5de
Merge pull request #10 from ProjectFRIDAY/myReference
mintaek22 Mar 8, 2023
bda1209
remoa-BE 제거
mintaek22 Mar 8, 2023
f7da5fd
레퍼런스 등록에 썸네일 추가
mintaek22 Mar 9, 2023
f085b02
프로필 사진 확인 수정, aws에 저장
jeonkwanghwi Mar 11, 2023
aa0c2bf
Merge branch 'dev' into profile
mintaek22 Mar 11, 2023
050ba8a
Merge pull request #11 from ProjectFRIDAY/profile
mintaek22 Mar 11, 2023
5ba0614
프로필 사진관련 로직 ㅇ완료
mintaek22 Mar 11, 2023
79f28a5
Delete 오민택.jpg
mintaek22 Mar 11, 2023
37cb0bb
ResFeedbackDto 추가
MIN0225 Mar 11, 2023
d5fef39
fix: comment등록 post, member 등록하도록 수정. comment&feedback 등록시 반환되는 dto 삭제
MIN0225 Mar 12, 2023
27b9573
레퍼런스 등록 jpg도 가능
mintaek22 Mar 12, 2023
3b7154e
fix: comment&feedback 예외처리추가
MIN0225 Mar 12, 2023
e7e61b4
코멘트 예외처리 수정
mintaek22 Mar 12, 2023
162ee8a
comment에 대한 reply 기능 구현
jayrhie Mar 12, 2023
704ece4
Delete 오민택.jpg
mintaek22 Mar 12, 2023
d870743
comment, feedback에 reply 기능 추가
jayrhie Mar 12, 2023
e321f50
fix: feedback 등록시 페이지 수 예외처리 추가
MIN0225 Mar 12, 2023
1af38f1
kakaoController의 getCI 메서드의 로그인 처리시 member를 그대로 return해 무한 재귀호출되는 오류 …
jayrhie Mar 12, 2023
37e19f5
kakaoController의 getCI 메서드의 로그인 처리시 member를 그대로 return해 무한 재귀호출되는 오류 …
jayrhie Mar 12, 2023
ee6df44
사진 다운로드 문제 변경
mintaek22 Mar 12, 2023
e51806c
feat: comment 수정 기능 구현
MIN0225 Mar 12, 2023
ca62a3c
reply 기능 추가
jayrhie Mar 12, 2023
adce5e3
dev pull 하기 전 commit
MIN0225 Mar 12, 2023
52735e4
merge전 커밋
MIN0225 Mar 12, 2023
5dd7c65
refactor: comment 수정
MIN0225 Mar 12, 2023
73baf67
comment 삭제 구현
MIN0225 Mar 12, 2023
b5c23de
post, comment, feedback 초기 값 설정, ThumbnailReferenceDto에 memberId 추가
jayrhie Mar 12, 2023
f40c3b5
검색기능 추가
jeonkwanghwi Mar 12, 2023
3b910f1
Merge pull request #14 from ProjectFRIDAY/comment
mintaek22 Mar 12, 2023
2e050d6
검색 기능 추가 & 수정
jeonkwanghwi Mar 13, 2023
3fd8d94
Merge pull request #15 from ProjectFRIDAY/searchPost
mintaek22 Mar 13, 2023
dd1df21
레퍼런스 목록 보기 수정
mintaek22 Mar 14, 2023
24e53b8
paging기능 jpa 이용해서 구현, sorting 기능을 위해 Post/Comment/Feedback 작성 시간 Stri…
jayrhie Mar 14, 2023
daa4e99
주석 추가, paging 관련 로직 일부 수정
jayrhie Mar 14, 2023
7b2e51d
미사용 import문 소거
jayrhie Mar 14, 2023
c785685
feat: feedback 수정기능 구현
MIN0225 Mar 15, 2023
534a92f
feat: feedback 삭제기능 구현
MIN0225 Mar 15, 2023
31868cb
paging 구현, 시간 관련 필드 String->LocalDateTime으로 수정
jayrhie Mar 15, 2023
10dba68
paging 구현, 시간 관련 필드 String->LocalDateTime으로 수정
jayrhie Mar 15, 2023
42b6e73
feat: feedback 좋아요 기능구현
MIN0225 Mar 15, 2023
cd79959
jar bug fix
mintaek22 Mar 16, 2023
a329e61
Revert "jar bug fix"
mintaek22 Mar 16, 2023
95d81c8
상수명 변경
jayrhie Mar 16, 2023
ef30bc7
homepage 제작 완료
jayrhie Mar 16, 2023
69df9cb
내 레퍼런스 목록 category로 정렬 추가
jayrhie Mar 17, 2023
78db31a
/reference 페이징 추가해서 수정, 카카오 회원가입시 닉네임 중복되면 '유저-{6자리 난수}'로 설정, kakaoId…
jayrhie Mar 17, 2023
5e13e4c
/reference 페이징 추가해서 수정, 카카오 회원가입시 닉네임 중복되면 '유저-{6자리 난수}'로 설정, kakaoId…
jayrhie Mar 17, 2023
9d4f7b5
파일 유형 처리
mintaek22 Mar 18, 2023
d6e71ae
Merge branch 'dev' of https://github.com/ProjectFRIDAY/Remoa-BE into dev
mintaek22 Mar 18, 2023
0f58396
한페이지당 게시글 개수 12개로 수정
mintaek22 Mar 18, 2023
e9ba3d0
메서드 위치 변경
mintaek22 Mar 19, 2023
9b0f7ec
Merge pull request #17 from ProjectFRIDAY/feedback
mintaek22 Mar 19, 2023
2dcd7d0
feedback like default 0
mintaek22 Mar 19, 2023
b586dab
feat: 댓글 좋아요 기능 구현
MIN0225 Mar 19, 2023
13bdd76
카카오 받는값 변경
mintaek22 Mar 19, 2023
51be6bc
feat: 포스트 스크랩 기능 구현
MIN0225 Mar 19, 2023
9f34711
카카오 로직 변경
mintaek22 Mar 19, 2023
9e966c2
받은 피드백 목록 구현
jayrhie Mar 19, 2023
8420959
받은 피드백 목록 구현
jayrhie Mar 19, 2023
e1af2eb
Merge pull request #18 from ProjectFRIDAY/myReceivedComment
mintaek22 Mar 19, 2023
f674ec9
피드백 관리 res 변경 및 paging 코드 검색 기능 추가
mintaek22 Mar 20, 2023
544e576
Post, UploadPostForm에 유튜브 링크 추가
MIN0225 Mar 20, 2023
223ed36
레퍼런스 작성 유튜브 링크도 작서앟ㄹ 수 있도록 수정
MIN0225 Mar 20, 2023
cb6069f
bugfix: 내 작업물 목록 정렬 oldest -> view로 정렬 옵션 변경, 받은 피드백 관리와 PAGE_SIZE 상수…
jayrhie Mar 21, 2023
a58c236
bugfix: 내 작업물 목록 정렬 oldest -> view로 정렬 옵션 변경, 받은 피드백 관리와 PAGE_SIZE 상수…
jayrhie Mar 21, 2023
878b138
bugfix: 내 작업물 목록 정렬 oldest -> view로 정렬 옵션 변경, 받은 피드백 관리와 PAGE_SIZE 상수…
jayrhie Mar 21, 2023
bcfd406
사용하지 않는 메서드 제거
jayrhie Mar 21, 2023
7a7e108
feat: 마이페이지 팔로잉 관리 구현
MIN0225 Mar 21, 2023
1a9348e
feat: 마이페이지 팔로워 관리 화면
MIN0225 Mar 21, 2023
37a1199
fix: MyFollowingService에서 findResMypageList 메서드 내 for문에서 userName넣는 파…
MIN0225 Mar 21, 2023
47b9be9
Merge pull request #19 from ProjectFRIDAY/mypageFollow
MIN0225 Mar 21, 2023
b9ec8cc
bugfix: 받은 피드백 관리에서 피드백 없는 Post 조회하는 버그 수정
jayrhie Mar 21, 2023
665918d
mypostservice title 추가
mintaek22 Mar 22, 2023
9bec3cc
레퍼런스 상세보기
jeonkwanghwi Mar 22, 2023
7023cc2
테스트 맵핑 제거
jayrhie Mar 22, 2023
442144f
페이지 param삭제, 로그인 인증 로직 삭제, 조회수 증가 부분 @Transactional 추가
jayrhie Mar 22, 2023
25c17fc
Merge branch 'referenceViewer' into dev
jayrhie Mar 22, 2023
5ed28dc
feat: 내 활동 관리 구현
jayrhie Mar 22, 2023
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
Binary file modified .DS_Store
Binary file not shown.
8 changes: 6 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@ dependencies {
// S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// h2 db 추가
implementation "com.h2database:h2"

//ModelMapper 라이브러리 추가
implementation 'org.modelmapper:modelmapper:2.4.2'

//파일 관련
implementation 'org.apache.pdfbox:pdfbox:2.0.24'
}

tasks.named('test') {
Expand Down
Binary file removed build/libs/BE-ver_230228.jar
Binary file not shown.
Binary file removed build/libs/BE-ver_230301.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,13 @@
import Remoa.BE.Member.Service.FollowService;
import Remoa.BE.Member.Service.MemberService;
import Remoa.BE.exception.CustomMessage;
import Remoa.BE.exception.response.ErrorResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import java.util.Arrays;
import java.util.List;
import java.util.Objects;

Expand All @@ -27,7 +22,6 @@
@RestController
@Slf4j
@RequiredArgsConstructor
@CrossOrigin(origins = "*")
public class FollowController {

private final FollowService followService;
Expand Down
87 changes: 34 additions & 53 deletions src/main/java/Remoa/BE/Member/Controller/KakaoController.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
import Remoa.BE.Member.Dto.Res.ResSignupDto;
import Remoa.BE.Member.Service.KakaoService;
import Remoa.BE.Member.Service.MemberService;
import Remoa.BE.Member.Service.ProfileService;
import Remoa.BE.exception.CustomMessage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Map;
import java.util.Optional;
import java.util.Random;

import static Remoa.BE.exception.CustomBody.*;
import static Remoa.BE.utill.MemberInfo.*;
Expand All @@ -28,12 +28,13 @@
@RestController
@Slf4j
@RequiredArgsConstructor
@CrossOrigin(origins = "*") // 프론트에서 추가 요청
public class KakaoController {



private final KakaoService ks;
private final MemberService memberService;
private final HttpSession httpSession;
private final ProfileService profileService;

/**
* 카카오 로그인을 통해 code를 query string으로 받아오면, 코드를 통해 토큰, 토큰을 통해 사용자 정보를 얻어와 db에 해당 사용자가 존재하는지 여부를
Expand Down Expand Up @@ -62,42 +63,39 @@ public ResponseEntity<Object> getCI(@RequestParam String code, HttpServletReques
if (member.isPresent()) {
securityLoginWithoutLoginForm(member.get(), request);
//if문에 걸리지 않았다면 이미 회원가입이 진행돼 db에 kakaoId가 있는 유저이므로 kakaoMember가 존재하므로 LoginController처럼 로그인 처리 하면 됩니다.
return successResponse(CustomMessage.OK, userInfo);
return successResponse(CustomMessage.OK, member.get().getNickname());

} else {
//kakaoId가 db에 없으므로 kakaoMember가 null이므로 회원가입하지 않은 회원. 따라서 회원가입이 필요하므로 회원가입하는 uri로 redirect 시켜주어야 함.
return successResponse(CustomMessage.OK_SIGNUP, userInfo);
}
}

/**
* 카카오 로그인을 우회해 테스트 하기 위한 용도로 추가됨.
* @param kakaoId
* @return ResponseEntity
*/
@PostMapping("/login/kakao/test")
public ResponseEntity<Object> testLogin(@RequestBody Integer kakaoId, HttpServletRequest request) {
log.warn("kakaoId = {}", kakaoId);
Optional<Member> findMember = memberService.findByKakaoId(Long.valueOf(kakaoId));
if (findMember.isPresent()) {
Member member = findMember.get();
securityLoginWithoutLoginForm(member, request);
return successResponse(CustomMessage.OK, member);
}
return failResponse(CustomMessage.VALIDATED, "User Not Exist");
}

/**
* front-end에서 회원가입에 필요한 정보를 넘겨주면 KakaoSignupForm으로 받아 회원가입을 진행시켜줌
*/
@PostMapping("/signup/kakao")
public ResponseEntity<Object> signupKakaoMember(@RequestBody @Validated ReqSignupDto form, HttpServletRequest request) {
public ResponseEntity<Object> signupKakaoMember(@RequestBody @Validated ReqSignupDto form, HttpServletRequest request) throws IOException {

Member member = new Member();
Random random = new Random();

//닉네임 사용 가능하면 그대로 진행, 불가능하면 임의 닉네임 "유저-{randomInt}로 지정.
String randomNumber = Integer.toString((random.nextInt(900_000) + 100_000)); // 100_000 ~ 999_999
boolean nicknameDuplicate = memberService.isNicknameDuplicate("유저-" + randomNumber);
while (nicknameDuplicate) { //특수문자는 닉네임에 사용할 수 없으나 임의로 지정하는 닉네임에는 사용 가능하게 해서 또 다른 중복 문제 없게끔.
randomNumber = Integer.toString((random.nextInt(900_000) + 100_000)); // 100_000 ~ 999_999
nicknameDuplicate = memberService.isNicknameDuplicate("유저-" + randomNumber);
}
member.setNickname("유저-" + randomNumber);


//카카오에서 받은 프로필 사진 url 링크를 토대로 s3에 저장
if (memberService.findByKakaoId(form.getKakaoId()).isPresent()) {
return failResponse(CustomMessage.VALIDATED, "kakaoId가 이미 가입되어 있습니다.");
}
member.setKakaoId(form.getKakaoId());
member.setEmail(form.getEmail());
member.setNickname(form.getNickname());
member.setProfileImage(form.getProfileImage());
member.setTermConsent(form.getTermConsent());

memberService.join(member);
Expand All @@ -114,39 +112,22 @@ public ResponseEntity<Object> signupKakaoMember(@RequestBody @Validated ReqSignu
return successResponse(CustomMessage.OK,result);
}

/**
*자동 로그인 추후에
*/
/*
@GetMapping("/login")
public ResponseEntity<Object> autoLogin(){
Long kaKaoId = getKaKaoId();
Optional<Member> member = memberService.findByKakaoId(kaKaoId);
if(member.isPresent()){
return successResponse(CustomMessage.OK,member);
}
else{
return errorResponse(CustomMessage.UNAUTHORIZED);
}

}
*/

/**
* 로그아웃 기능
세션무효화, jsession쿠키를 제거,
*/
@PostMapping("/user/logout")
public ResponseEntity<Object> logout(HttpServletResponse response){
@PostMapping ("/user/logout")
public ResponseEntity<Object> logout(HttpServletRequest request){
if(authorized(request)) {

SecurityContextHolder.clearContext();
request.getSession().invalidate();

SecurityContextHolder.clearContext(); // 현재 SecurityContext를 제거합니다.
httpSession.invalidate(); // HttpSession을 무효화합니다.
return new ResponseEntity<>(HttpStatus.OK);

}

Cookie myCookie = new Cookie("JSESSIONID", null);
myCookie.setMaxAge(0); // 쿠키의 expiration 타임을 0으로 하여 없앤다.
myCookie.setPath("/"); // 모든 경로에서 삭제 됬음을 알린다.
response.addCookie(myCookie);
return successResponse(CustomMessage.OK,myCookie);
return errorResponse(CustomMessage.UNAUTHORIZED);
}


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package Remoa.BE.Member.Controller;

import Remoa.BE.Member.Domain.Member;
import Remoa.BE.Member.Dto.Res.ResMypageFollowing;
import Remoa.BE.Member.Service.MemberService;
import Remoa.BE.Member.Service.MyFollowingService;
import Remoa.BE.exception.CustomMessage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

import static Remoa.BE.exception.CustomBody.errorResponse;
import static Remoa.BE.exception.CustomBody.successResponse;
import static Remoa.BE.utill.MemberInfo.authorized;
import static Remoa.BE.utill.MemberInfo.getMemberId;

@RestController
@Slf4j
@RequiredArgsConstructor
public class MyFollowingController {

private final MemberService memberService;

private final MyFollowingService myFollowingService;

@GetMapping("/mypage/following") // 마이페이지 팔로잉 관리화면
public ResponseEntity<Object> mypageFollowing(HttpServletRequest request){
if(authorized(request)){
Long myMemberId = getMemberId();
Member member = memberService.findOne(myMemberId);
ResMypageFollowing resMypageFollowing = myFollowingService.mypageFollowing(member);

return successResponse(CustomMessage.OK, resMypageFollowing);
}
return errorResponse(CustomMessage.UNAUTHORIZED);
}

@GetMapping("/mypage/follower") // 마이페이지 팔로워 관리화면
public ResponseEntity<Object> mypageFollower(HttpServletRequest request){
if(authorized(request)){
Long myMemberId = getMemberId();
Member member = memberService.findOne(myMemberId);
ResMypageFollowing resMypageFollower = myFollowingService.mypageFollower(member);

return successResponse(CustomMessage.OK, resMypageFollower);
}
return errorResponse(CustomMessage.UNAUTHORIZED);
}

}
Loading