Skip to content

Commit

Permalink
Merge pull request #145 from HGU-WALAB/HISTUDY-144
Browse files Browse the repository at this point in the history
이미지 저장 경로 매핑시 파이어베이스 스토리지와 호환되도록 설정
  • Loading branch information
zionhann authored Oct 24, 2023
2 parents ba3e5eb + ebf6d01 commit 6a84e9c
Show file tree
Hide file tree
Showing 12 changed files with 845 additions and 863 deletions.
211 changes: 98 additions & 113 deletions src/main/java/edu/handong/csee/histudy/controller/AdminController.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,145 +13,130 @@
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Tag(name = "관리자 API")
@SecurityRequirement(name = "ADMIN")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/admin")
public class AdminController {
private final TeamService teamService;
private final UserService userService;
private final TeamService teamService;
private final UserService userService;

@Operation(summary = "그룹별 활동 조회")
@GetMapping(value = "/manageGroup")
public ResponseEntity<List<TeamDto>> getTeams(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
String email = claims.getSubject();
return ResponseEntity.ok(teamService.getTeams(email));
}
throw new ForbiddenException();
@Operation(summary = "그룹별 활동 조회")
@GetMapping(value = "/manageGroup")
public ResponseEntity<List<TeamDto>> getTeams(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
String email = claims.getSubject();
return ResponseEntity.ok(teamService.getTeams(email));
}
throw new ForbiddenException();
}

@Deprecated
@Operation(summary = "그룹 삭제")
@DeleteMapping("/group")
public ResponseEntity<Integer> deleteTeam(
@RequestBody TeamIdDto dto,
@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(teamService.deleteTeam(dto, claims.getSubject()));
}
throw new ForbiddenException();
@Deprecated
@Operation(summary = "그룹 삭제")
@DeleteMapping("/group")
public ResponseEntity<Integer> deleteTeam(
@RequestBody TeamIdDto dto, @RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(teamService.deleteTeam(dto, claims.getSubject()));
}
throw new ForbiddenException();
}

@Operation(summary = "특정 그룹 보고서 조회")
@GetMapping("/groupReport/{id}")
public ResponseEntity<TeamReportDto> getTeamReports(
@Parameter(description = "그룹 아이디", required = true) @PathVariable(name = "id") long id,
@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
TeamReportDto res = teamService.getTeamReports(id, claims.getSubject());

@Operation(summary = "특정 그룹 보고서 조회")
@GetMapping("/groupReport/{id}")
public ResponseEntity<TeamReportDto> getTeamReports(
@Parameter(description = "그룹 아이디", required = true)
@PathVariable(name = "id") long id,
@RequestAttribute Claims claims,
@Value("${custom.resource.path}") String imageBasePath,
@Value("${custom.jwt.issuer}") String baseUri) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
TeamReportDto res = teamService.getTeamReports(id, claims.getSubject());
res.getReports()
.forEach(report ->
report.addPathToFilename(baseUri + imageBasePath));
return ResponseEntity.ok(res);
}
throw new ForbiddenException();
return ResponseEntity.ok(res);
}
throw new ForbiddenException();
}

/**
* 스터디 신청한 유저 목록 조회(신청O 그룹?)
*
* <p>그룹 배정 여부와 관계 없이
* 스터디를 신청한 유저 목록을 표시한다</p>
*
* @param claims 토큰 페이로드
* @return 스터디 신청한 유저 목록
*/
@Operation(summary = "그룹 배정 여부와 관계 없이 스터디 신청한 유저 목록 조회")
@GetMapping("/allUsers")
public ResponseEntity<List<UserDto.UserInfo>> getAppliedUsers(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getAppliedUsers());
}
throw new ForbiddenException();
/**
* 스터디 신청한 유저 목록 조회(신청O 그룹?)
*
* <p>그룹 배정 여부와 관계 없이 스터디를 신청한 유저 목록을 표시한다
*
* @param claims 토큰 페이로드
* @return 스터디 신청한 유저 목록
*/
@Operation(summary = "그룹 배정 여부와 관계 없이 스터디 신청한 유저 목록 조회")
@GetMapping("/allUsers")
public ResponseEntity<List<UserDto.UserInfo>> getAppliedUsers(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getAppliedUsers());
}
throw new ForbiddenException();
}

@Operation(summary = "그룹 매칭")
@PostMapping("/team-match")
public ResponseEntity<TeamDto.MatchResults> matchTeam(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(teamService.matchTeam());
}
throw new ForbiddenException();
@Operation(summary = "그룹 매칭")
@PostMapping("/team-match")
public ResponseEntity<TeamDto.MatchResults> matchTeam(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(teamService.matchTeam());
}
throw new ForbiddenException();
}

