66import io .litmuschaos .exception .LitmusApiException ;
77import io .litmuschaos .generated .client .ListInfrasGraphQLQuery ;
88import io .litmuschaos .generated .client .ListInfrasProjectionRoot ;
9- import io .litmuschaos .generated .types .ListInfraRequest ;
109import io .litmuschaos .generated .types .ListInfraResponse ;
11- import io .litmuschaos .generated .types .Pagination ;
1210import io .litmuschaos .graphql .LitmusGraphQLClient ;
1311import io .litmuschaos .http .LitmusHttpClient ;
1412import io .litmuschaos .request .*;
1513import io .litmuschaos .response .*;
14+ import okhttp3 .OkHttpClient ;
1615
17- import io .litmuschaos .request .CreateProjectRequest ;
18- import io .litmuschaos .request .LeaveProjectRequest ;
19- import io .litmuschaos .request .ListProjectRequest ;
20- import io .litmuschaos .request .LoginRequest ;
21- import io .litmuschaos .request .ProjectNameRequest ;
22- import io .litmuschaos .response .CapabilityResponse ;
23- import io .litmuschaos .response .CommonResponse ;
24- import io .litmuschaos .response .ListProjectsResponse ;
25- import io .litmuschaos .response .LoginResponse ;
26- import io .litmuschaos .response .ProjectMemberResponse ;
27- import io .litmuschaos .response .ProjectResponse ;
28- import io .litmuschaos .response .ProjectRoleResponse ;
29- import io .litmuschaos .response .ProjectsStatsResponse ;
30- import io .litmuschaos .response .UserWithProjectResponse ;
3116import java .io .IOException ;
32- import java .util .Collections ;
3317import java .util .HashMap ;
3418import java .util .List ;
3519import java .util .Map ;
36- import okhttp3 .OkHttpClient ;
3720
3821public class LitmusClient implements AutoCloseable {
3922
4023 private String token ;
4124 private final LitmusHttpClient httpClient ;
4225 private final LitmusGraphQLClient graphQLClient ;
4326
44- // TODO: using token rather than username & password
45- // TODO: validate a token whether starts with "Bearer "
46- public LitmusClient (String host , String username , String password )
47- throws IOException , LitmusApiException {
48- host = sanitizeURL (host );
27+ public LitmusClient (String host , String token ) {
28+ String sanitizedHost = sanitizeURL (host );
4929 OkHttpClient okHttpClient = new OkHttpClient ();
50- this .httpClient = new LitmusHttpClient (okHttpClient , host +"/auth" );
51- // TODO: deprecated
52- LoginRequest request = LoginRequest .builder ().username (username ).password (password ).build ();
53- this .authenticate (request );
54-
55- this .graphQLClient = new LitmusGraphQLClient (okHttpClient , host +"/api/query" , token );
30+ this .token = token ;
31+ this .httpClient = new LitmusHttpClient (okHttpClient , sanitizedHost + "/auth" );
32+ this .graphQLClient = new LitmusGraphQLClient (okHttpClient , sanitizedHost + "/api/query" , this .token );
5633 }
5734
5835 @ Override
@@ -61,18 +38,18 @@ public void close() throws Exception {
6138 }
6239
6340 // User
64- public LoginResponse authenticate (LoginRequest request )
65- throws IOException , LitmusApiException {
66- LoginResponse response = httpClient .post ("/login" , request , LoginResponse .class );
67- this .token = response .getAccessToken ();
68- return response ;
69- }
70-
71- public CommonResponse logout () throws IOException , LitmusApiException {
72- CommonResponse commonResponse = httpClient .post ("/logout" , token , CommonResponse .class );
73- this .token = "" ;
74- return commonResponse ;
75- }
41+ // public LoginResponse authenticate(LoginRequest request)
42+ // throws IOException, LitmusApiException {
43+ // LoginResponse response = httpClient.post("/login", request, LoginResponse.class);
44+ // this.token = response.getAccessToken();
45+ // return response;
46+ // }
47+
48+ // public CommonResponse logout() throws IOException, LitmusApiException {
49+ // CommonResponse commonResponse = httpClient.post("/logout", token, CommonResponse.class);
50+ // this.token = "";
51+ // return commonResponse;
52+ // }
7653
7754 public ListTokensResponse getTokens (String userId ) throws IOException , LitmusApiException {
7855 return httpClient .get ("/token/" + userId , token , ListTokensResponse .class );
@@ -91,7 +68,8 @@ public UserResponse getUser(String userId) throws IOException, LitmusApiExceptio
9168 }
9269
9370 public List <UserResponse > getUsers () throws IOException , LitmusApiException {
94- TypeToken <List <UserResponse >> typeToken = new TypeToken <>() {};
71+ TypeToken <List <UserResponse >> typeToken = new TypeToken <>() {
72+ };
9573 return httpClient .get ("/users" , token , typeToken );
9674 }
9775
@@ -146,7 +124,8 @@ public ProjectResponse getProject(String projectId) throws IOException, LitmusAp
146124 }
147125
148126 public List <ProjectResponse > getOwnerProjects () throws IOException , LitmusApiException {
149- TypeToken <List <ProjectResponse >> typeToken = new TypeToken <List <ProjectResponse >>() {};
127+ TypeToken <List <ProjectResponse >> typeToken = new TypeToken <List <ProjectResponse >>() {
128+ };
150129 return httpClient .get ("/get_owner_projects" , token , typeToken );
151130 }
152131
@@ -167,19 +146,22 @@ public UserWithProjectResponse getUserWithProject(String username)
167146 }
168147
169148 public List <ProjectsStatsResponse > getProjectsStats () throws IOException , LitmusApiException {
170- TypeToken <List <ProjectsStatsResponse >> typeToken = new TypeToken <List <ProjectsStatsResponse >>() {};
149+ TypeToken <List <ProjectsStatsResponse >> typeToken = new TypeToken <List <ProjectsStatsResponse >>() {
150+ };
171151 return httpClient .get ("/get_projects_stats" , token , typeToken );
172152 }
173153
174154 public List <ProjectMemberResponse > getProjectMembers (String projectID , String status )
175155 throws IOException , LitmusApiException {
176- TypeToken <List <ProjectMemberResponse >> typeToken = new TypeToken <List <ProjectMemberResponse >>() {};
156+ TypeToken <List <ProjectMemberResponse >> typeToken = new TypeToken <List <ProjectMemberResponse >>() {
157+ };
177158 return httpClient .get ("/get_project_members/" + projectID + "/" + status , token , typeToken );
178159 }
179160
180161 public List <ProjectMemberResponse > getProjectOwners (String projectID )
181162 throws IOException , LitmusApiException {
182- TypeToken <List <ProjectMemberResponse >> typeToken = new TypeToken <List <ProjectMemberResponse >>() {};
163+ TypeToken <List <ProjectMemberResponse >> typeToken = new TypeToken <List <ProjectMemberResponse >>() {
164+ };
183165 return httpClient .get ("/get_project_owners/" + projectID , token , typeToken );
184166 }
185167
@@ -219,7 +201,7 @@ public List<InviteUsersResponse> inviteUsers(String projectId)
219201 // Chaos Experiment Run
220202
221203 // Chaos Infrastructure
222- public ListInfraResponse listInfras (ListInfrasGraphQLQuery query , ListInfrasProjectionRoot projectionRoot ){
204+ public ListInfraResponse listInfras (ListInfrasGraphQLQuery query , ListInfrasProjectionRoot projectionRoot ) {
223205 String request = new GraphQLQueryRequest (query , projectionRoot ).serialize ();
224206 GraphQLResponse response = graphQLClient .query (request );
225207 return response .dataAsObject (ListInfraResponse .class );
0 commit comments