use of org.motechproject.mds.domain.RestOptions in project motech by motech.
the class SwaggerGenerator method addCrudEndpoints.
private void addCrudEndpoints(SwaggerModel swaggerModel, Entity entity, Locale locale) {
final String entityPath = ClassName.restUrl(entity.getName(), entity.getModule(), entity.getNamespace());
RestOptions restOptions = restOptionsOrDefault(entity);
if (restOptions.isAllowRead()) {
// retrieveAll and retrieveById
swaggerModel.addPathEntry(entityPath, HttpMethod.GET, readPathEntry(entity, locale));
}
if (restOptions.isAllowCreate()) {
// post new item
swaggerModel.addPathEntry(entityPath, HttpMethod.POST, postPathEntry(entity, locale));
}
if (restOptions.isAllowUpdate()) {
// update an existing item
swaggerModel.addPathEntry(entityPath, HttpMethod.PUT, putPathEntry(entity, locale));
}
if (restOptions.isAllowDelete()) {
// delete an item
swaggerModel.addPathEntry(entityPath + ID_PATHVAR, HttpMethod.DELETE, deletePathEntry(entity, locale));
}
}
use of org.motechproject.mds.domain.RestOptions in project motech by motech.
the class SwaggerGenerator method addDefinitions.
private void addDefinitions(SwaggerModel swaggerModel, Entity entity) {
RestOptions restOptions = restOptionsOrDefault(entity);
if (restOptions.supportsAnyOperation() || !entity.getLookupsExposedByRest().isEmpty()) {
// all fields, including generated ones
swaggerModel.addDefinition(entity.getClassName(), definition(entity, true, true));
swaggerModel.addDefinition(entity.getClassName() + "-WithMetadata", definitionWithMetadata(entity));
}
if (restOptions.isAllowCreate()) {
// no auto-generated fields
swaggerModel.addDefinition(definitionNewName(entity.getClassName()), definition(entity, false, false));
}
if (restOptions.isAllowUpdate()) {
// no auto-generated fields, except ID
swaggerModel.addDefinition(definitionUpdateName(entity.getClassName()), definition(entity, false, true));
}
}
Aggregations