/**
* 그룹 미배정 학생 목록 조회(신청? 그룹X)
*
* <p>스터디 신청 여부와 관계 없이
* 가입된 유저 중에서 그룹이 배정되지 않은 유저 목록을 표시한다</p>
*
* @param claims 토큰 페이로드
* @return 그룹 미배정 학생 목록
*/
@Operation(summary = "매칭되지 않은 유저 목록 조회")
@GetMapping("/unmatched-users")
public ResponseEntity<List<UserDto.UserInfo>> getUnmatchedUsers(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getUnmatchedUsers());
}
throw new ForbiddenException();
/**
* 그룹 미배정 학생 목록 조회(신청? 그룹X)
*
* <p>스터디 신청 여부와 관계 없이 가입된 유저 중에서 그룹이 배정되지 않은 유저 목록을 표시한다
*
* @param claims 토큰 페이로드
* @return 그룹 미배정 학생 목록
*/
@Operation(summary = "매칭되지 않은 유저 목록 조회")
@GetMapping("/unmatched-users")
public ResponseEntity<List<UserDto.UserInfo>> getUnmatchedUsers(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getUnmatchedUsers());
}
throw new ForbiddenException();
}

@Operation(summary = "특정 유저 지원폼 삭제")
@DeleteMapping("/form")
public UserDto.UserInfo deleteForm(
@RequestParam String sid,
@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return userService.deleteUserForm(sid);
}
throw new ForbiddenException();
@Operation(summary = "특정 유저 지원폼 삭제")
@DeleteMapping("/form")
public UserDto.UserInfo deleteForm(@RequestParam String sid, @RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return userService.deleteUserForm(sid);
}
throw new ForbiddenException();
}

@Operation(summary = "유저 정보 수정")
@PostMapping("/edit-user")
public UserDto.UserInfo editUser(
@RequestBody UserDto.UserEdit form,
@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return userService.editUser(form);
}
throw new ForbiddenException();
@Operation(summary = "유저 정보 수정")
@PostMapping("/edit-user")
public UserDto.UserInfo editUser(
@RequestBody UserDto.UserEdit form, @RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return userService.editUser(form);
}
throw new ForbiddenException();
}

/**
* 스터디 신청한 유저 목록 조회(신청O 그룹X)
*
* <p>스터디를 신청했으나
* 그룹이 배정되지 않은 유저 목록을 조회한다
* 이 목록은 그룹 매칭 대상자 목록과 같다</p>
*
* @param claims 토큰 페이로드
* @return 스터디 신청했으나 그룹이 배정되지 않은 유저 목록
*/
@Operation(summary = "스터디를 신청했으나 그룹이 배정되지 않은 유저 목록 조회")
@GetMapping("/users/unassigned")
public ResponseEntity<List<UserDto.UserInfo>> unassignedUser(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getAppliedWithoutGroup());
}
throw new ForbiddenException();
/**
* 스터디 신청한 유저 목록 조회(신청O 그룹X)
*
* <p>스터디를 신청했으나 그룹이 배정되지 않은 유저 목록을 조회한다 이 목록은 그룹 매칭 대상자 목록과 같다
*
* @param claims 토큰 페이로드
* @return 스터디 신청했으나 그룹이 배정되지 않은 유저 목록
*/
@Operation(summary = "스터디를 신청했으나 그룹이 배정되지 않은 유저 목록 조회")
@GetMapping("/users/unassigned")
public ResponseEntity<List<UserDto.UserInfo>> unassignedUser(@RequestAttribute Claims claims) {
if (Role.isAuthorized(claims, Role.ADMIN)) {
return ResponseEntity.ok(userService.getAppliedWithoutGroup());
}
throw new ForbiddenException();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand All @@ -16,21 +15,11 @@
@RequestMapping("/api/public")
public class PublicController {

private final TeamService teamService;
private final TeamService teamService;

@Value("${custom.resource.path}")
private String imageBasePath;

@Value("${custom.jwt.issuer}")
private String baseUri;

@Operation(summary = "그룹 목록 조회")
@GetMapping("/teams")
public TeamRankDto getTeams() {
TeamRankDto res = teamService.getAllTeams();
res.getTeams().forEach(teamInfo ->
teamInfo.addPathToFilename(baseUri + imageBasePath));

return res;
}
@Operation(summary = "그룹 목록 조회")
@GetMapping("/teams")
public TeamRankDto getTeams() {
return teamService.getAllTeams();
}
}
Loading

0 comments on commit 6a84e9c

Please sign in to comment.