Skip to content

Commit

Permalink
✨ [Feat] (#62) 모든 사용자 정보 불러오는 api 개발
Browse files Browse the repository at this point in the history
  • Loading branch information
seonyo committed Jun 8, 2024
1 parent f753e96 commit e01b0ec
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/main/java/com/MtoM/MtoM/domain/user/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
import com.MtoM.MtoM.domain.user.dto.req.LoginUserRequestDto;
import com.MtoM.MtoM.domain.user.dto.req.RegisterProfileInfoDto;
import com.MtoM.MtoM.domain.user.dto.req.RegisterRequestDto;
import com.MtoM.MtoM.domain.user.dto.res.FindAllUserResponseDto;
import com.MtoM.MtoM.domain.user.dto.res.FindByUserResponseDto;
import com.MtoM.MtoM.domain.user.service.UserService;
import com.MtoM.MtoM.global.S3Service.S3Service;
import lombok.RequiredArgsConstructor;
import org.apache.coyote.Response;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -72,4 +74,10 @@ public ResponseEntity<String> findByProfileImg(@PathVariable("userId") String us
public List<QnaPostResponse> getQnaPostsByUser(@PathVariable("userId") String userId) {
return postService.getQnaPostsByUser(userId);
}

@GetMapping
public ResponseEntity<List<FindAllUserResponseDto>> findAllUser(){
List<FindAllUserResponseDto> users = userService.findAllUser();
return ResponseEntity.ok().body(users);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.MtoM.MtoM.domain.user.dto.res;

import com.MtoM.MtoM.domain.user.domain.Gender;
import com.MtoM.MtoM.domain.user.domain.Major;
import com.MtoM.MtoM.domain.user.domain.UserDomain;
import com.MtoM.MtoM.domain.user.dto.Skill;
import lombok.Getter;

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

@Getter
public class FindAllUserResponseDto {
private String userId;
private String name;
private Long studentId;
private String birthday;
private Gender gender;
private String phonenumber;
private Major major;
private String email;
private String profile;
private String mbti;
private String personal;
private String imogi;
private String mentoring_topics;
private List<Skill> skills;

public FindAllUserResponseDto(UserDomain user){
this.userId = user.getId();
this.name = user.getName();
this.studentId = user.getStudent_id();
this.birthday = user.getBirthday();
this.gender = user.getGender();
this.phonenumber = user.getPhonenumber();
this.major = user.getMajor();
this.email = user.getEmail();
this.profile = user.getProfile();
this.mbti = user.getMbti();
this.personal = user.getPersonal();
this.imogi = user.getImogi();
this.mentoring_topics = user.getMentoring_topics();
this.skills = user.getSkillDomainList().stream()
.map(skillDomain -> new Skill(skillDomain.getSkill_name(), skillDomain.getSkill_score()))
.collect(Collectors.toList());
}
}
16 changes: 15 additions & 1 deletion src/main/java/com/MtoM/MtoM/domain/user/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.MtoM.MtoM.domain.user.dto.req.LoginUserRequestDto;
import com.MtoM.MtoM.domain.user.dto.req.RegisterProfileInfoDto;
import com.MtoM.MtoM.domain.user.dto.req.RegisterRequestDto;
import com.MtoM.MtoM.domain.user.dto.res.FindAllUserResponseDto;
import com.MtoM.MtoM.domain.user.dto.res.FindByUserResponseDto;
import com.MtoM.MtoM.domain.user.repository.SkillRepository;
import com.MtoM.MtoM.domain.user.repository.UserRepository;
Expand All @@ -17,9 +18,11 @@

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

@RequiredArgsConstructor
@Service
@Transactional
public class UserService {
private final UserRepository userRepository;
private final SkillRepository skillRepository;
Expand All @@ -36,7 +39,6 @@ public void registerUser(RegisterRequestDto requestDto){
userRepository.save(requestDto.toEntity(password));
}

@Transactional
public void registerProfileInfo(RegisterProfileInfoDto requestDto){
String id = requestDto.getUserId().getId();
checkId(id);
Expand Down Expand Up @@ -76,6 +78,7 @@ public String loginUser(LoginUserRequestDto requestDto){
return id;
}

@Transactional(readOnly = true)
public FindByUserResponseDto findByUser(String id){
checkId(id);

Expand All @@ -84,12 +87,23 @@ public FindByUserResponseDto findByUser(String id){
return new FindByUserResponseDto(user);
}


@Transactional(readOnly = true)
public List<FindAllUserResponseDto> findAllUser(){
List<UserDomain> users = userRepository.findAll();

return users.stream()
.map(FindAllUserResponseDto::new)
.collect(Collectors.toList());
}

public void duplicateId(String id){
if(userRepository.existsById(id)){
throw new IdDuplicateException("id duplicated", ErrorCode.ID_DUPLICATION);
}
}


public void duplicatedEmail(String email){
if(userRepository.existsByEmail(email)){
throw new EmailDuplicateException("email duplicated", ErrorCode.EMAIL_DUPLICATION);
Expand Down

0 comments on commit e01b0ec

Please sign in to comment.