Commit a99cab6d authored by Martti Käärik's avatar Martti Käärik
Browse files

Create operation wrappers also for requests without body.

parent 432420a5
Loading
Loading
Loading
Loading
+34 −25
Original line number Diff line number Diff line
@@ -192,6 +192,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {

		// Map operations to request body schemas so we can create wrappers later
		Map<String, Set<PathOperation>> schemaOperations = new Hashtable<>();
		Set<PathOperation> noContentOperations = new HashSet<>();
		Paths paths = model.getPaths();
		for (String pathUri: paths.keySet()) {
			PathItem path = paths.get(pathUri);
@@ -217,6 +218,8 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
						}
						set.add(new PathOperation(pathUri, method, op, array));
					}
				} else {
					noContentOperations.add(new PathOperation(pathUri, method, op, false));
				}
			}
		}
@@ -235,16 +238,30 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
					}
			}
		}
		
		if (useMessageBasedApi) {
			createOperationWrapper(noContentOperations, httpRequest, httpMethodEnum);
		}
		for (String schemaName : model.getComponents().getSchemas().keySet()) {
			Schema<?> schema = model.getComponents().getSchemas().get(schemaName);
			schema.setName(schemaName);
			DataType dataType = translate(schema, "", messageBody);
			
			//Operation wrappers

			if (useMessageBasedApi) {
				Set<PathOperation> ops = schemaOperations.get(schemaName);
				if (ops != null) {
				if (ops != null)
					createOperationWrapper(ops, httpRequest, httpMethodEnum);
			}
		}

		if (generateJavaMappings && mappingsPackage!=null)
			addMappings(filename, mappingsPackage, drmTarget, javaPackage);

		ensureUniqueNames(getGeneratedPackage());
	}
	
	private void createOperationWrapper(Set<PathOperation> ops, StructuredDataType httpRequest, EnumDataType httpMethodEnum) {

		for (PathOperation pathOperation : ops) {
			Operation op = pathOperation.operation;
			
@@ -267,14 +284,6 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
//			Member parametersMember = findContentWithName("parameters", httpRequest, tdlPackage.eINSTANCE.getMember());
		}
	}
			}
		}

		if (generateJavaMappings && mappingsPackage!=null)
			addMappings(filename, mappingsPackage, drmTarget, javaPackage);

		ensureUniqueNames(getGeneratedPackage());
	}
	
	private void setMemberValue(StructuredDataInstance data, String memberName, Object value) {