completed initial charge logic
This commit is contained in:
@@ -39,6 +39,13 @@ public class RestService {
|
||||
|
||||
public final RestTemplate restTemplate;
|
||||
|
||||
@Value("${sbz.aggregator.client-id}")
|
||||
private String clientId;
|
||||
@Value("${sbz.aggregator.client-secret}")
|
||||
private String clientSecret;
|
||||
@Value("${sbz.aggregator.url}")
|
||||
private String aggregatorUrl;
|
||||
|
||||
public RestService() {
|
||||
this.restTemplate = new RestTemplate(
|
||||
new BufferingClientHttpRequestFactory(
|
||||
@@ -54,7 +61,7 @@ public class RestService {
|
||||
if (CollectionUtils.isEmpty(interceptors)) {
|
||||
interceptors = new ArrayList<>();
|
||||
}
|
||||
interceptors.add(new RestTemplateInterceptor(gson));
|
||||
interceptors.add(new RestTemplateInterceptor());
|
||||
this.restTemplate.setInterceptors(interceptors);
|
||||
}
|
||||
|
||||
@@ -81,6 +88,24 @@ public class RestService {
|
||||
return clientToken;
|
||||
}
|
||||
|
||||
public String getMerchantToken() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
||||
|
||||
Map<String, String> payload = Map.of(
|
||||
"clientId", clientId,
|
||||
"clientSecret", clientSecret
|
||||
);
|
||||
|
||||
HttpEntity<Map<String, String>> entity = new HttpEntity<>(payload, headers);
|
||||
Map response = this.restTemplate.postForObject(aggregatorUrl + "/merchant/client/token",entity, Map.class);
|
||||
|
||||
Map<String, String> body = (Map<String, String>) response.get("body");
|
||||
|
||||
return (String) body.get("access_token");
|
||||
}
|
||||
|
||||
public Map getToken(MultiValueMap payload){
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||
@@ -120,6 +145,12 @@ public class RestService {
|
||||
return this.restTemplate.postForObject(path, entity, clazz);
|
||||
}
|
||||
|
||||
public <T> T getAs(String path, HttpHeaders headers, Class<T> clazz){
|
||||
// build the request
|
||||
HttpEntity entity = new HttpEntity<>(headers);
|
||||
return this.restTemplate.exchange(path, HttpMethod.GET, entity, clazz).getBody();
|
||||
}
|
||||
|
||||
public <T> T post(String path, Object payload, Class<T> clazz){
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package zw.qantra.tm.rest;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@@ -19,11 +20,10 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class RestTemplateInterceptor
|
||||
implements ClientHttpRequestInterceptor {
|
||||
private final Logger logger = LoggerFactory.getLogger(getClass().getName());
|
||||
private final Gson gson;
|
||||
private final Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
|
||||
@Override
|
||||
public ClientHttpResponse intercept(
|
||||
@@ -35,18 +35,20 @@ public class RestTemplateInterceptor
|
||||
|
||||
// we don't log file data
|
||||
if(request.getHeaders().getContentLength() < 10000){
|
||||
logger.info("Request: "
|
||||
+ request.getMethod() + ": "
|
||||
+ request.getURI(), "http", gson.fromJson(requestBody, HashMap.class));
|
||||
logger.info("Request: {}: {}\n{}\n{}",
|
||||
request.getMethod(),
|
||||
request.getURI(),
|
||||
request.getHeaders().toSingleValueMap(),
|
||||
gson.toJson(gson.fromJson(requestBody, HashMap.class)));
|
||||
}
|
||||
ClientHttpResponse response = execution.execute(request, reqBody);
|
||||
InputStreamReader isr = new InputStreamReader(response.getBody());
|
||||
String body = new BufferedReader(isr).lines()
|
||||
.collect(Collectors.joining("\n"));
|
||||
try{
|
||||
logger.info("Response body: {}", "http", gson.fromJson(body, HashMap.class));
|
||||
logger.info("Response body:\n{}", gson.toJson(gson.fromJson(body, HashMap.class)));
|
||||
}catch (Exception exception){
|
||||
logger.info("Problem serializing resp: {}", "http", exception.getMessage());
|
||||
logger.info("Problem serializing resp: {}", exception.getMessage());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user