Skip to content

Commit 7b9154e

Browse files
committed
Adding batch request content files
1 parent 00e7584 commit 7b9154e

File tree

3 files changed

+167
-0
lines changed

3 files changed

+167
-0
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package com.microsoft.graph.content;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashMap;
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
import org.apache.http.Header;
9+
import org.apache.http.HttpEntity;
10+
import org.apache.http.HttpRequest;
11+
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
12+
import org.apache.http.util.EntityUtils;
13+
import org.json.simple.JSONObject;
14+
import org.json.simple.JSONValue;
15+
16+
public class MSBatchRequestContent {
17+
private List<MSBatchRequestStep> batchRequestStepsArray;
18+
private final int maxNumberOfRequests = 20;
19+
20+
public MSBatchRequestContent(List<MSBatchRequestStep> batchRequestStepsArray) {
21+
batchRequestStepsArray = new ArrayList<>();
22+
if(batchRequestStepsArray.size() <= maxNumberOfRequests) {
23+
for(MSBatchRequestStep requestStep: batchRequestStepsArray)
24+
addBatchRequestStep(requestStep);
25+
}
26+
}
27+
28+
public MSBatchRequestContent() {
29+
batchRequestStepsArray = new ArrayList<>();
30+
}
31+
32+
public void addBatchRequestStep(MSBatchRequestStep batchRequestStep) {
33+
if(batchRequestStep.getRequestId().compareTo("") == 0)
34+
return;
35+
if(batchRequestStepsArray.size() == maxNumberOfRequests)
36+
return;
37+
for(MSBatchRequestStep requestStep: batchRequestStepsArray) {
38+
if(batchRequestStep.getRequestId().compareTo(requestStep.getRequestId()) == 0)
39+
return;
40+
}
41+
batchRequestStepsArray.add(batchRequestStep);
42+
}
43+
44+
public void removeBatchRequesStepWithId(String requestId) {
45+
for (int i = batchRequestStepsArray.size()-1; i >= 0; i--)
46+
{
47+
MSBatchRequestStep requestStep = batchRequestStepsArray.get(i);
48+
for (int j = requestStep.getArrayOfDependsOnIds().size() - 1; j >= 0; j--)
49+
{
50+
String dependsOnId = requestStep.getArrayOfDependsOnIds().get(j);
51+
if(dependsOnId.compareTo(requestId) == 0)
52+
{
53+
requestStep.getArrayOfDependsOnIds().remove(j);
54+
}
55+
}
56+
if(requestId.compareTo(requestStep.getRequestId()) == 0)
57+
batchRequestStepsArray.remove(i);
58+
}
59+
}
60+
61+
public String getBatchRequestContent() {
62+
Map<String, List<Map<String, String>>> batchRequestContentMap = new HashMap();
63+
List<Map<String, String>> batchContentArray = new ArrayList();
64+
for(MSBatchRequestStep requestStep : batchRequestStepsArray) {
65+
batchContentArray.add(getBatchRequestMapFromRequestStep(requestStep));
66+
}
67+
batchRequestContentMap.put("requests", batchContentArray);
68+
return JSONValue.toJSONString(batchRequestContentMap);
69+
}
70+
71+
private Map<String, String> getBatchRequestMapFromRequestStep(MSBatchRequestStep batchRequestStep){
72+
Map<String, String> contentmap = new HashMap();
73+
contentmap.put("id", batchRequestStep.getRequestId());
74+
contentmap.put("url", batchRequestStep.getRequest().getRequestLine().getUri());
75+
contentmap.put("method", batchRequestStep.getRequest().getRequestLine().getMethod());
76+
Header[] headers = batchRequestStep.getRequest().getAllHeaders();
77+
if(headers != null) {
78+
JSONObject obj = new JSONObject();
79+
for(Header header: headers) {
80+
obj.put(header.getName(), header.getValue());
81+
}
82+
contentmap.put("headers", obj.toJSONString());
83+
}
84+
HttpEntity entity = null;
85+
HttpRequest request = batchRequestStep.getRequest();
86+
if(request instanceof HttpEntityEnclosingRequestBase) {
87+
HttpEntityEnclosingRequestBase httprequest = (HttpEntityEnclosingRequestBase)request;
88+
entity = httprequest.getEntity();
89+
}
90+
if(entity != null) {
91+
try {
92+
String body = EntityUtils.toString(entity);
93+
contentmap.put("body", body);
94+
}
95+
catch(Exception e) {
96+
}
97+
}
98+
99+
List<String> arrayOfDependsOnIds = batchRequestStep.getArrayOfDependsOnIds();
100+
if(arrayOfDependsOnIds != null) {
101+
contentmap.put("dependsOn", JSONValue.toJSONString(arrayOfDependsOnIds));
102+
}
103+
104+
return contentmap;
105+
}
106+
107+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.microsoft.graph.content;
2+
3+
import java.util.List;
4+
5+
import org.apache.http.HttpRequest;
6+
7+
public class MSBatchRequestStep {
8+
private String requestId;
9+
private HttpRequest request;
10+
private List<String> arrayOfDependsOnIds;
11+
12+
public MSBatchRequestStep(String requestId, HttpRequest request, List<String> arrayOfDependsOnIds) {
13+
this.requestId = requestId;
14+
this.request = request;
15+
this.arrayOfDependsOnIds = arrayOfDependsOnIds;
16+
}
17+
18+
public String getRequestId() {
19+
return requestId;
20+
}
21+
22+
public HttpRequest getRequest() {
23+
return request;
24+
}
25+
26+
public List<String> getArrayOfDependsOnIds(){
27+
return arrayOfDependsOnIds;
28+
}
29+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.microsoft.graph.content;
2+
3+
import org.json.simple.JSONObject;
4+
import org.json.simple.parser.JSONParser;
5+
import org.json.simple.parser.ParseException;
6+
7+
public class MSBatchResponseContent {
8+
9+
private JSONObject batchResponseObj;
10+
11+
public MSBatchResponseContent(String batchResponseData ) {
12+
JSONParser parser = new JSONParser();
13+
try {
14+
batchResponseObj = (JSONObject) parser.parse(batchResponseData);
15+
}
16+
catch(ParseException e) {
17+
}
18+
}
19+
20+
public String getResponseById(String requestId) {
21+
if(batchResponseObj.get(requestId) != null)
22+
return batchResponseObj.get(requestId).toString();
23+
return null;
24+
}
25+
26+
public String getResponses() {
27+
if(batchResponseObj != null)
28+
return batchResponseObj.toJSONString();
29+
return null;
30+
}
31+
}

0 commit comments

Comments
 (0)