Search in sources :

Example 1 with RestOptions

use of org.motechproject.mds.domain.RestOptions in project motech by motech.

the class EntityWriter method writeRestApiSettings.

private void writeRestApiSettings() throws IOException {
    jsonWriter.name("rest");
    jsonWriter.beginObject();
    RestOptions restOptions = null != entity.getRestOptions() ? entity.getRestOptions() : new RestOptions(entity);
    writeRestApiFields(restOptions);
    writeRestApiActions(restOptions);
    writeRestApiLookups(restOptions);
    jsonWriter.endObject();
}
Also used : RestOptions(org.motechproject.mds.domain.RestOptions)

Example 2 with RestOptions

use of org.motechproject.mds.domain.RestOptions in project motech by motech.

the class EntityReader method readRestApiActions.

private void readRestApiActions() throws IOException {
    RestOptions restOptions = new RestOptions();
    objectReader.expect("actions");
    jsonReader.beginObject();
    restOptions.setAllowCreate(objectReader.readBoolean("create"));
    restOptions.setAllowRead(objectReader.readBoolean("read"));
    restOptions.setAllowUpdate(objectReader.readBoolean("update"));
    restOptions.setAllowDelete(objectReader.readBoolean("delete"));
    jsonReader.endObject();
    entity.setRestOptions(restOptions);
}
Also used : RestOptions(org.motechproject.mds.domain.RestOptions)

Example 3 with RestOptions

use of org.motechproject.mds.domain.RestOptions in project motech by motech.

the class AllEntityDrafts method setProperties.

public void setProperties(EntityDraft draft, Entity entity, String username) {
    draft.setParentEntity(entity);
    draft.setParentVersion(entity.getEntityVersion());
    draft.setDraftOwnerUsername(username);
    draft.setLastModificationDate(DateUtil.nowUTC());
    draft.setName(entity.getName());
    draft.setClassName(entity.getClassName());
    draft.setNamespace(entity.getNamespace());
    draft.setModule(entity.getModule());
    draft.setSecurityMode(entity.getSecurityMode());
    draft.setSecurityMembers(new HashSet<>(entity.getSecurityMembers()));
    draft.setReadOnlySecurityMode(entity.getReadOnlySecurityMode());
    draft.setReadOnlySecurityMembers(new HashSet<>(entity.getReadOnlySecurityMembers()));
    draft.getFields().clear();
    for (Field field : entity.getFields()) {
        draft.addField(field.copy());
    }
    draft.getLookups().clear();
    for (Lookup lookup : entity.getLookups()) {
        Lookup newLookup = lookup.copy(draft.getFields());
        draft.addLookup(newLookup);
    }
    if (entity.getRestOptions() != null) {
        RestOptions restOptions = entity.getRestOptions().copy();
        restOptions.setEntity(draft);
        draft.setRestOptions(restOptions);
    }
    if (entity.getTracking() != null) {
        Tracking tracking = entity.getTracking().copy();
        tracking.setEntity(draft);
        draft.setTracking(tracking);
    }
}
Also used : Field(org.motechproject.mds.domain.Field) Tracking(org.motechproject.mds.domain.Tracking) Lookup(org.motechproject.mds.domain.Lookup) RestOptions(org.motechproject.mds.domain.RestOptions)

Example 4 with RestOptions

use of org.motechproject.mds.domain.RestOptions in project motech by motech.

the class AllEntityAudits method createAudit.

