diff --git a/pom.xml b/pom.xml
index 01690d5..5ae9233 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,15 @@
provided
+
+ org.springframework
+ spring-web
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
com.github.stefanbirkner
system-rules
diff --git a/src/main/java/cz/brmlab/wm/Application.java b/src/main/java/cz/brmlab/wm/Application.java
index 04623d1..32b37c0 100644
--- a/src/main/java/cz/brmlab/wm/Application.java
+++ b/src/main/java/cz/brmlab/wm/Application.java
@@ -2,6 +2,9 @@ package cz.brmlab.wm;
import cz.brmlab.wm.utils.Exceptions.BrmException;
import cz.brmlab.wm.wekan.WekanConfiguration;
+import cz.brmlab.wm.wekan.pojo.card.CardRequest;
+import cz.brmlab.wm.wekan.rest.CardPost;
+import cz.brmlab.wm.wekan.rest.LoginPost;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
@@ -23,6 +26,12 @@ public class Application implements CommandLineRunner {
try {
WekanConfiguration wekanConfiguration = new WekanConfiguration();
+ LoginPost loginPost = new LoginPost(wekanConfiguration);
+ loginPost.login();
+
+ CardPost cardPost = new CardPost(loginPost.getToken(), wekanConfiguration);
+ cardPost.postCard("Test from spring", "Test card from awesome spring app.\nAnd next line");
+
} catch (BrmException ex) {
System.exit(ex.getExitCode().getCode());
}
diff --git a/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardRequest.java b/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardRequest.java
new file mode 100644
index 0000000..6d75b72
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardRequest.java
@@ -0,0 +1,15 @@
+package cz.brmlab.wm.wekan.pojo.card;
+
+import cz.brmlab.wm.wekan.WekanConfiguration;
+import cz.brmlab.wm.wekan.pojo.login.LoginToken;
+import lombok.Data;
+
+@Data
+public class CardRequest {
+
+ private String title;
+ private String description;
+ private String authorId;
+ private final String swimlaneId = "Default";
+
+}
diff --git a/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardResponse.java b/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardResponse.java
new file mode 100644
index 0000000..94e6b2f
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/pojo/card/CardResponse.java
@@ -0,0 +1,10 @@
+package cz.brmlab.wm.wekan.pojo.card;
+
+import lombok.Data;
+
+@Data
+public class CardResponse {
+
+ private String id;
+
+}
diff --git a/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginRequest.java b/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginRequest.java
new file mode 100644
index 0000000..1d812d5
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginRequest.java
@@ -0,0 +1,13 @@
+package cz.brmlab.wm.wekan.pojo.login;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class LoginRequest implements Serializable {
+
+ private String username;
+ private String password;
+
+}
diff --git a/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginToken.java b/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginToken.java
new file mode 100644
index 0000000..a696226
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/pojo/login/LoginToken.java
@@ -0,0 +1,10 @@
+package cz.brmlab.wm.wekan.pojo.login;
+
+import lombok.Data;
+
+@Data
+public class LoginToken {
+ public String id;
+ public String token;
+ public String tokenExpires;
+}
diff --git a/src/main/java/cz/brmlab/wm/wekan/rest/CardPost.java b/src/main/java/cz/brmlab/wm/wekan/rest/CardPost.java
new file mode 100644
index 0000000..8280673
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/rest/CardPost.java
@@ -0,0 +1,41 @@
+package cz.brmlab.wm.wekan.rest;
+
+import cz.brmlab.wm.wekan.WekanConfiguration;
+import cz.brmlab.wm.wekan.pojo.card.CardRequest;
+import cz.brmlab.wm.wekan.pojo.card.CardResponse;
+import cz.brmlab.wm.wekan.pojo.login.LoginToken;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.client.RestTemplate;
+
+public class CardPost {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CardPost.class);
+
+ private final LoginToken token;
+ private final WekanConfiguration configuration;
+
+ public CardPost(LoginToken token, WekanConfiguration configuration) {
+ this.token = token;
+ this.configuration = configuration;
+ }
+
+ public CardResponse postCard(String title, String description) {
+ CardRequest cardRequest = new CardRequest();
+ cardRequest.setAuthorId(token.getId());
+ cardRequest.setTitle(title);
+ cardRequest.setDescription(description);
+
+ String cardUrl = configuration.getWekanUrl()
+ + "/api/boards"
+ + configuration.getWekanBoard()
+ + "/lists/"
+ + configuration.getWekanList() + "cards";
+
+ RestTemplate restTemplate = new RestTemplate();
+ LOG.debug("Sending card: {}", cardRequest);
+ CardResponse cardResponse = restTemplate.postForObject(cardUrl, cardRequest, CardResponse.class);
+
+ }
+
+}
diff --git a/src/main/java/cz/brmlab/wm/wekan/rest/LoginPost.java b/src/main/java/cz/brmlab/wm/wekan/rest/LoginPost.java
new file mode 100644
index 0000000..b201fd4
--- /dev/null
+++ b/src/main/java/cz/brmlab/wm/wekan/rest/LoginPost.java
@@ -0,0 +1,34 @@
+package cz.brmlab.wm.wekan.rest;
+
+import cz.brmlab.wm.wekan.WekanConfiguration;
+import cz.brmlab.wm.wekan.pojo.login.LoginRequest;
+import cz.brmlab.wm.wekan.pojo.login.LoginToken;
+import lombok.Getter;
+import org.springframework.web.client.RestTemplate;
+
+public class LoginPost {
+
+ private final WekanConfiguration configuration;
+
+ @Getter
+ private LoginToken token;
+
+ public LoginPost(WekanConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+
+ public void login() {
+
+ String loginUrl = configuration.getWekanUrl() + "/users/login";
+
+ LoginRequest loginRequest = new LoginRequest();
+ loginRequest.setUsername(configuration.getWekanUser());
+ loginRequest.setPassword(configuration.getWekanPassword());
+
+ RestTemplate restTemplate = new RestTemplate();
+ token = restTemplate.postForObject(loginUrl, loginRequest, LoginToken.class);
+
+ System.out.println(token);
+ }
+}