Skip to content

Commit fd6fb07

Browse files
committed
chore: refactor getSessions method into two
1 parent 7c30649 commit fd6fb07

File tree

1 file changed

+38
-39
lines changed

1 file changed

+38
-39
lines changed

src/main/java/com/browserstack/client/BrowserStackClient.java

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
package com.browserstack.client;
22

3-
import java.io.IOException;
4-
import java.io.InputStream;
5-
import java.io.Reader;
6-
import java.lang.reflect.Type;
7-
import java.nio.charset.Charset;
8-
import java.util.ArrayList;
9-
import java.util.Arrays;
10-
import java.util.List;
11-
import java.util.Map;
123
import com.browserstack.automate.Automate.BuildStatus;
134
import com.browserstack.automate.exception.BuildNotFound;
145
import com.browserstack.automate.exception.SessionNotFound;
@@ -24,17 +15,20 @@
2415
import com.fasterxml.jackson.core.JsonProcessingException;
2516
import com.fasterxml.jackson.databind.ObjectMapper;
2617
import com.fasterxml.jackson.databind.node.ObjectNode;
27-
import com.google.api.client.http.BasicAuthentication;
28-
import com.google.api.client.http.GenericUrl;
29-
import com.google.api.client.http.HttpRequest;
30-
import com.google.api.client.http.HttpRequestFactory;
31-
import com.google.api.client.http.HttpRequestInitializer;
32-
import com.google.api.client.http.HttpResponse;
33-
import com.google.api.client.http.HttpTransport;
18+
import com.google.api.client.http.*;
3419
import com.google.api.client.http.javanet.NetHttpTransport;
3520
import com.google.api.client.util.ObjectParser;
3621

3722
import javax.annotation.Nonnull;
23+
import java.io.IOException;
24+
import java.io.InputStream;
25+
import java.io.Reader;
26+
import java.lang.reflect.Type;
27+
import java.nio.charset.Charset;
28+
import java.util.ArrayList;
29+
import java.util.Arrays;
30+
import java.util.List;
31+
import java.util.Map;
3832

3933
public abstract class BrowserStackClient implements BrowserStackClientInterface {
4034
private static final String BASE_URL = "https://www.browserstack.com";
@@ -457,33 +451,11 @@ public List<Session> getSessions(final String buildId, final BuildStatus status,
457451
totalRequests++;
458452
}
459453

460-
BrowserStackRequest httpRequest = null;
461454
final List <Session> sessions = new ArrayList<Session>();
462455

463456
// currReq will act as offset to fetch all* sessions from the build
464457
for (int currReq = 0; currReq < totalRequests; currReq++) {
465-
try {
466-
httpRequest =
467-
newRequest(Method.GET, "/builds/{buildId}/sessions.json").routeParam("buildId", buildId);
468-
} catch (BrowserStackException e) {
469-
throw e;
470-
}
471-
472-
httpRequest.queryString(Constants.Filter.LIMIT, totalLimit);
473-
httpRequest.queryString(Constants.Filter.OFFSET, currReq);
474-
475-
if (status != null) {
476-
httpRequest.queryString(Constants.Filter.FILTER, status);
477-
}
478-
479-
final List<SessionNode> sessionNodes;
480-
try {
481-
sessionNodes = Arrays.asList(httpRequest.asObject(SessionNode[].class));
482-
} catch (BrowserStackObjectNotFound e) {
483-
throw new BuildNotFound("Build not found: " + buildId);
484-
} catch (BrowserStackException e) {
485-
throw e;
486-
}
458+
final List<SessionNode> sessionNodes = getSessionNodes(buildId, status, totalLimit, currReq);
487459

488460
for (SessionNode sessionNode : sessionNodes) {
489461
if (sessionNode != null && sessionNode.getSession() != null) {
@@ -500,6 +472,33 @@ public List<Session> getSessions(final String buildId, final BuildStatus status,
500472
return sessions;
501473
}
502474

475+
private List<SessionNode> getSessionNodes(String buildId, BuildStatus status, int totalLimit, int offset) throws BrowserStackException {
476+
BrowserStackRequest httpRequest;
477+
try {
478+
httpRequest =
479+
newRequest(Method.GET, "/builds/{buildId}/sessions.json").routeParam("buildId", buildId);
480+
} catch (BrowserStackException e) {
481+
throw e;
482+
}
483+
484+
httpRequest.queryString(Constants.Filter.LIMIT, totalLimit);
485+
httpRequest.queryString(Constants.Filter.OFFSET, offset);
486+
487+
if (status != null) {
488+
httpRequest.queryString(Constants.Filter.FILTER, status);
489+
}
490+
491+
final List<SessionNode> sessionNodes;
492+
try {
493+
sessionNodes = Arrays.asList(httpRequest.asObject(SessionNode[].class));
494+
} catch (BrowserStackObjectNotFound e) {
495+
throw new BuildNotFound("Build not found: " + buildId);
496+
} catch (BrowserStackException e) {
497+
throw e;
498+
}
499+
return sessionNodes;
500+
}
501+
503502
/**
504503
* Retrieves the list of sessions existing under a specific build.
505504
*

0 commit comments

Comments
 (0)