1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-13 01:36:18 +00:00

#159: workflow db model

This commit is contained in:
Benjamin Gamard
2018-01-26 11:26:34 +01:00
parent 9ba49f35ff
commit 332ac9c109
16 changed files with 523 additions and 5 deletions

View File

@@ -1,3 +1,3 @@
api.current_version=${project.version}
api.min_version=1.0
db.version=14
db.version=15

View File

@@ -0,0 +1,67 @@
package com.sismics.docs.rest.resource;
import com.sismics.docs.core.dao.jpa.RouteModelDao;
import com.sismics.docs.core.dao.jpa.criteria.RouteModelCriteria;
import com.sismics.docs.core.dao.jpa.dto.RouteModelDto;
import com.sismics.docs.core.util.jpa.SortCriteria;
import com.sismics.rest.exception.ForbiddenClientException;
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObjectBuilder;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import java.util.List;
/**
* Route model REST resources.
*
* @author bgamard
*/
@Path("/routemodel")
public class RouteModelResource extends BaseResource {
/**
* Returns the list of all route models.
*
* @api {get} /routemodel Get route models
* @apiName GetRouteModel
* @apiGroup RouteModel
* @apiParam {Number} sort_column Column index to sort on
* @apiParam {Boolean} asc If true, sort in ascending order
* @apiSuccess {Object[]} routemodels List of route models
* @apiSuccess {String} routemodels.id ID
* @apiSuccess {String} routemodels.name Name
* @apiSuccess {Number} routemodels.create_date Create date (timestamp)
* @apiError (client) ForbiddenError Access denied
* @apiPermission user
* @apiVersion 1.5.0
*
* @return Response
*/
@GET
public Response list(
@QueryParam("sort_column") Integer sortColumn,
@QueryParam("asc") Boolean asc) {
if (!authenticate()) {
throw new ForbiddenClientException();
}
JsonArrayBuilder groups = Json.createArrayBuilder();
SortCriteria sortCriteria = new SortCriteria(sortColumn, asc);
RouteModelDao routeModelDao = new RouteModelDao();
List<RouteModelDto> routeModelDtoList = routeModelDao.findByCriteria(new RouteModelCriteria(), sortCriteria);
for (RouteModelDto routeModelDto : routeModelDtoList) {
groups.add(Json.createObjectBuilder()
.add("id", routeModelDto.getId())
.add("name", routeModelDto.getName())
.add("create_date", routeModelDto.getCreateTimestamp()));
}
JsonObjectBuilder response = Json.createObjectBuilder()
.add("routemodels", groups);
return Response.ok().entity(response.build()).build();
}
}

View File

@@ -1,3 +1,3 @@
api.current_version=${project.version}
api.min_version=1.0
db.version=14
db.version=15

View File

@@ -1,3 +1,3 @@
api.current_version=${project.version}
api.min_version=1.0
db.version=14
db.version=15

View File

@@ -0,0 +1,35 @@
package com.sismics.docs.rest;
import com.sismics.util.filter.TokenBasedSecurityFilter;
import org.junit.Assert;
import org.junit.Test;
import javax.json.JsonArray;
import javax.json.JsonObject;
/**
* Test the route model resource.
*
* @author bgamard
*/
public class TestRouteModelResource extends BaseJerseyTest {
/**
* Test the route model resource.
*/
@Test
public void testRouteModelResource() {
// Login admin
String adminToken = clientUtil.login("admin", "admin", false);
// Get all route models
JsonObject json = target().path("/routemodel")
.queryParam("sort_column", "1")
.queryParam("asc", "true")
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
JsonArray groups = json.getJsonArray("routemodels");
Assert.assertEquals(0, groups.size());
}
}