Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit 40c442d

Browse files
committed
add representations creation method
1 parent 0199c67 commit 40c442d

File tree

1 file changed

+31
-8
lines changed

1 file changed

+31
-8
lines changed

src/APIM_ARMTemplate/apimtemplate/TemplateCreators/OperationTemplateCreator.cs

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,17 @@ public List<OperationTemplate> CreateOperationTemplates(OpenApiDocument doc)
2727
description = operation.Value.Description,
2828
displayName = operation.Value.Summary,
2929
templateParameters = CreateTemplateParameters(operation.Value.Parameters).ToArray(),
30-
31-
//unfinished
3230
responses = CreateOperationResponses(operation.Value.Responses).ToArray(),
3331
request = CreateOperationRequest(operation.Value),
32+
33+
//unfinished
3434
policies = null
3535
}
3636
};
3737
operationTemplates.Add(op);
3838
}
3939
}
40+
4041
return operationTemplates;
4142
}
4243

@@ -47,9 +48,7 @@ public OperationTemplateRequest CreateOperationRequest(OpenApiOperation operatio
4748
description = operation.RequestBody != null ? operation.RequestBody.Description : null,
4849
queryParameters = CreateTemplateParameters(operation.Parameters.Where(p => p.In == ParameterLocation.Query).ToList()).ToArray(),
4950
headers = CreateTemplateParameters(operation.Parameters.Where(p => p.In == ParameterLocation.Header).ToList()).ToArray(),
50-
51-
//unfinished
52-
representations = null
51+
representations = operation.RequestBody != null ? CreateRepresentations(operation.RequestBody.Content).ToArray() : null
5352
};
5453
return request;
5554
}
@@ -64,14 +63,38 @@ public List<OperationsTemplateResponse> CreateOperationResponses(OpenApiResponse
6463
statusCode = response.Key,
6564
description = response.Value.Description,
6665
headers = CreateResponseHeaders(response.Value.Headers).ToArray(),
67-
68-
//unfinished
69-
representations = null
66+
representations = CreateRepresentations(response.Value.Content).ToArray()
7067
};
7168
}
7269
return responses;
7370
}
7471

72+
public List<OperationTemplateRepresentation> CreateRepresentations(IDictionary<string, OpenApiMediaType> content)
73+
{
74+
List<OperationTemplateRepresentation> representations = new List<OperationTemplateRepresentation>();
75+
foreach (KeyValuePair<string, OpenApiMediaType> pair in content)
76+
{
77+
OpenApiParameterHeaderIntersection param = new OpenApiParameterHeaderIntersection()
78+
{
79+
Example = pair.Value.Example,
80+
Examples = pair.Value.Examples
81+
};
82+
OperationTemplateRepresentation representation = new OperationTemplateRepresentation()
83+
{
84+
contentType = pair.Key,
85+
sample = JsonConvert.SerializeObject(CreateParameterDefaultValue(param)),
86+
// schema has not yet been created, id is null
87+
schemaId = null,
88+
typeName = pair.Value.Schema != null ? pair.Value.Schema.Type : null,
89+
// content type is neither application/x-www-form-urlencoded or multipart/form-data, form parameters are null
90+
formParameters = null
91+
};
92+
representations.Add(representation);
93+
}
94+
return representations;
95+
96+
}
97+
7598
public List<OperationTemplateParameter> CreateResponseHeaders(IDictionary<string, OpenApiHeader> headerPairs)
7699
{
77100
List<OperationTemplateParameter> headers = new List<OperationTemplateParameter>();

0 commit comments

Comments
 (0)