Add SwimlanesService #7

Manually merged
UmbertoF merged 3 commits from feature_swimlanes into develop 2019-11-12 15:04:20 +00:00
3 changed files with 110 additions and 2 deletions
Showing only changes of commit 926f47c799 - Show all commits

View File

@ -7,10 +7,42 @@ import wekan.wrapper.entity.Swimlane;
import java.util.List; import java.util.List;
public interface SwimlanesService { public interface SwimlanesService {
/**
* Get the list of swimlanes attached to a board.
*
* @param boardId The ID of the board
* @return The list of swimlanes
*/
@GET("/api/boards/{boardId}/swimlanes") @GET("/api/boards/{boardId}/swimlanes")
Call<List<Swimlane>> getAllSwimlanes(@Path("boardId") String boardId); Call<List<Swimlane>> getAllSwimlanes(@Path("boardId") String boardId);
/**
* Add a swimlane to a board.
*
* @param boardId The ID of the board
* @param swimlaneTitle The new title of the swimlane
* @return The new swimlane
*/
@FormUrlEncoded @FormUrlEncoded
@POST("/api/boards/{boardId}/swimlanes") @POST("/api/boards/{boardId}/swimlanes")
Call<Swimlane> newSwimlane(@Path("boardId") String boardId, @Field("title") String SwimlaneTitle); Call<Swimlane> newSwimlane(@Path("boardId") String boardId, @Field("title") String swimlaneTitle);
/**
* Get a swimlane.
*
* @param boardId The ID of the board
* @param swimlaneId The ID of the swimlane
* @return The swimlane
*/
@GET("/api/boards/{boardId}/swimlanes/{swimlaneId}")
Call<Swimlane> getSwimlane(@Path("boardId") String boardId, @Path("swimlaneId") String swimlaneId);
/**
* Delete a swimlane.
*
* @param boardId The ID of the board
* @param swimlaneId The ID of the swimlane
*/
@DELETE("/api/boards/{boardId}/swimlanes/{swimlaneId}")
Call<Void> deleteSwimlane(@Path("boardId") String boardId, @Path("swimlaneId") String swimlaneId);
} }

View File

@ -2,10 +2,19 @@ package wekan.wrapper.entity;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.util.Date;
public class Swimlane { public class Swimlane {
@SerializedName("_id") @SerializedName("_id")
private String id; private String id;
private String title; private String title;
private String boardId;
private Date createdAt;
private int sort;
private Color color;
private Date updatedAt;
private Date modifiedAt;
private String type;
public String getId() { public String getId() {
return id; return id;
@ -15,11 +24,45 @@ public class Swimlane {
return title; return title;
} }
public String getBoardId() {
return boardId;
}
public Date getCreatedAt() {
return createdAt;
}
public int getSort() {
return sort;
}
public Color getColor() {
return color;
}
public Date getUpdatedAt() {
return updatedAt;
}
public Date getModifiedAt() {
return modifiedAt;
}
public String getType() {
return type;
}
@Override @Override
public String toString() { public String toString() {
return "Swimlane{" + return "Swimlane{" +
"id='" + id + '\'' + "id='" + id + '\'' +
", title='" + title + '\'' + ", title='" + title + '\'' +
", boardId='" + boardId + '\'' +
", createdAt=" + createdAt +
", sort=" + sort +
", updatedAt=" + updatedAt +
", modifiedAt=" + modifiedAt +
", type='" + type + '\'' +
'}'; '}';
} }
} }

View File

@ -7,6 +7,7 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import retrofit2.Retrofit; import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.converter.gson.GsonConverterFactory;
import wekan.wrapper.entity.Color;
import wekan.wrapper.entity.Swimlane; import wekan.wrapper.entity.Swimlane;
import java.io.IOException; import java.io.IOException;
@ -86,6 +87,38 @@ public class SwimlanesServiceTest {
} }
} }
@Test
public void getSwimlane() {
MockResponse response = new MockResponse()
.setResponseCode(HttpURLConnection.HTTP_OK)
.setBody(SWIMLANE_2);
mockWebServer.enqueue(response);
try {
Swimlane sl = service.getSwimlane("TtjXrJyvPkG3xsbkw", "JNmpXKCupbtyPkYMG")
.execute().body();
assertNotNull(sl);
assertEquals("JNmpXKCupbtyPkYMG", sl.getId());
assertEquals("title 2", sl.getTitle());
assertEquals(Color.NAVY, sl.getColor());
} catch (IOException e) {
e.printStackTrace();
}
}
final static String SWIMLANE_1 = "{\n\"_id\": \"BS4AA79YABBCpDDau\",\n\"title\": \"title 1\"\n}"; final static String SWIMLANE_1 = "{\n\"_id\": \"BS4AA79YABBCpDDau\",\n\"title\": \"title 1\"\n}";
final static String SWIMLANE_2 = "{\n\"_id\": \"QxKYvz7ZW6pcDTwAq\",\n\"title\": \"title 2\"\n}"; final static String SWIMLANE_2 = "{" +
"\"_id\":\"JNmpXKCupbtyPkYMG\"," +
"\"title\":\"title 2\"," +
"\"boardId\":\"TtjXrJyvPkG3xsbkw\"," +
"\"sort\":1," +
"\"archived\":false," +
"\"createdAt\":\"2019-11-11T20:34:57.649Z\"," +
"\"updatedAt\":\"2019-11-12T13:56:13.844Z\"," +
"\"modifiedAt\":\"2019-11-12T13:56:13.844Z\"," +
"\"type\":\"swimlane\"," +
"\"color\":\"navy\"" +
"}";
} }