Skip to content

Commit

Permalink
Merge branch 'dev' into feat/readNews
Browse files Browse the repository at this point in the history
  • Loading branch information
dokyung-kang authored Jan 11, 2025
2 parents 4ec4307 + 98743a2 commit b1d1f4f
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public enum ErrorStatus implements BaseErrorCode {

// News Error
NEWS_NOT_EXIST_FOUND(HttpStatus.BAD_REQUEST, "NEWS4001", "뉴스가 없습니다."),

//Store Error
STORE_NOT_FOUND(HttpStatus.NOT_FOUND, "STORE_4001","가게가 없습니다.");

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/banban/springboot/domain/entity/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,8 @@ public class Member {

@OneToMany(mappedBy = "member", cascade = CascadeType.ALL)
private List<News> NewsList = new ArrayList<>();

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "teamGroup_id", nullable = false)
private TeamGroup teamGroup;
}
22 changes: 19 additions & 3 deletions src/main/java/banban/springboot/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package banban.springboot.service;

import banban.springboot.domain.entity.Member;
import banban.springboot.domain.entity.TeamGroup;
import banban.springboot.repository.GroupRepository;
import banban.springboot.repository.MemberRepository;
import banban.springboot.web.dto.request.MemberRequestDTO;
import banban.springboot.web.dto.response.MemberResponseDTO;
Expand All @@ -13,12 +15,17 @@
@RequiredArgsConstructor
public class MemberService {
private final MemberRepository memberRepository;
private final GroupRepository groupRepository;

public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO, String groupKey) {
TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey)
.orElseThrow(() -> new RuntimeException("그룹키가 없습니다."));

public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO) {
//DTO to Entity
Member member = Member.builder()
.username(memberRequestDTO.getUsername())
.password(memberRequestDTO.getPassword())
.teamGroup(teamGroup)
.build();

//saved to repository
Expand All @@ -28,28 +35,37 @@ public MemberResponseDTO createUser(MemberRequestDTO memberRequestDTO) {
return MemberResponseDTO.builder()
.id(savedMember.getId())
.username(savedMember.getUsername())
.teamGroup(teamGroup)
.build();
}

//ID로 사용자 조회
public MemberResponseDTO findMemberById(Long id) {
public MemberResponseDTO findMemberById(Long id,String groupKey) {
TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey)
.orElseThrow(() -> new RuntimeException("그룹키가 없습니다."));

Member member = memberRepository.findById(id)
.orElseThrow(() -> new RuntimeException("사용자 조회를 할 수 없습니다."));

return MemberResponseDTO.builder()
.id(member.getId())
.username(member.getUsername())
.teamGroup(teamGroup)
.build();
}

//Username으로 사용자 조회
public MemberResponseDTO getMemberByUsername(String username) {
public MemberResponseDTO getMemberByUsername(String username, String groupKey) {
TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey)
.orElseThrow(() -> new RuntimeException("그룹키가 없습니다."));

Member member = memberRepository.findByUsername(username)
.orElseThrow(() -> new RuntimeException("사용자 조회를 할 수 없습니다."));

return MemberResponseDTO.builder()
.id(member.getId())
.username(member.getUsername())
.teamGroup(teamGroup)
.build();
}
}
1 change: 0 additions & 1 deletion src/main/java/banban/springboot/service/NewsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import banban.springboot.web.dto.request.NewsRequestDTO;
import banban.springboot.web.dto.response.NewsResponseDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package banban.springboot.web.controller;

import banban.springboot.apiPayload.ApiResponse;
import banban.springboot.service.GroupService;
import banban.springboot.service.MemberService;
import banban.springboot.web.dto.request.MemberRequestDTO;
import banban.springboot.web.dto.response.MemberResponseDTO;
Expand All @@ -15,22 +16,24 @@ public class MemberController {

private final MemberService memberService;


/* 사용자 생성 API*/
@PostMapping("/users/login")
public ApiResponse<MemberResponseDTO> createUser(@RequestBody @Valid MemberRequestDTO memberRequestDTO) {
MemberResponseDTO MemberResponseDTO = memberService.createUser(memberRequestDTO);
@PostMapping("{groupKey}/users/login")
public ApiResponse<MemberResponseDTO> createUser(@RequestBody @Valid MemberRequestDTO memberRequestDTO,@PathVariable("groupKey") String groupKey) {
MemberResponseDTO MemberResponseDTO = memberService.createUser(memberRequestDTO,groupKey);
return ApiResponse.onSuccess(MemberResponseDTO);}

/* ID로 사용자 조회 API */
@GetMapping("/users/login/{memberId}")
public ApiResponse<MemberResponseDTO> getUserById(@PathVariable Long memberId) {
MemberResponseDTO MemberResponseDTO = memberService.findMemberById(memberId);
@GetMapping("{groupKey}/users/login/{memberId}")
public ApiResponse<MemberResponseDTO> getUserById(@PathVariable Long memberId,@PathVariable("groupKey") String groupKey) {
MemberResponseDTO MemberResponseDTO = memberService.findMemberById(memberId,groupKey);
return ApiResponse.onSuccess(MemberResponseDTO);}

/**

Username으로 사용자 조회 API*/@GetMapping("/users/login/username")
public ApiResponse<MemberResponseDTO> getUserByUsername(@RequestParam String username) {
MemberResponseDTO MemberResponseDTO = memberService.getMemberByUsername(username);
Username으로 사용자 조회 API
*/
@GetMapping("{groupKey}/users/login/username")
public ApiResponse<MemberResponseDTO> getUserByUsername(@RequestParam String username,@PathVariable("groupKey") String groupKey) {
MemberResponseDTO MemberResponseDTO = memberService.getMemberByUsername(username,groupKey);
return ApiResponse.onSuccess(MemberResponseDTO);}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;
import org.springframework.web.multipart.MultipartFile;

import java.time.LocalDateTime;
Expand All @@ -24,6 +25,7 @@ public class NewsRequestDTO {

//private List<MultipartFile> images; // 사용자가 업로드한 이미지

@ColumnDefault("false")
private boolean isBreakingNews; // 속보 여부

@NotNull(message = "긍정인지 부정인지 작성해주세요")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package banban.springboot.web.dto.response;

import banban.springboot.domain.entity.TeamGroup;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -12,4 +13,5 @@
public class MemberResponseDTO {
private Long id;
private String username;
private TeamGroup teamGroup;
}

0 comments on commit b1d1f4f

Please sign in to comment.