using System.Collections.Generic; using Microsoft.OpenApi.Models; using Models; namespace Parser { public static class RequestParser { public static Request ParseRequest(KeyValuePair operation) { var request = new Request(operation.Key.ToString()) { Summary = operation.Value.Summary, BodyExample = GetBodyExample(operation.Value.RequestBody), BodySchema = GetBodySchema(operation.Value.RequestBody), UriAttributes = ParseUriAttributes(operation.Value), Responses = ParseResponses(operation.Value) }; return request; } static string GetBodyExample(OpenApiRequestBody body) { return body != null ? ExamplesParser.ParseExample(body.Content) : null; } static Dictionary GetBodySchema(OpenApiRequestBody body) { return body != null ? SchemaParser.ParseSchema(body.Content) : null; } static List ParseUriAttributes(OpenApiOperation operation) { List attributes = new List(); foreach (var parameter in operation.Parameters) { var attribute = AttributeParser.ParseAttribute(parameter); if (attribute != null) { attributes.Add(attribute); } } return attributes; } static List ParseResponses(OpenApiOperation operation) { List responses = new List(); foreach (var openApiResponse in operation.Responses) { responses.Add(ResponseParser.ParseResponse(openApiResponse)); } return responses; } } }