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 package info.magnolia.rest.client.value;
35
36 import info.magnolia.rest.client.RestCallDefinition;
37
38 import java.util.Map;
39 import java.util.stream.Collectors;
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public class ResolvedRestCallDefinition implements RestCallDefinition {
54
55 private final RestCallDefinition definition;
56
57 private final TemplateResolver resolver;
58
59 public ResolvedRestCallDefinition(final RestCallDefinition definition, final TemplateResolver resolver) {
60 this.definition = definition;
61 this.resolver = resolver;
62 }
63
64 @Override
65 public String getMethod() {
66 return definition.getMethod();
67 }
68
69 @Override
70 public String getPath() {
71 return (String) resolver.resolveWithDefaults(definition.getPath(), getDefaultValues());
72 }
73
74 @Override
75 public <T> Class<T> getEntityClass() {
76 return definition.getEntityClass();
77 }
78
79 @Override
80 public Map<String, String> getQueryParameters() {
81 final Map<String, Object> result = (Map<String, Object>) resolver.resolveWithDefaults(definition.getQueryParameters(), getDefaultValues());
82 return result.entrySet()
83 .stream()
84 .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().toString()));
85 }
86
87 @Override
88 public Map<String, String> getCookies() {
89 final Map<String, Object> result = (Map<String, Object>) resolver.resolveWithDefaults(definition.getCookies(), getDefaultValues());
90 return result.entrySet()
91 .stream()
92 .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().toString()));
93 }
94
95 @Override
96 public Map<String, Object> getHeaders() {
97 return (Map<String, Object>) resolver.resolveWithDefaults(definition.getHeaders(), getDefaultValues());
98 }
99
100 @Override
101 public Map<String, Object> getDefaultValues() {
102 return definition.getDefaultValues();
103 }
104
105 @Override
106 public String getSecurityScheme() {
107 return definition.getSecurityScheme();
108 }
109
110 @Override
111 public Object getBody() {
112 return resolver.resolveWithDefaults(definition.getBody(), getDefaultValues());
113 }
114
115 @Override
116 public String getName() {
117 return definition.getName();
118 }
119 }