public EntityAudit createAudit(Entity entity, String username) {
    EntityAudit audit = new EntityAudit();
    audit.setOwnerUsername(username);
    audit.setModificationDate(DateUtil.nowUTC());
    audit.setVersion(entity.getEntityVersion());
    audit.setName(entity.getName());
    audit.setClassName(entity.getClassName());
    audit.setNamespace(entity.getNamespace());
    audit.setTableName(entity.getTableName());
    audit.setModule(entity.getModule());
    for (Field field : entity.getFields()) {
        Field tmp = field.copy();
        tmp.setId(null);
        audit.addField(tmp);
    }
    for (Lookup lookup : entity.getLookups()) {
        audit.addLookup(lookup.copy(entity.getFields()));
    }
    if (entity.getRestOptions() != null) {
        RestOptions restOptions = entity.getRestOptions().copy();
        restOptions.setEntity(audit);
        audit.setRestOptions(restOptions);
    }
    if (entity.getTracking() != null) {
        Tracking tracking = entity.getTracking().copy();
        tracking.setEntity(audit);
        audit.setTracking(tracking);
    }
    return create(audit);
}
Also used : EntityAudit(org.motechproject.mds.domain.EntityAudit) Field(org.motechproject.mds.domain.Field) Tracking(org.motechproject.mds.domain.Tracking) Lookup(org.motechproject.mds.domain.Lookup) RestOptions(org.motechproject.mds.domain.RestOptions)

Example 5 with RestOptions

use of org.motechproject.mds.domain.RestOptions in project motech by motech.

the class SwaggerGeneratorTest method entities.

private List<Entity> entities() {
    List<Entity> entities = new ArrayList<>();
    // Entity 1
    Entity entity = new Entity();
    entity.setClassName("org.example.TestEntity");
    entity.setName("TestEntity");
    entity.setModule("example");
    entity.setNamespace("ns");
    RestOptions restOptions = new RestOptions(entity);
    restOptions.setAllowCreate(true);
    restOptions.setAllowRead(true);
    entity.setRestOptions(restOptions);
    List<Field> fields = new ArrayList<>();
    Field strField = field("str", String.class, true, true);
    strField.setTooltip("A string field used in tests");
    fields.add(strField);
    fields.add(field("integerField", Integer.class, true, true));
    Field longField = field("longField", Long.class, false, true);
    fields.add(longField);
    fields.add(field("timeField", Time.class, false, true));
    fields.add(field("ignoredField", String.class, false, false));
    fields.addAll(autoGeneratedFields());
    entity.setFields(fields);
    Lookup lookup = new Lookup("Find By Str & Long", true, true, asList(strField, longField), true, "findByStrLong");
    lookup.setFieldsOrder(asList("str", "longField"));
    entity.addLookup(lookup);
    entities.add(entity);
    // Entity 2
    entity = new Entity();
    entity.setClassName("org.motechproject.ExampleEnt");
    entity.setName("ExampleEnt");
    restOptions = new RestOptions(entity);
    restOptions.setAllowUpdate(true);
    restOptions.setAllowDelete(true);
    entity.setRestOptions(restOptions);
    fields = new ArrayList<>();
    fields.add(field("doubleField", Double.class, true, true));
    fields.add(field("dateField", Date.class, false, true));
    Field dtField = field("dtField", DateTime.class, false, true);
    fields.add(dtField);
    fields.add(field("ldField", LocalDate.class, false, true));
    Field localeField = field("localeField", Locale.class, false, true);
    fields.add(localeField);
    Field listField = FieldTestHelper.fieldWithComboboxSettings(entity, "listField", "list disp", List.class, true, false, asList("one", "two", "three"));
    listField.setExposedViaRest(true);
    listField.setRequired(true);
    fields.add(listField);
    fields.addAll(autoGeneratedFields());
    entity.setFields(fields);
    lookup = new Lookup("By Dt and Locale", false, true, asList(dtField, localeField), false, "byDtAndLocale");
    lookup.setRangeLookupFields(asList(dtField.getName()));
    lookup.setSetLookupFields(asList(localeField.getName()));
    lookup.setFieldsOrder(asList("dtField", "localeField"));
    entity.addLookup(lookup);
    entities.add(entity);
    return entities;
}
Also used : Entity(org.motechproject.mds.domain.Entity) ArrayList(java.util.ArrayList) RestOptions(org.motechproject.mds.domain.RestOptions) Time(org.motechproject.commons.date.model.Time) DateTime(org.joda.time.DateTime) LocalDate(org.joda.time.LocalDate) Date(java.util.Date) LocalDate(org.joda.time.LocalDate) Field(org.motechproject.mds.domain.Field) Lookup(org.motechproject.mds.domain.Lookup)

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