Skip to content

Commit 6221d1a

Browse files
committed
Connects to Lunagraph to retrieve users
1 parent 65eb498 commit 6221d1a

40 files changed

+240
-132
lines changed

leaderboards/pom.xml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.lunatech</groupId>
7-
<artifactId>leaderboards</artifactId>
7+
<artifactId>leaderboard</artifactId>
88
<version>1.0.0-SNAPSHOT</version>
99

1010
<properties>
@@ -68,12 +68,23 @@
6868
<version>8.0.0.Final</version>
6969
</dependency>
7070

71+
<!-- GraphQL Client -->
72+
<dependency>
73+
<groupId>io.quarkus</groupId>
74+
<artifactId>quarkus-smallrye-graphql-client</artifactId>
75+
</dependency>
76+
7177
<!-- Quarkus Security -->
7278
<dependency>
7379
<groupId>io.quarkus</groupId>
7480
<artifactId>quarkus-oidc</artifactId>
7581
</dependency>
7682

83+
<dependency>
84+
<groupId>io.quarkus</groupId>
85+
<artifactId>quarkus-oidc-client</artifactId>
86+
</dependency>
87+
7788
<dependency>
7889
<groupId>io.quarkus</groupId>
7990
<artifactId>quarkus-keycloak-authorization</artifactId>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.lunatech.leaderboard.client.graphql.lunagraph;
2+
3+
import io.quarkus.oidc.client.Tokens;
4+
import io.smallrye.graphql.client.typesafe.api.TypesafeGraphQLClientBuilder;
5+
6+
import javax.inject.Singleton;
7+
8+
public class GraphQLClients {
9+
10+
@Singleton
11+
public LunagraphApi lunagraphApi(Tokens tokens) {
12+
return TypesafeGraphQLClientBuilder.newBuilder()
13+
.header("Authorization", "Bearer " + tokens.getAccessToken())
14+
.configKey("lunagraph")
15+
.build(LunagraphApi.class);
16+
}
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.lunatech.leaderboard.client.graphql.lunagraph;
2+
3+
import com.lunatech.leaderboard.client.graphql.lunagraph.model.LunagraphEmployeeType;
4+
import com.lunatech.leaderboard.client.graphql.lunagraph.model.LunagraphPeopleModel;
5+
import org.eclipse.microprofile.graphql.Name;
6+
import org.eclipse.microprofile.graphql.Query;
7+
8+
public interface LunagraphApi {
9+
10+
@Query("people")
11+
LunagraphPeopleModel people(@Name("employeeType") LunagraphEmployeeType employeeType);
12+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.lunatech.leaderboard.client.graphql.lunagraph.model;
2+
3+
import org.eclipse.microprofile.graphql.Enum;
4+
5+
@Enum("EmployeeType")
6+
public enum LunagraphEmployeeType {
7+
EXTERNAL("external"),
8+
INTERNAL("internal"),
9+
INTERN("intern"),
10+
INVALID("invalid");
11+
12+
private final String lunagraphValue;
13+
14+
LunagraphEmployeeType(String lunagraphValue) {
15+
this.lunagraphValue = lunagraphValue;
16+
}
17+
18+
public String getLunagraphValue() {
19+
return lunagraphValue;
20+
}
21+
22+
@Override
23+
public String toString() {
24+
return lunagraphValue;
25+
}
26+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.lunatech.leaderboard.client.graphql.lunagraph.model;
2+
3+
4+
import java.util.List;
5+
6+
public record LunagraphPeopleModel(List<Person> people) {
7+
8+
public record Person(String fullName, String emailAddress) {}
9+
}

leaderboards/src/main/java/com/lunatech/leaderboards/controller/GameController.java renamed to leaderboards/src/main/java/com/lunatech/leaderboard/controller/GameController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package com.lunatech.leaderboards.controller;
1+
package com.lunatech.leaderboard.controller;
22

3-
import com.lunatech.leaderboards.dto.game.GameDto;
4-
import com.lunatech.leaderboards.entity.Game;
3+
import com.lunatech.leaderboard.dto.game.GameDto;
4+
import com.lunatech.leaderboard.entity.Game;
55
import io.quarkus.security.Authenticated;
66
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
77
import org.eclipse.microprofile.openapi.annotations.media.Content;
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.lunatech.leaderboards.controller;
1+
package com.lunatech.leaderboard.controller;
22

3-
import com.lunatech.leaderboards.dto.gamemode.GameModeDto;
4-
import com.lunatech.leaderboards.dto.gamemode.GameModeLeaderboardDto;
5-
import com.lunatech.leaderboards.dto.gamemode.GameModePostDto;
6-
import com.lunatech.leaderboards.entity.Game;
7-
import com.lunatech.leaderboards.entity.GameMode;
3+
import com.lunatech.leaderboard.dto.gamemode.GameModeDto;
4+
import com.lunatech.leaderboard.dto.gamemode.GameModeLeaderboardDto;
5+
import com.lunatech.leaderboard.dto.gamemode.GameModePostDto;
6+
import com.lunatech.leaderboard.entity.Game;
7+
import com.lunatech.leaderboard.entity.GameMode;
88
import io.quarkus.security.Authenticated;
99
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
1010
import org.eclipse.microprofile.openapi.annotations.media.Content;

leaderboards/src/main/java/com/lunatech/leaderboards/controller/MatchController.java renamed to leaderboards/src/main/java/com/lunatech/leaderboard/controller/MatchController.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.lunatech.leaderboards.controller;
1+
package com.lunatech.leaderboard.controller;
22

3-
import com.lunatech.leaderboards.dto.match.MatchDto;
4-
import com.lunatech.leaderboards.dto.match.MatchPostDto;
5-
import com.lunatech.leaderboards.entity.Match;
6-
import com.lunatech.leaderboards.entity.User;
7-
import com.lunatech.leaderboards.service.MatchService;
3+
import com.lunatech.leaderboard.dto.match.MatchDto;
4+
import com.lunatech.leaderboard.dto.match.MatchPostDto;
5+
import com.lunatech.leaderboard.entity.Match;
6+
import com.lunatech.leaderboard.entity.User;
7+
import com.lunatech.leaderboard.service.MatchService;
88
import io.quarkus.security.Authenticated;
99
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
1010
import org.eclipse.microprofile.openapi.annotations.media.Content;

leaderboards/src/main/java/com/lunatech/leaderboards/controller/UserController.java renamed to leaderboards/src/main/java/com/lunatech/leaderboard/controller/UserController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
package com.lunatech.leaderboards.controller;
1+
package com.lunatech.leaderboard.controller;
22

3-
import com.lunatech.leaderboards.dto.user.UserDto;
4-
import com.lunatech.leaderboards.dto.user.UserPostDto;
5-
import com.lunatech.leaderboards.entity.User;
3+
import com.lunatech.leaderboard.dto.user.UserDto;
4+
import com.lunatech.leaderboard.dto.user.UserPostDto;
5+
import com.lunatech.leaderboard.entity.User;
66
import io.quarkus.security.Authenticated;
77
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
88
import org.eclipse.microprofile.openapi.annotations.media.Content;
99
import org.eclipse.microprofile.openapi.annotations.media.Schema;
1010
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
1111
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
1212
import org.eclipse.microprofile.openapi.annotations.responses.APIResponseSchema;
13-
import org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement;
1413

1514
import javax.transaction.Transactional;
1615
import javax.ws.rs.*;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.lunatech.leaderboards.controller.providers;
1+
package com.lunatech.leaderboard.controller.provider.exceptionmapper;
22

33
import javax.inject.Inject;
44
import javax.ws.rs.NotFoundException;

0 commit comments

Comments
 (0)