@@ -77,8 +77,6 @@ public class SwaggerSpecificationCreator {
7777
7878 private static Swagger swagger ;
7979
80- private static String cachedJson ;
81-
8280 private String host ;
8381
8482 private String basePath ;
@@ -148,15 +146,14 @@ private void BuildJSON() {
148146 }
149147
150148 public String getJSON () {
151- if (isCached () && cachedJson != null ) {
149+ if (isCached ()) {
152150 log .info ("Returning a cached copy of Swagger specification" );
153- return cachedJson ;
151+ initSwagger ();
152+ } else {
153+ swagger = new Swagger ();
154+ BuildJSON ();
154155 }
155-
156- swagger = new Swagger ();
157- BuildJSON ();
158- cachedJson = createJSON ();
159- return cachedJson ;
156+ return createJSON ();
160157 }
161158
162159 private void addDefaultDefinitions () {
@@ -834,8 +831,8 @@ private void addSubclassOperations() {
834831
835832 Map <String , Property > properties = definition .getProperties ();
836833
837- // 2. merge subclass properties into definition
838- for (Map .Entry <String , Property > prop : SwaggerGenerationUtil . generateGETModel ( resourceHandler , Representation .FULL ).getProperties ()
834+ // 2. merge subclass properties into definition
835+ for (Map .Entry <String , Property > prop : resourceHandler . getGETModel ( Representation .FULL ).getProperties ()
839836 .entrySet ()) {
840837 if (properties .get (prop .getKey ()) == null ) {
841838 properties .put (prop .getKey (), prop .getValue ());
@@ -847,6 +844,36 @@ private void addSubclassOperations() {
847844 }
848845 }
849846
847+ @ Deprecated
848+ private List <org .openmrs .module .webservices .docs .swagger .Parameter > getParametersListForSearchHandlers (
849+ String resourceName , String searchHandlerId , int queryIndex ) {
850+ List <org .openmrs .module .webservices .docs .swagger .Parameter > parameters = new ArrayList <org .openmrs .module .webservices .docs .swagger .Parameter >();
851+ String resourceURL = getResourceUrl (getBaseUrl (), resourceName );
852+ for (SearchHandlerDoc searchDoc : searchHandlerDocs ) {
853+ if (searchDoc .getSearchHandlerId ().equals (searchHandlerId ) && searchDoc .getResourceURL ().equals (resourceURL )) {
854+ SearchQueryDoc queryDoc = searchDoc .getSearchQueriesDoc ().get (queryIndex );
855+ for (SearchParameter requiredParameter : queryDoc .getRequiredParameters ()) {
856+ org .openmrs .module .webservices .docs .swagger .Parameter parameter = new org .openmrs .module .webservices .docs .swagger .Parameter ();
857+ parameter .setName (requiredParameter .getName ());
858+ parameter .setIn ("query" );
859+ parameter .setDescription ("" );
860+ parameter .setRequired (true );
861+ parameters .add (parameter );
862+ }
863+ for (SearchParameter optionalParameter : queryDoc .getOptionalParameters ()) {
864+ org .openmrs .module .webservices .docs .swagger .Parameter parameter = new org .openmrs .module .webservices .docs .swagger .Parameter ();
865+ parameter .setName (optionalParameter .getName ());
866+ parameter .setIn ("query" );
867+ parameter .setDescription ("" );
868+ parameter .setRequired (false );
869+ parameters .add (parameter );
870+ }
871+ break ;
872+ }
873+ }
874+ return parameters ;
875+ }
876+
850877 private String createJSON () {
851878 return Json .pretty (swagger );
852879 }
@@ -1202,12 +1229,11 @@ public Swagger getSwagger() {
12021229 * @return true if and only if swagger is not null, and its paths are also set.
12031230 */
12041231 public static boolean isCached () {
1205- return swagger != null && swagger .getPaths () != null && ! swagger . getPaths (). isEmpty () ;
1232+ return swagger != null && swagger .getPaths () != null ;
12061233 }
12071234
12081235 public static void clearCache () {
12091236 swagger = null ;
1210- cachedJson = null ;
12111237 }
12121238
12131239}
0 commit comments