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();
}
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);
}
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);
}
}
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);
}
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;
}
Aggregations