data tables api docs and remove fiedls option from data tables api

This commit is contained in:
John Woodlock
2012-10-05 14:52:00 +10:00
parent 47ed3e7165
commit 19f6485a41
4 changed files with 255 additions and 129 deletions
@@ -66,11 +66,11 @@ public class DataTableApiResource {
@GET
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String getDatatables(@QueryParam("appTable") final String appTable,
public String getDatatables(@QueryParam("apptable") final String apptable,
@Context final UriInfo uriInfo) {
List<DatatableData> result = this.readWriteNonCoreDataService
.retrieveDatatableNames(appTable);
.retrieveDatatableNames(apptable);
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo
.getQueryParameters());
@@ -79,14 +79,14 @@ public class DataTableApiResource {
}
@POST
@Path("register/{datatable}/{appTable}")
@Path("register/{datatable}/{apptable}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response registerDatatable(
@PathParam("datatable") final String datatable,
@PathParam("appTable") final String appTable) {
@PathParam("apptable") final String apptable) {
this.readWriteNonCoreDataService.registerDatatable(datatable, appTable);
this.readWriteNonCoreDataService.registerDatatable(datatable, apptable);
EntityIdentifier entityIdentifier = new EntityIdentifier();
return Response.ok().entity(entityIdentifier).build();
@@ -106,20 +106,19 @@ public class DataTableApiResource {
}
@GET
@Path("{datatable}/{appTableId}")
@Path("{datatable}/{apptableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String getDatatable(@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId,
@QueryParam("sqlFields") final String sqlFields,
@QueryParam("sqlOrder") final String sqlOrder,
@PathParam("apptableId") final Long apptableId,
@QueryParam("order") final String order,
@Context final UriInfo uriInfo) {
checkUserPermissionForDatatable(datatable, "READ");
GenericResultsetData results = this.readWriteNonCoreDataService
.retrieveDataTableGenericResultSet(datatable, appTableId,
sqlFields, sqlOrder, null);
.retrieveDataTableGenericResultSet(datatable, apptableId,
order, null);
String json = "";
final boolean genericResultSet = ApiParameterHelper.genericResultSet(uriInfo.getQueryParameters());
@@ -134,34 +133,34 @@ public class DataTableApiResource {
}
@POST
@Path("{datatable}/{appTableId}")
@Path("{datatable}/{apptableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response newDatatableEntry(
@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId,
@PathParam("apptableId") final Long apptableId,
final String jsonRequestBody) {
checkUserPermissionForDatatable(datatable, "CREATE");
Map<String, String> queryParams = getQueryParamsFromJsonRequestBody(jsonRequestBody);
this.readWriteNonCoreDataService.newDatatableEntry(datatable,
appTableId, queryParams);
apptableId, queryParams);
EntityIdentifier entityIdentifier = new EntityIdentifier(
Long.valueOf(appTableId));
Long.valueOf(apptableId));
return Response.ok().entity(entityIdentifier).build();
}
@PUT
@Path("{datatable}/{appTableId}")
@Path("{datatable}/{apptableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response updateDatatableEntryOnetoOne(
@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId,
@PathParam("apptableId") final Long apptableId,
final String jsonRequestBody) {
/*
* for updating one to one relationships (where foreign key is the
@@ -171,22 +170,22 @@ public class DataTableApiResource {
Map<String, String> queryParams = getQueryParamsFromJsonRequestBody(jsonRequestBody);
this.readWriteNonCoreDataService.updateDatatableEntryOnetoOne(
datatable, appTableId, queryParams);
datatable, apptableId, queryParams);
EntityIdentifier entityIdentifier = new EntityIdentifier(
Long.valueOf(appTableId));
Long.valueOf(apptableId));
return Response.ok().entity(entityIdentifier).build();
}
@PUT
@Path("{datatable}/{appTableId}/{datatableId}")
@Path("{datatable}/{apptableId}/{datatableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response updateDatatableEntryOnetoOne(
@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId,
@PathParam("apptableId") final Long apptableId,
@PathParam("datatableId") final Long datatableId,
final String jsonRequestBody) {
/*
@@ -197,51 +196,51 @@ public class DataTableApiResource {
Map<String, String> queryParams = getQueryParamsFromJsonRequestBody(jsonRequestBody);
this.readWriteNonCoreDataService.updateDatatableEntryOnetoMany(
datatable, appTableId, datatableId, queryParams);
datatable, apptableId, datatableId, queryParams);
EntityIdentifier entityIdentifier = new EntityIdentifier(
Long.valueOf(appTableId));
Long.valueOf(apptableId));
return Response.ok().entity(entityIdentifier).build();
}
@DELETE
@Path("{datatable}/{appTableId}")
@Path("{datatable}/{apptableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response deleteDatatableEntries(
@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId) {
@PathParam("apptableId") final Long apptableId) {
checkUserPermissionForDatatable(datatable, "DELETE");
this.readWriteNonCoreDataService.deleteDatatableEntries(datatable,
appTableId);
apptableId);
EntityIdentifier entityIdentifier = new EntityIdentifier(
Long.valueOf(appTableId));
Long.valueOf(apptableId));
return Response.ok().entity(entityIdentifier).build();
}
@DELETE
@Path("{datatable}/{appTableId}/{datatableId}")
@Path("{datatable}/{apptableId}/{datatableId}")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response deleteDatatableEntries(
@PathParam("datatable") final String datatable,
@PathParam("appTableId") final Long appTableId,
@PathParam("apptableId") final Long apptableId,
@PathParam("datatableId") final Long datatableId) {
checkUserPermissionForDatatable(datatable, "DELETE");
this.readWriteNonCoreDataService.deleteDatatableEntry(datatable,
appTableId, datatableId);
apptableId, datatableId);
EntityIdentifier entityIdentifier = new EntityIdentifier(
Long.valueOf(appTableId));
Long.valueOf(apptableId));
return Response.ok().entity(entityIdentifier).build();
@@ -18,7 +18,7 @@ public interface ReadWriteNonCoreDataService {
void deregisterDatatable(String datatable);
GenericResultsetData retrieveDataTableGenericResultSet(String datatable,
Long appTableId, String sqlFields, String sqlOrder, Long id);
Long appTableId, String order, Long id);
void newDatatableEntry(String datatable, Long appTableId,
Map<String, String> queryParams);
@@ -203,7 +203,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
long startTime = System.currentTimeMillis();
GenericResultsetData grs = retrieveDataTableGenericResultSet(datatable,
appTableId, null, null, null);
appTableId, null, null);
if (grs.getData().size() == 0)
throw new DataTableNotFoundException(datatable, appTableId);
@@ -240,7 +240,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
long startTime = System.currentTimeMillis();
GenericResultsetData grs = retrieveDataTableGenericResultSet(datatable,
appTableId, null, null, datatableId);
appTableId, null, datatableId);
if (grs.getData().size() == 0)
throw new DataTableNotFoundException(datatable, appTableId);
@@ -302,8 +302,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
@Override
public GenericResultsetData retrieveDataTableGenericResultSet(
String datatable, Long appTableId, String sqlFields,
String sqlOrder, Long id) {
String datatable, Long appTableId, String order, Long id) {
long startTime = System.currentTimeMillis();
@@ -312,23 +311,19 @@ public class ReadWriteNonCoreDataServiceImpl implements
List<ResultsetColumnHeader> columnHeaders = getDatatableResultsetColumnHeaders(datatable);
String sql = "select ";
if (sqlFields != null)
sql = sql + sqlFields;
else
sql = sql + " * ";
String sql = "";
// id only used for reading a specific entry in a one to many datatable
// (when updating)
if (id == null) {
sql = sql + " from `" + datatable + "` where "
sql = sql + "select * from `" + datatable + "` where "
+ getFKField(appTable) + " = " + appTableId;
} else {
sql = sql + " from `" + datatable + "` where id = " + id;
sql = sql + "select * from `" + datatable + "` where id = " + id;
}
if (sqlOrder != null)
sql = sql + " order by " + sqlOrder;
if (order != null)
sql = sql + " order by " + order;
List<ResultsetDataRow> result = fillDatatableResultSetDataRows(sql);
@@ -806,7 +801,8 @@ public class ReadWriteNonCoreDataServiceImpl implements
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
ApiParameterError error = ApiParameterError.parameterError(
"error.msg.invalid.columnValue",
"Value not found in Allowed Value list", columnHeader.getColumnName(), paramValue);
"Value not found in Allowed Value list",
columnHeader.getColumnName(), paramValue);
dataValidationErrors.add(error);
throw new PlatformApiDataValidationException(
"validation.msg.validation.errors.exist",
@@ -822,7 +818,8 @@ public class ReadWriteNonCoreDataServiceImpl implements
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
ApiParameterError error = ApiParameterError.parameterError(
"error.msg.invalid.columnValue",
"Value not found in Allowed Value list", columnHeader.getColumnName(), paramValue);
"Value not found in Allowed Value list",
columnHeader.getColumnName(), paramValue);
dataValidationErrors.add(error);
throw new PlatformApiDataValidationException(
"validation.msg.validation.errors.exist",