Search in sources :

Example 6 with RestOptions

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));
    }
}
Also used : RestOptions(org.motechproject.mds.domain.RestOptions)

Example 7 with RestOptions

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));
    }
}
Also used : RestOptions(org.motechproject.mds.domain.RestOptions)

Aggregations

RestOptions (org.motechproject.mds.domain.RestOptions)7 Field (org.motechproject.mds.domain.Field)3 Lookup (org.motechproject.mds.domain.Lookup)3 Tracking (org.motechproject.mds.domain.Tracking)2 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 DateTime (org.joda.time.DateTime)1 LocalDate (org.joda.time.LocalDate)1 Time (org.motechproject.commons.date.model.Time)1 Entity (org.motechproject.mds.domain.Entity)1 EntityAudit (org.motechproject.mds.domain.EntityAudit)1