Skip to content

Commit ac09d70

Browse files
authored
Merge pull request #14 from PoolC/dev
Dev
2 parents d8d61e1 + 3b3beca commit ac09d70

7 files changed

Lines changed: 59 additions & 13 deletions

File tree

src/main/java/org/poolc/api/comment/controller/CommentController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,5 @@ public ResponseEntity<Void> likeComment(@AuthenticationPrincipal Member member,
5454
likeService.like(member, Subject.COMMENT, commentId);
5555
return ResponseEntity.status(HttpStatus.OK).build();
5656
}
57+
5758
}

src/main/java/org/poolc/api/kubernetes/controller/KubernetesController.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
import lombok.RequiredArgsConstructor;
44
import org.poolc.api.kubernetes.dto.GetKubernetesResponseDto;
5+
import org.poolc.api.kubernetes.dto.GetMyKubernetesKeyResponseDto;
56
import org.poolc.api.kubernetes.service.KubernetesService;
7+
import org.poolc.api.member.domain.Member;
8+
import org.springframework.http.HttpStatus;
69
import org.springframework.http.ResponseEntity;
10+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
711
import org.springframework.web.bind.annotation.*;
812

913
import java.util.Map;
@@ -31,4 +35,19 @@ public ResponseEntity<Void> refreshMamberKeys(@RequestHeader("X-API-KEY") String
3135
return ResponseEntity.ok().build();
3236
}
3337

38+
@GetMapping(value="/me")
39+
public ResponseEntity<GetMyKubernetesKeyResponseDto> getMyKey(@AuthenticationPrincipal Member loginMember){
40+
if (loginMember == null) {
41+
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
42+
}
43+
try {
44+
GetMyKubernetesKeyResponseDto response = new GetMyKubernetesKeyResponseDto(
45+
kubernetesService.getKubernetesKeyByUUID(loginMember.getUUID())
46+
);
47+
return ResponseEntity.ok().body(response);
48+
} catch (IllegalArgumentException e){
49+
return ResponseEntity.notFound().build();
50+
}
51+
}
52+
3453
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.poolc.api.kubernetes.dto;
2+
3+
public interface ActiveMemberDto {
4+
String getMember_uuid();
5+
String getLogin_id();
6+
}

src/main/java/org/poolc/api/kubernetes/dto/GetKubernetesResponseDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
@Getter
99
public class GetKubernetesResponseDto {
10-
private final List<String> activeMembers;
10+
private final List<ActiveMemberDto> activeMembers;
1111

1212
@JsonCreator
13-
public GetKubernetesResponseDto(List<String> activeMembers) {
13+
public GetKubernetesResponseDto(List<ActiveMemberDto> activeMembers) {
1414
this.activeMembers = activeMembers;
1515
}
1616
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.poolc.api.kubernetes.dto;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import lombok.Getter;
5+
6+
@Getter
7+
public class GetMyKubernetesKeyResponseDto {
8+
9+
private final String key;
10+
11+
@JsonCreator
12+
public GetMyKubernetesKeyResponseDto(String key){
13+
this.key = key;
14+
}
15+
}
Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.poolc.api.kubernetes.repository;
22

33
import org.poolc.api.kubernetes.domain.KubernetesMapping;
4+
import org.poolc.api.kubernetes.dto.ActiveMemberDto;
45
import org.springframework.data.jpa.repository.JpaRepository;
56
import org.springframework.data.jpa.repository.Modifying;
67
import org.springframework.data.jpa.repository.Query;
@@ -12,25 +13,28 @@
1213
public interface KubernetesRepository extends JpaRepository<KubernetesMapping, Long> {
1314

1415

15-
@Query(value = "SELECT DISTINCT MEMBER_UUID\n" +
16-
"FROM ROLES\n" +
17-
"WHERE MEMBER_UUID IN (\n" +
16+
@Query(value = "SELECT DISTINCT T2.MEMBER_UUID\n" +
17+
" , (SELECT login_id" +
18+
" FROM MEMBER T1" +
19+
" WHERE T1.UUID = T2.MEMBER_UUID)\n" +
20+
"FROM ROLES T2\n" +
21+
"WHERE T2.MEMBER_UUID IN (\n" +
1822
" SELECT MEMBER_UUID\n" +
1923
" FROM ROLES\n" +
2024
" WHERE ROLES = 'MEMBER'\n" +
2125
")\n" +
22-
"AND MEMBER_UUID NOT IN (\n" +
26+
"AND T2.MEMBER_UUID NOT IN (\n" +
2327
" SELECT MEMBER_UUID\n" +
2428
" FROM ROLES\n" +
2529
" WHERE ROLES = 'INACTIVE'\n" +
2630
")", nativeQuery = true)
27-
List<String> findAllActiveMembers();
31+
List<ActiveMemberDto> findAllActiveMembers();
2832

2933
@Modifying
3034
@Transactional
3135
@Query(value = "TRUNCATE TABLE KUBERNETES_MAPPINGS", nativeQuery = true)
3236
void truncateKubernetesMappingTable();
3337

34-
@Query(value = "SELECT kubernetesKey FROM kubernetes_mappings WHERE UUID IN (SELECT UUID FROM Member WHERE loginID = :userId)")
35-
Optional<String> findKubernetesKeyByUserId(String userId);
38+
@Query(value = "SELECT kubernetesKey FROM kubernetes_mappings WHERE UUID = :UUID")
39+
Optional<String> findKubernetesKeyByUUID(String UUID);
3640
}

src/main/java/org/poolc/api/kubernetes/service/KubernetesService.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.RequiredArgsConstructor;
44
import org.poolc.api.kubernetes.domain.KubernetesMapping;
5+
import org.poolc.api.kubernetes.dto.ActiveMemberDto;
56
import org.poolc.api.kubernetes.repository.KubernetesRepository;
67
import org.springframework.beans.factory.annotation.Value;
78
import org.springframework.stereotype.Service;
@@ -19,7 +20,7 @@ public class KubernetesService {
1920
@Value("${kubernetes.api.key}")
2021
private String API_KEY;
2122

22-
public List<String> getAllActiveMembers(String apiKey) {
23+
public List<ActiveMemberDto> getAllActiveMembers(String apiKey) {
2324
if(!isValidApiKey(apiKey)) {
2425
throw new IllegalArgumentException("Invalid API key");
2526
}
@@ -43,9 +44,9 @@ public void refreshMemberKey(Map<String,String> requestBody, String apiKey) {
4344
kubernetesRepository.saveAll(mappings);
4445
}
4546

46-
public String getKubernetesKeyByUserId(String userId) {
47-
return kubernetesRepository.findKubernetesKeyByUserId(userId)
48-
.orElseThrow(() -> new IllegalArgumentException("No Kubernetes key found for user: " + userId));
47+
public String getKubernetesKeyByUUID(String UUID) {
48+
return kubernetesRepository.findKubernetesKeyByUUID(UUID)
49+
.orElseThrow(() -> new IllegalArgumentException("No Kubernetes key found for the authenticated user"));
4950
}
5051

5152
private boolean isValidApiKey(String apiKey) {

0 commit comments

Comments
 (0)