summaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/util/client/omsp/OMSPClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/util/client/omsp/OMSPClient.java')
-rw-r--r--src/main/java/at/gv/util/client/omsp/OMSPClient.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/at/gv/util/client/omsp/OMSPClient.java b/src/main/java/at/gv/util/client/omsp/OMSPClient.java
new file mode 100644
index 0000000..42ef55a
--- /dev/null
+++ b/src/main/java/at/gv/util/client/omsp/OMSPClient.java
@@ -0,0 +1,46 @@
+package at.gv.util.client.omsp;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.GetMethod;
+
+import at.gv.util.MiscUtil;
+import at.gv.util.xsd.omsp.SignedStatusResponse;
+
+public class OMSPClient {
+
+ public static SignedStatusResponse checkMandateStatus(String serviceURL, String mandateId, Date date) throws OMSPClientException {
+ MiscUtil.assertNotNull(serviceURL, "serviceURL");
+ MiscUtil.assertNotNull(mandateId, "mandateId");
+ HttpClient httpclient = new HttpClient();
+ GetMethod method = new GetMethod(serviceURL);
+ String queryString = mandateId;
+ if (date != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+ mandateId += "+" + sdf.format(date);
+ }
+ method.setQueryString(queryString);
+ try {
+ int code = httpclient.executeMethod(method);
+ if (code != 200) {
+ throw new OMSPClientException("Response code " + code + " returned. Must be 200.");
+ }
+ JAXBContext ctx = JAXBContext.newInstance(SignedStatusResponse.class.getPackage().getName());
+ return (SignedStatusResponse) ctx.createUnmarshaller().unmarshal(method.getResponseBodyAsStream());
+ } catch (HttpException e) {
+ throw new OMSPClientException(e);
+ } catch (IOException e) {
+ throw new OMSPClientException(e);
+ } catch (JAXBException e) {
+ throw new OMSPClientException(e);
+ }
+ }
+
+}