id.co.teleanjar.ppobws.restclient.RestClientService.java Source code

Java tutorial

Introduction

Here is the source code for id.co.teleanjar.ppobws.restclient.RestClientService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package id.co.teleanjar.ppobws.restclient;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Repository;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;

/**
 *
 * @author moe
 */
@Repository
public class RestClientService {
    private final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(this.getClass());

    public HttpHeaders createHeaders(final String username, final String password) {
        return new HttpHeaders() {
            {
                String auth = username + ":" + password;
                byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));
                String authHeader = "Basic " + new String(encodedAuth);
                set("Authorization", authHeader);
            }
        };
    }

    public User getUser(String username) {
        RestTemplate restTemplate = new RestTemplate();

        //User user = restTemplate.getForObject("http://localhost:8080/ppobws/api/user?username=" + username, User.class);

        String uri = "http://localhost:8080/ppobws/api/user?username=" + username;

        ResponseEntity<User> respEntity = restTemplate.exchange(uri, HttpMethod.GET,
                new HttpEntity<String>(createHeaders("superuser", "passwordku")), User.class);

        return respEntity.getBody();
    }

    public Map<String, Object> inquiry(String idpel, String idloket, String merchantCode) throws IOException {
        String uri = "http://localhost:8080/ppobws/api/produk";
        RestTemplate restTemplate = new RestTemplate();

        HttpHeaders headers = createHeaders("superuser", "passwordku");
        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(uri).queryParam("idpel", idpel)
                .queryParam("idloket", idloket).queryParam("merchantcode", merchantCode);
        HttpEntity<?> entity = new HttpEntity<>(headers);

        ResponseEntity<String> httpResp = restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET,
                entity, String.class);
        String json = httpResp.getBody();
        LOGGER.info("JSON [{}]", json);
        LOGGER.info("STATUS [{}]", httpResp.getStatusCode().toString());

        Map<String, Object> map = new HashMap<>();
        ObjectMapper mapper = new ObjectMapper();

        map = mapper.readValue(json, new TypeReference<HashMap<String, Object>>() {
        });
        return map;
    }

}