Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 added .DS_Store
Binary file not shown.
Binary file added .gradle/8.8/checksums/checksums.lock
Binary file not shown.
Empty file.
Binary file added .gradle/8.8/fileChanges/last-build.bin
Binary file not shown.
Binary file added .gradle/8.8/fileHashes/fileHashes.lock
Binary file not shown.
Empty file added .gradle/8.8/gc.properties
Empty file.
Binary file added .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
2 changes: 2 additions & 0 deletions .gradle/buildOutputCleanup/cache.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#Mon Sep 02 17:21:05 KST 2024
gradle.version=8.8
Empty file added .gradle/vcs-1/gc.properties
Empty file.
1 change: 1 addition & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules/backend.main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added backend/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ bin/

### IntelliJ IDEA ###
.idea
.idea/
*.iws
*.iml
*.ipr
Expand Down
1 change: 1 addition & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ ext {

dependencies {
// Spring Boot starters
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
Expand Down
Binary file added backend/src/.DS_Store
Binary file not shown.
Binary file added backend/src/main/.DS_Store
Binary file not shown.
Binary file added backend/src/main/java/.DS_Store
Binary file not shown.
Binary file added backend/src/main/java/com/.DS_Store
Binary file not shown.
Binary file modified backend/src/main/java/com/metlab_project/.DS_Store
Binary file not shown.
Binary file modified backend/src/main/java/com/metlab_project/backend/.DS_Store
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package com.metlab_project.backend.controller.chatroom;

import com.metlab_project.backend.domain.dto.chatroom.ChatroomCreateRequest;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
Expand All @@ -8,54 +9,65 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/chatroom")
public class ChatroomController {
public class ChatRoomController {

@GetMapping("/list")
@Operation(summary="WAITING 상태인 채팅룸 목록 불러오기", description="WAITING 상태인 채팅룸의 목록을 불러옵니다.")
@Operation(summary = "WAITING 상태인 채팅룸 목록 불러오기", description = "WAITING 상태인 채팅룸의 목록을 불러옵니다.")
public ResponseEntity<?> getAllChatroomList() {
try {

} catch () {
// TODO: 채팅룸 목록을 불러오는 로직을 구현하세요.
} catch (Exception e) {
// TODO: 예외 처리 로직을 구현하세요.
return ResponseEntity.status(500).body("서버 오류가 발생했습니다.");
}
return ResponseEntity.ok("채팅룸 목록"); // TODO: 실제 데이터를 반환하도록 수정하세요.
}

@GetMapping("/list/{schoolEmail}")
@Operation(summary="유저가 참여하고 있는 채팅룸 목록 불러오기", description="유저가 참여하고 있는 채팅룸의 목록을 불러옵니다.")
public ResponseEntity<?> getChatroomList(@PathVariable String schoolEmail){
try{

}catch(){

@Operation(summary = "유저가 참여하고 있는 채팅룸 목록 불러오기", description = "유저가 참여하고 있는 채팅룸의 목록을 불러옵니다.")
public ResponseEntity<?> getChatroomList(@PathVariable String schoolEmail) {
try {
// TODO: 유저가 참여하고 있는 채팅룸 목록을 불러오는 로직을 구현하세요.
} catch (Exception e) {
// TODO: 예외 처리 로직을 구현하세요.
return ResponseEntity.status(500).body("서버 오류가 발생했습니다.");
}
return ResponseEntity.ok("참여 중인 채팅룸 목록"); // TODO: 실제 데이터를 반환하도록 수정하세요.
}

@GetMapping("/{chatroomid}/participant")
@Operation(summary="특정 채팅룸의 참여자 목록 불러오기", description="특정 채팅룸의 참여자 목록을 불러옵니다.")
public ResponseEntity<?> getChatroomParticipant(@PathVariable("chatroomid") String chatroomId){
try{

}catch(){

@Operation(summary = "특정 채팅룸의 참여자 목록 불러오기", description = "특정 채팅룸의 참여자 목록을 불러옵니다.")
public ResponseEntity<?> getChatroomParticipant(@PathVariable("chatroomid") String chatroomId) {
try {
// TODO: 특정 채팅룸의 참여자 목록을 불러오는 로직을 구현하세요.
} catch (Exception e) {
// TODO: 예외 처리 로직을 구현하세요.
return ResponseEntity.status(500).body("서버 오류가 발생했습니다.");
}
return ResponseEntity.ok("채팅룸 참여자 목록"); // TODO: 실제 데이터를 반환하도록 수정하세요.
}

@PostMapping
@Operation(summary="채팅룸 생성하기", description="채팅룸을 생성합니다.")
public ResponseEntity<?> createChatroom(@RequestBody ChatroomCreateRequest request){
try{

}catch(){

@Operation(summary = "채팅룸 생성하기", description = "채팅룸을 생성합니다.")
public ResponseEntity<?> createChatroom(@RequestBody ChatroomCreateRequest request) {
try {
// TODO: 채팅룸을 생성하는 로직을 구현하세요.
} catch (Exception e) {
// TODO: 예외 처리 로직을 구현하세요.
return ResponseEntity.status(500).body("서버 오류가 발생했습니다.");
}
return ResponseEntity.ok("채팅룸 생성 완료"); // TODO: 실제 데이터를 반환하도록 수정하세요.
}

@PostMapping("/activate")
@Operation(summary="채팅룸 활성화 하기", description="채팅룸의 상태를 active로 전환합니다.")
public ResponseEntity<?> activeChatroom(){
try{

}catch(){

@Operation(summary = "채팅룸 활성화 하기", description = "채팅룸의 상태를 active로 전환합니다.")
public ResponseEntity<?> activeChatroom() {
try {
// TODO: 채팅룸을 활성화하는 로직을 구현하세요.
} catch (Exception e) {
// TODO: 예외 처리 로직을 구현하세요.
return ResponseEntity.status(500).body("서버 오류가 발생했습니다.");
}
return ResponseEntity.ok("채팅룸 활성화 완료"); // TODO: 실제 데이터를 반환하도록 수정하세요.
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,44 @@
package com.metlab_project.backend.controller.user;

import org.springframework.web.bind.annotation.RestController;
import com.metlab_project.backend.domain.dto.user.UserInfoResponse;
import com.metlab_project.backend.service.user.UserService;

import jakarta.persistence.EntityNotFoundException;
import lombok.RequiredArgsConstructor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RequiredArgsConstructor
@RestController
@RequestMapping("/user")
public class UserController {
}

private final UserService userService;

// 유저 정보 가져옴
@GetMapping("/{schoolEmail}")
public ResponseEntity<?> getUserInfo(@PathVariable String schoolEmail) {
try {
UserInfoResponse userInfo = userService.getUserInfoBySchoolEmail(schoolEmail);
return new ResponseEntity<>(userInfo, HttpStatus.OK);
} catch (EntityNotFoundException ex) {
return new ResponseEntity<>("User not found", HttpStatus.NOT_FOUND);
}
}

// 유저 정보 수정
@PutMapping("/{schoolEmail}")
public ResponseEntity<?> updateUserInfo(@PathVariable String schoolEmail, @RequestBody UserInfoResponse updatedUserInfo) {
try {
UserInfoResponse updatedUser = userService.updateUserInfo(schoolEmail, updatedUserInfo);
return new ResponseEntity<>(updatedUser, HttpStatus.OK);
} catch (EntityNotFoundException ex) {
return new ResponseEntity<>("User not found", HttpStatus.NOT_FOUND);
} catch (IllegalArgumentException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.BAD_REQUEST);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.metlab_project.backend.domain.dto.user;

import com.metlab_project.backend.domain.entity.User;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.ArrayList;
import java.util.Collection;

@RequiredArgsConstructor
public class CustomUserDetails implements UserDetails {
private final User user;

public Collection<? extends GrantedAuthority> getAuthorities(){
Collection<GrantedAuthority> collection = new ArrayList<>();
collection.add((GrantedAuthority) () -> user.getRole().toString());

return collection;
}

public User getUser(){
return this.user;
}

@Override
public String getUsername(){
return user.getSchoolEmail();
}

@Override
public String getPassword(){
return user.getPassword();
}

@Override
public boolean isAccountNonExpired(){
return true;
}

@Override
public boolean isAccountNonLocked() {
return true;
}

@Override
public boolean isCredentialsNonExpired() {
return true;
}

@Override
public boolean isEnabled() {
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.metlab_project.backend.domain.dto.user;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoRequest {
private String schoolEmail;
private String password;
private String nickname;
private String birthday;
private String gender;

private String studentId;
private String college;
private String department;
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,33 @@
package com.metlab_project.backend.domain.dto.user;

import lombok.AllArgsConstructor;
import com.metlab_project.backend.domain.entity.User;

import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Getter;
import lombok.Setter;


@Data
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoResponse {
private String schoolEmail;
private String nickname;
private String gender;

private String studentId;
private String college;
private String department;
private UserRole role;

public static UserInfoResponse from(User user){
return UserInfoResponse.builder()
.schoolEmail(user.getSchoolEmail())
.nickname(user.getNickname())
.gender(user.getGender())
.studentId(user.getStudentId())
.college(user.getCollege())
.department(user.getDepartment())
.role(user.getRole())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.metlab_project.backend.domain.dto.user;

import com.metlab_project.backend.domain.entity.User;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
@Builder
public class UserInfoResponse {
private String schoolEmail;
private String nickname;
private String gender;
private String studentId;
private String college;
private String department;
private UserRole role;

public static UserInfoResponse from(User user){
return UserInfoResponse.builder()
.schoolEmail(user.getSchoolEmail())
.nickname(user.getNickname())
.gender(user.getGender())
.studentId(user.getStudentId())
.college(user.getCollege())
.department(user.getDepartment())
.role(user.getRole())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.metlab_project.backend.domain.dto.user;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoResponse {
private String schoolEmail;
private String nickname;
private String gender;

private String studentId;
private String college;
private String department;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.metlab_project.backend.domain.dto.user;

import com.metlab_project.backend.domain.entity.User;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
@Builder

public class UserInfoResponse {
private String schoolEmail;
private String nickname;
private String gender;
private String studentId;
private String college;
private String department;

public static UserInfoResponse from(User user){
return UserInfoResponse.builder()
.schoolEmail(user.getSchoolEmail())
.nickname(user.getNickname())
.gender(user.getGender())
.studentId(user.getStudentId())
.college(user.getCollege())
.department(user.getDepartment())
.build();

}

}
Loading