Skip to content

Commit 61a27fa

Browse files
authored
RESTWS-957: Fix Swagger definition errors for subclass resources in modules extending REST servicae (#630)
1 parent 2bb38f2 commit 61a27fa

File tree

6 files changed

+400
-330
lines changed

6 files changed

+400
-330
lines changed

omod-1.10/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs1_10/OrderResource1_10.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,11 @@ public Model getCREATEModel(Representation rep) {
145145
.property("concept", new RefProperty("#/definitions/ConceptCreate"))
146146
.property("orderer", new RefProperty("#/definitions/UserCreate"))
147147
.property("previousOrder", new RefProperty("#/definitions/OrderCreate"))
148-
.property("orderReason", new RefProperty("#/definitions/ConceptCreate"));
148+
.property("orderReason", new RefProperty("#/definitions/ConceptCreate"))
149+
.property("orderReasonNonCoded", new StringProperty())
150+
.property("instructions", new StringProperty())
151+
.property("commentToFulfiller", new StringProperty());
149152
}
150-
//FIXME missing prop: type
151153
return model;
152154
}
153155

omod-1.8/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs1_8/ObsResource1_8.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public Model getCREATEModel(Representation rep) {
229229

230230
@Override
231231
public Model getUPDATEModel(Representation rep) {
232-
return new ModelImpl(); //FIXME missing props
232+
return getCREATEModel(rep);
233233
}
234234

235235
/**

omod-1.9/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs1_9/ConceptReferenceTermResource1_9.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import io.swagger.models.ModelImpl;
1414
import io.swagger.models.properties.RefProperty;
1515
import io.swagger.models.properties.StringProperty;
16+
import io.swagger.models.properties.UUIDProperty;
1617
import org.apache.commons.lang3.StringUtils;
1718
import org.openmrs.ConceptReferenceTerm;
1819
import org.openmrs.api.ConceptService;
@@ -95,28 +96,26 @@ public DelegatingResourceDescription getCreatableProperties() {
9596
@Override
9697
public Model getGETModel(Representation rep) {
9798
ModelImpl model = (ModelImpl) super.getGETModel(rep);
98-
if (rep instanceof DefaultRepresentation || rep instanceof FullRepresentation) {
99-
model
100-
.property("code", new StringProperty())
101-
.property("version", new StringProperty());
102-
103-
}
10499
if (rep instanceof DefaultRepresentation) {
105-
model
106-
.property("conceptSource", new RefProperty("#/definitions/ConceptsourceGetRef"));
100+
model.property("uuid", new UUIDProperty());
101+
model.property("conceptSource", new RefProperty("#/definitions/ConceptsourceGetRef"));
102+
model.property("code", new StringProperty());
103+
model.property("version", new StringProperty());
107104
} else if (rep instanceof FullRepresentation) {
108-
model
109-
.property("conceptSource", new RefProperty("#/definitions/ConceptsourceGet"));
105+
model.property("uuid", new UUIDProperty());
106+
model.property("conceptSource", new RefProperty("#/definitions/ConceptsourceGetFull"));
107+
model.property("code", new StringProperty());
108+
model.property("version", new StringProperty());
109+
model.property("auditInfo", new StringProperty());
110110
}
111111
return model;
112-
113112
}
114113

115114
@Override
116115
public Model getCREATEModel(Representation rep) {
117116
return ((ModelImpl) super.getCREATEModel(rep))
118117
.property("code", new StringProperty())
119-
.property("conceptSource", new StringProperty())
118+
.property("conceptSource", new RefProperty("#/definitions/ConceptsourceCreate"))
120119
.property("version", new StringProperty())
121120

122121
.required("code").required("conceptSource");

omod-2.0/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs2_0/ConceptProposalResource2_0.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
*/
1010
package org.openmrs.module.webservices.rest.web.v1_0.resource.openmrs2_0;
1111

12+
import io.swagger.models.Model;
13+
import io.swagger.models.ModelImpl;
14+
import io.swagger.models.properties.DateProperty;
15+
import io.swagger.models.properties.RefProperty;
16+
import io.swagger.models.properties.StringProperty;
1217
import org.openmrs.Concept;
1318
import org.openmrs.ConceptProposal;
1419
import org.openmrs.User;
@@ -107,6 +112,49 @@ public DelegatingResourceDescription getRepresentationDescription(Representation
107112
return null;
108113
}
109114

115+
@Override
116+
public Model getGETModel(Representation rep) {
117+
ModelImpl model = (ModelImpl) super.getGETModel(rep);
118+
if (rep instanceof DefaultRepresentation) {
119+
model.property("uuid", new StringProperty().example("uuid"));
120+
model.property("display", new StringProperty());
121+
model.property("encounter", new RefProperty("#/definitions/EncounterGetRef"));
122+
model.property("originalText", new StringProperty());
123+
model.property("finalText", new StringProperty());
124+
model.property("state", new StringProperty());
125+
model.property("comments", new StringProperty());
126+
model.property("occurrences", new StringProperty());
127+
model.property("creator", new RefProperty("#/definitions/UserGetRef"));
128+
model.property("dateCreated", new DateProperty());
129+
} else if (rep instanceof FullRepresentation) {
130+
model.property("uuid", new StringProperty().example("uuid"));
131+
model.property("display", new StringProperty());
132+
model.property("encounter", new RefProperty("#/definitions/EncounterGet"));
133+
model.property("obsConcept", new RefProperty("#/definitions/ConceptGet"));
134+
model.property("obs", new RefProperty("#/definitions/ObsGet"));
135+
model.property("mappedConcept", new RefProperty("#/definitions/ConceptGet"));
136+
model.property("originalText", new StringProperty());
137+
model.property("finalText", new StringProperty());
138+
model.property("state", new StringProperty());
139+
model.property("comments", new StringProperty());
140+
model.property("occurrences", new StringProperty());
141+
model.property("creator", new RefProperty("#/definitions/UserGet"));
142+
model.property("dateCreated", new DateProperty());
143+
model.property("changedBy", new RefProperty("#/definitions/UserGet"));
144+
model.property("dateChanged", new DateProperty());
145+
} else if (rep instanceof RefRepresentation) {
146+
model.property("uuid", new StringProperty().example("uuid"));
147+
model.property("display", new StringProperty());
148+
model.property("encounter", new RefProperty("#/definitions/EncounterGetRef"));
149+
model.property("originalText", new StringProperty());
150+
model.property("state", new StringProperty());
151+
model.property("occurrences", new StringProperty());
152+
model.property("changedBy", new RefProperty("#/definitions/UserGetRef"));
153+
model.property("dateChanged", new DateProperty());
154+
}
155+
return model;
156+
}
157+
110158
@PropertyGetter("occurrences")
111159
public Integer getOccurrencesProperty(ConceptProposal proposal) {
112160
Map<String, List<ConceptProposal>> proposalsMap = getProposalsMapByOriginalText(false);
@@ -128,6 +176,15 @@ public DelegatingResourceDescription getCreatableProperties() throws ResourceDoe
128176
return description;
129177
}
130178

179+
@Override
180+
public Model getCREATEModel(Representation rep) {
181+
return new ModelImpl()
182+
.property("originalText", new StringProperty())
183+
.property("mappedConcept", new RefProperty("#/definitions/ConceptCreate"))
184+
.property("encounter", new RefProperty("#/definitions/EncounterCreate"))
185+
.property("obsConcept", new RefProperty("#/definitions/ConceptCreate"));
186+
}
187+
131188
@Override
132189
public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoesNotSupportOperationException {
133190
DelegatingResourceDescription description = new DelegatingResourceDescription();
@@ -139,6 +196,17 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe
139196
return description;
140197
}
141198

199+
@Override
200+
public Model getUPDATEModel(Representation rep) {
201+
ModelImpl model = (ModelImpl) super.getUPDATEModel(rep);
202+
return model
203+
.property("finalText", new StringProperty())
204+
.property("mappedConcept", new RefProperty("#/definitions/ConceptCreate"))
205+
.property("encounter", new RefProperty("#/definitions/EncounterCreate"))
206+
.property("obsConcept", new RefProperty("#/definitions/ConceptCreate"))
207+
.property("comments", new StringProperty());
208+
}
209+
142210
@Override
143211
public ConceptProposal getByUniqueId(String uniqueId) {
144212
return Context.getConceptService().getConceptProposalByUuid(uniqueId);

omod-2.0/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs2_0/ConceptStateConversionResource2_0.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,19 @@ public Model getCREATEModel(Representation rep) {
114114
ModelImpl model = new ModelImpl();
115115
if (rep instanceof DefaultRepresentation) {
116116
model
117-
.property("concept", new RefProperty("#/definitions/ConceptGetRef"))
118-
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowCreateRef")))
119-
.property("programWorkflowState", new ArrayProperty(new RefProperty("#/definitions/WorkflowStateCreateRef")));
117+
.property("concept", new RefProperty("#/definitions/ConceptCreate"))
118+
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowCreate")))
119+
.property("programWorkflowState", new ArrayProperty(new RefProperty("#/definitions/WorkflowStateCreate")));
120120
} else if (rep instanceof FullRepresentation) {
121121
model
122-
.property("concept", new RefProperty("#/definitions/ConceptGetRef"))
123-
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowGet")))
122+
.property("concept", new RefProperty("#/definitions/ConceptCreateFull"))
123+
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowCreateFull")))
124124
.property("programWorkflowState", new ArrayProperty(new RefProperty("#/definitions/WorkflowStateGet")));
125125
} else if (rep instanceof RefRepresentation) {
126126
model
127-
.property("concept", new RefProperty("#/definitions/ConceptGetRef"))
128-
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowCreateRef")))
129-
.property("programWorkflowState", new ArrayProperty(new RefProperty("#/definitions/WorkflowStateCreateRef")));
127+
.property("concept", new RefProperty("#/definitions/ConceptCreate"))
128+
.property("programWorkflow", new ArrayProperty(new RefProperty("#/definitions/WorkflowCreate")))
129+
.property("programWorkflowState", new ArrayProperty(new RefProperty("#/definitions/WorkflowStateCreate")));
130130
}
131131
return model;
132132
}

0 commit comments

Comments
 (0)