Skip to content

Commit

Permalink
Merge pull request #24 from umc-5th-hackathon-team-I/feature/#16
Browse files Browse the repository at this point in the history
Feature/#16
  • Loading branch information
2hy2on authored Jan 2, 2024
2 parents 69da52b + c008fb3 commit 48cf743
Show file tree
Hide file tree
Showing 15 changed files with 86 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ public ApiResponse<CalendarMissionsResponse> getCalendar(@RequestParam Long memb
public ApiResponse<CalendarMissionIdResponse> completeMission(@RequestParam Long memberId, @RequestParam Long missionId) {
return ApiResponse.onSuccess(calendarService.completeMission(memberId, missionId));
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.teami.domain.calendar.entitty;


import com.teami.domain.member.dto.request.VisitorCommentReq;
import com.teami.domain.member.entitty.Member;
import com.teami.global.common.BaseEntity;
import jakarta.persistence.*;
Expand All @@ -20,10 +21,18 @@ public class CalendarVisitor extends BaseEntity {

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn
private Member member;
private Member owner;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn
private Calendar calendar;
private Member writer;

private String content;

public CalendarVisitor(VisitorCommentReq visitorCommentReq, Member owner, Member writer){
this.owner = owner;
this.writer = writer;
this.content = visitorCommentReq.getContent();

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.teami.domain.calendar.repository;

import com.teami.domain.calendar.entitty.CalendarVisitor;
import org.springframework.data.jpa.repository.JpaRepository;

public interface CalendarVisitorRepository extends JpaRepository<CalendarVisitor, Long> {

}
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,5 @@ public CalendarMission findCalendarMissionById(Long missionId) {
if(calendarMission.isEmpty()) throw new ExceptionHandler(ErrorStatus.MEMBER_NOT_FOUND);
return calendarMission.get();
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.teami.domain.friend.entity;
package com.teami.domain.friend.repository;


import com.teami.domain.friend.entity.Friend;
import com.teami.domain.member.entitty.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.teami.domain.friend.controller.dto.response.FriendCalendarInfo;
import com.teami.domain.friend.controller.dto.response.FriendListResponse;
import com.teami.domain.friend.entity.Friend;
import com.teami.domain.friend.entity.FriendRepository;
import com.teami.domain.friend.repository.FriendRepository;
import com.teami.domain.member.entitty.Member;
import com.teami.domain.member.service.MemberService;
import com.teami.global.apiPayload.ExceptionHandler;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.teami.domain.member.controller;

import com.teami.domain.member.dto.LoginRequest;
import com.teami.domain.member.dto.LoginResponse;
import com.teami.domain.member.dto.MemberRequest;
import com.teami.domain.member.dto.request.LoginRequest;
import com.teami.domain.member.dto.request.MemberRequest;
import com.teami.domain.member.dto.request.VisitorCommentReq;
import com.teami.domain.member.entitty.Member;
import com.teami.domain.member.service.MemberService;
import com.teami.global.apiPayload.ApiResponse;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
Expand All @@ -32,4 +34,12 @@ public ApiResponse<Member> login(@RequestBody LoginRequest loginRequest){
return ApiResponse.onSuccess(res);
}


@Operation(summary = "방명록 생성 API")
@PostMapping("/visitorComment")
public ApiResponse<Boolean> addVisitorComment(@RequestBody VisitorCommentReq visitorCommentReq){
memberService.addVisitorComment(visitorCommentReq);
return ApiResponse.onSuccess(null);
}

}
4 changes: 0 additions & 4 deletions src/main/java/com/teami/domain/member/dto/LoginResponse.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.teami.domain.member.dto;
package com.teami.domain.member.dto.request;

import lombok.Getter;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.teami.domain.member.dto;
package com.teami.domain.member.dto.request;

import com.teami.domain.member.entitty.Member;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.teami.domain.member.dto.request;

import lombok.Getter;

@Getter
public class VisitorCommentReq {
private Long ownerId;
private Long writerId;

private String content;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.teami.domain.member.dto.response;

public class LoginResponse {
}
2 changes: 1 addition & 1 deletion src/main/java/com/teami/domain/member/entitty/Member.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.teami.domain.member.entitty;

import com.teami.domain.member.dto.MemberRequest;
import com.teami.domain.member.dto.request.MemberRequest;
import com.teami.global.common.BaseEntity;
import jakarta.persistence.*;
import lombok.*;
Expand Down
33 changes: 28 additions & 5 deletions src/main/java/com/teami/domain/member/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
package com.teami.domain.member.service;

import com.teami.domain.member.dto.LoginRequest;
import com.teami.domain.member.dto.LoginResponse;
import com.teami.domain.member.dto.MemberRequest;
import com.teami.domain.calendar.entitty.CalendarVisitor;
import com.teami.domain.calendar.repository.CalendarVisitorRepository;
import com.teami.domain.friend.repository.FriendRepository;
import com.teami.domain.member.dto.request.LoginRequest;
import com.teami.domain.member.dto.request.MemberRequest;
import com.teami.domain.member.dto.request.VisitorCommentReq;
import com.teami.domain.member.entitty.Member;
import com.teami.domain.member.repository.MemberRepository;
import com.teami.global.apiPayload.ExceptionHandler;
import com.teami.global.apiPayload.code.status.ErrorStatus;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
@RequiredArgsConstructor
public class MemberService {
private final MemberRepository memberRepository;
private final FriendRepository friendRepository;
private final CalendarVisitorRepository calendarVisitorRepository;

public Member findMemberById(Long memberId) {
Optional<Member> member = memberRepository.findById(memberId);
Expand Down Expand Up @@ -79,4 +82,24 @@ public Member login(LoginRequest loginRequest) {
throw new ExceptionHandler(ErrorStatus.MEMBER_NOT_FOUND);
}
}

public Boolean addVisitorComment(VisitorCommentReq visitorCommentReq) {


Optional<Member> writer = memberRepository.findById(visitorCommentReq.getWriterId());
Optional<Member> owner = memberRepository.findById(visitorCommentReq.getOwnerId());

if(writer.isEmpty() || owner.isEmpty()){
throw new ExceptionHandler(ErrorStatus.FRIEND_NOT_FOUND);
}

if(friendRepository.findFriendByMember1AndMember2(owner.get(),writer.get()).isEmpty()){
throw new ExceptionHandler(ErrorStatus.FRIEND_NOT_FOUND);
}
else{
CalendarVisitor calendarVisitor = new CalendarVisitor(visitorCommentReq, owner.get(),writer.get());
calendarVisitorRepository.save(calendarVisitor);
return true;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ public enum ErrorStatus implements BaseErrorCode {
NICKNAME_EXIST(HttpStatus.BAD_REQUEST, "MEMBER4003", "이미 존재하는 닉네임 입니다."),
PASSWORD_NOT_FOUND(HttpStatus.BAD_REQUEST, "MEMBER4004", "비밀번호가 일치하지 않습니다."),


// 친구 관련 에러
SELF_FRIEND_REQUEST_NOT_ALLOWED(HttpStatus.BAD_REQUEST, "FRIEND4001", "본인과 친구 관계를 맺을 수 없습니다."),
FRIEND_NOT_FOUND(HttpStatus.NOT_FOUND, "FRIEND4041", "친구 관계를 찾을 수 없습니다."),
ALREADY_EXIST_FRIEND(HttpStatus.CONFLICT, "FRIEND4091", "이미 존재하는 친구 관계입니다."),


// 예시,,,
ARTICLE_NOT_FOUND(HttpStatus.NOT_FOUND, "ARTICLE4001", "게시글이 없습니다."),
TEMP_EXCEPTION(HttpStatus.BAD_REQUEST, "TEMP4001", "이거는 테스트"),
FOOD_CATEGORY_NOT_FOUND(HttpStatus.NOT_FOUND, "FOOD4001", "음식이이 없습니다."),
Expand Down

0 comments on commit 48cf743

Please sign in to comment.