-
Notifications
You must be signed in to change notification settings - Fork 0
/
compositeGraphBuilder.js
70 lines (55 loc) · 1.33 KB
/
compositeGraphBuilder.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class CompositeGraphBuilder {
constructor() {
this.compositeRequest = {};
this.compositeRequest.graphs = [];
}
addGraph(graph) {
this.compositeRequest.graphs.push(graph);
return this;
}
build() {
return this.compositeRequest;
}
}
class GraphBuilder {
constructor() {
this.graph = {};
this.graph.compositeRequest = [];
}
withGraphId(graphId) {
this.graph.graphId = graphId;
return this;
}
addCompositeSubRequest(compositeSubRequest) {
this.graph.compositeRequest.push(compositeSubRequest);
return this;
}
build() {
return this.graph;
}
}
class CompositeSubRequestBuilder {
constructor() {
this.compositeSubRequest = {};
}
withMethod(method) {
this.compositeSubRequest.method = method;
return this;
}
withUrl(Url) {
this.compositeSubRequest.url = Url;
return this;
}
withReferenceId(referenceId) {
this.compositeSubRequest.referenceId = referenceId;
return this;
}
withBody(body) {
this.compositeSubRequest.body = body;
return this;
}
build() {
return this.compositeSubRequest;
}
}
module.exports = {CompositeSubRequestBuilder, GraphBuilder, CompositeGraphBuilder};