commit
007eac2965
|
@ -19,44 +19,55 @@
|
|||
|
||||
package biz.nellemann.libcvrapi;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import biz.nellemann.libcvrapi.pojo.Company;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import okhttp3.Credentials;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class CvrApi {
|
||||
|
||||
private final static Logger log = LoggerFactory.getLogger(CvrApi.class);
|
||||
private final OkHttpClient client;
|
||||
private static final Logger log = LoggerFactory.getLogger(CvrApi.class);
|
||||
private final OkHttpClient client = new OkHttpClient();
|
||||
|
||||
private final String userAgent;
|
||||
private final String authenticationToken;
|
||||
|
||||
protected String baseUrl = "https://rest.cvrapi.dk/v1/dk";
|
||||
private final String BASE_URL;
|
||||
|
||||
|
||||
public CvrApi(String userAgent, String authenticationToken) {
|
||||
this(userAgent, authenticationToken, null);
|
||||
}
|
||||
|
||||
public CvrApi(String userAgent, String authenticationToken, String baseUrl) {
|
||||
this.userAgent = userAgent;
|
||||
this.authenticationToken = authenticationToken;
|
||||
client = new OkHttpClient();
|
||||
if(baseUrl == null) {
|
||||
this.BASE_URL = "https://rest.cvrapi.dk/v1/dk";
|
||||
} else {
|
||||
this.BASE_URL = baseUrl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected String get(String url) throws IOException, Exception {
|
||||
protected String get(String url) throws Exception {
|
||||
|
||||
String credential = Credentials.basic(authenticationToken, "");
|
||||
|
||||
Request request = new Request.Builder().url(url).header("User-Agent", userAgent)
|
||||
.header("Authorization", credential).addHeader("Accept", "application/json;").build();
|
||||
Request request = new Request
|
||||
.Builder()
|
||||
.url(url)
|
||||
.header("User-Agent", userAgent)
|
||||
.header("Authorization", credential)
|
||||
.addHeader("Accept", "application/json;")
|
||||
.build();
|
||||
|
||||
Response response = client.newCall(request).execute();
|
||||
switch (response.code()) {
|
||||
|
@ -71,7 +82,6 @@ public class CvrApi {
|
|||
default:
|
||||
throw new Exception("get() - Unknown Error - status code: " + response.code());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -82,9 +92,9 @@ public class CvrApi {
|
|||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
protected String getCompanyJson(String vatNumber) throws IOException, Exception {
|
||||
String response = get(baseUrl + "/company/" + vatNumber);
|
||||
log.debug("getCompanyJson() response: " + response);
|
||||
protected String getCompanyJson(String vatNumber) throws Exception {
|
||||
String response = get(BASE_URL + "/company/" + vatNumber);
|
||||
log.debug("getCompanyJson() response: {}", response);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -95,10 +105,9 @@ public class CvrApi {
|
|||
* @param json
|
||||
* @return
|
||||
*/
|
||||
protected Company parseJsonIntoCompany(String json) throws JsonSyntaxException {
|
||||
protected Company parseJsonIntoCompany(String json) {
|
||||
Gson gson = new Gson();
|
||||
Company company = gson.fromJson(json, Company.class);
|
||||
return company;
|
||||
return gson.fromJson(json, Company.class);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -12,8 +12,7 @@ class CvrApiSpec extends Specification {
|
|||
MockWebServer mockServer = new MockWebServer();
|
||||
|
||||
def setup() {
|
||||
api = new CvrApi("Test User Agent", "testAuthToken")
|
||||
mockServer.start();
|
||||
mockServer.start()
|
||||
}
|
||||
|
||||
def cleanup() {
|
||||
|
@ -22,6 +21,7 @@ class CvrApiSpec extends Specification {
|
|||
|
||||
void "test unsuccessful parsing of JSON"() {
|
||||
setup:
|
||||
api = new CvrApi("Test User Agent", "testAuthToken")
|
||||
def testJson = "{'foo':'bar'}"
|
||||
|
||||
when:
|
||||
|
@ -33,6 +33,7 @@ class CvrApiSpec extends Specification {
|
|||
|
||||
void "test unsuccessful parsing of JSON w. VAT as text"() {
|
||||
setup:
|
||||
api = new CvrApi("Test User Agent", "testAuthToken")
|
||||
def testJson = "{'vat':'abcd1234'}"
|
||||
|
||||
when:
|
||||
|
@ -45,6 +46,7 @@ class CvrApiSpec extends Specification {
|
|||
void "test successful parsing company with CVR 25063864"() {
|
||||
|
||||
setup:
|
||||
api = new CvrApi("Test User Agent", "testAuthToken")
|
||||
def testFile = new File(getClass().getResource('/25063864.json').toURI())
|
||||
def testJson = testFile.getText('UTF-8')
|
||||
|
||||
|
@ -63,6 +65,7 @@ class CvrApiSpec extends Specification {
|
|||
void "test successful parsing of company with CVR 15027800"() {
|
||||
|
||||
setup:
|
||||
api = new CvrApi("Test User Agent", "testAuthToken")
|
||||
def testFile = new File(getClass().getResource('/15027800.json').toURI())
|
||||
def testJson = testFile.getText('UTF-8')
|
||||
|
||||
|
@ -83,7 +86,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setBody("{}"));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def jsonString = api.getCompanyJson("15027800")
|
||||
|
@ -100,7 +103,7 @@ class CvrApiSpec extends Specification {
|
|||
def testJson = testFile.getText('UTF-8')
|
||||
mockServer.enqueue(new MockResponse().setBody(testJson));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.getCompanyByVatNumber("25063864")
|
||||
|
@ -114,7 +117,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setBody("{'foo':'bar'}"));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.getCompanyByVatNumber("15027800")
|
||||
|
@ -127,7 +130,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setBody(''));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.getCompanyByVatNumber("15027800")
|
||||
|
@ -140,6 +143,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setResponseCode(404));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.get(baseUrl.toString())
|
||||
|
@ -153,7 +157,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setResponseCode(401));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.get(baseUrl.toString())
|
||||
|
@ -167,7 +171,7 @@ class CvrApiSpec extends Specification {
|
|||
setup:
|
||||
mockServer.enqueue(new MockResponse().setResponseCode(405));
|
||||
HttpUrl baseUrl = mockServer.url("/v1/dk/");
|
||||
api.baseUrl = baseUrl.toString()
|
||||
api = new CvrApi("Test User Agent", "testAuthToken", baseUrl.toString())
|
||||
|
||||
when:
|
||||
def company = api.get(baseUrl.toString())
|
||||
|
|
Loading…
Reference in a new issue