Example #1
0
        public Method Build(IDictionary <string, object> dynamicRaml, string defaultMediaType)
        {
            var method = new Method();

            new BasicInfoBuilder().Set(dynamicRaml, method);

            method.Verb    = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null;
            method.Headers = dynamicRaml.ContainsKey("headers")
                                ? new ParametersBuilder(dynamicRaml["headers"] as IDictionary <string, object>).GetAsDictionary()
                                : new Dictionary <string, Parameter>();

            method.Responses = dynamicRaml.ContainsKey("responses")
                                ? new ResponsesBuilder(dynamicRaml["responses"] as IDictionary <string, object>).Get(defaultMediaType)
                                : new List <Response>();

            method.QueryParameters = dynamicRaml.ContainsKey("queryParameters")
                                ? new ParametersBuilder((IDictionary <string, object>)dynamicRaml["queryParameters"]).GetAsDictionary()
                                : null;

            method.Body = dynamicRaml.ContainsKey("body")
                ? new BodyBuilder((IDictionary <string, object>)dynamicRaml["body"]).GetAsDictionary(defaultMediaType)
                                : new Dictionary <string, MimeType>();

            method.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            method.SecuredBy         = GetSecuredBy(dynamicRaml);
            method.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            method.Is          = GetIs(dynamicRaml);
            method.Description = dynamicRaml.ContainsKey("description") ? (string)dynamicRaml["description"] : null;

            method.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml);

            return(method);
        }
Example #2
0
        public async Task <RamlDocument> Build(IDictionary <string, object> dynamicRaml, string path = null)
        {
            var doc = new RamlDocument(dynamicRaml);

            doc.Types = new RamlTypesOrderedDictionary();

            if (dynamicRaml.ContainsKey("uses"))
            {
                var uses = dynamicRaml["uses"] as object[];
                if (uses != null)
                {
                    foreach (var library in uses)
                    {
                        var lib = library as IDictionary <string, object>;
                        if (lib != null)
                        {
                            string filePath;
                            if (path != null)
                            {
                                filePath = Path.Combine(Path.GetDirectoryName(path), (string)lib["value"]);
                            }
                            else
                            {
                                filePath = (string)lib["value"];
                            }

                            var preffix = (string)lib["key"];
                            var dynamic = await RamlParser.GetDynamicStructure(filePath);

                            TypeBuilder.AddTypes(doc.Types, (IDictionary <string, object>)dynamic, preffix);
                        }
                    }
                }
            }

            doc.BaseUri           = dynamicRaml.ContainsKey("baseUri") ? (string)dynamicRaml["baseUri"] : string.Empty;
            doc.Title             = dynamicRaml.ContainsKey("title") ? (string)dynamicRaml["title"] : string.Empty;
            doc.Version           = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null;
            doc.MediaType         = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null;
            doc.Documentation     = GetDocumentation(dynamicRaml);
            doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            doc.SecuredBy         = GetSecuredBy(dynamicRaml);
            doc.Method            = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null;
            doc.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            doc.SecuritySchemes   = GetSecuritySchemes(dynamicRaml, doc.MediaType);
            doc.ResourceTypes     = GetResourceTypes(dynamicRaml, doc.MediaType);
            doc.Traits            = GetTraits(dynamicRaml, doc.MediaType);
            doc.Schemas           = GetSchemas(dynamicRaml);
            doc.Resources         = GetResources(dynamicRaml, doc.ResourceTypes, doc.Traits, doc.MediaType);

            TypeBuilder.AddTypes(doc.Types, dynamicRaml);

            doc.AnnotationTypes = AnnotationTypesBuilder.Get(dynamicRaml);
            doc.Annotations     = AnnotationsBuilder.GetAnnotations(dynamicRaml);
            return(doc);
        }
        public ResourceType Build(IDictionary <string, object> dynamicRaml, string defaultMediaType)
        {
            var resourceType = new ResourceType
            {
                Type          = TypeExtractor.Get(dynamicRaml),
                Is            = TypeExtractor.GetIs(dynamicRaml),
                Get           = GetVerb(dynamicRaml, "get", VerbType.GET, defaultMediaType),
                Post          = GetVerb(dynamicRaml, "post", VerbType.POST, defaultMediaType),
                Put           = GetVerb(dynamicRaml, "put", VerbType.PUT, defaultMediaType),
                Delete        = GetVerb(dynamicRaml, "delete", VerbType.DELETE, defaultMediaType),
                Patch         = GetVerb(dynamicRaml, "patch", VerbType.PATCH, defaultMediaType),
                Options       = GetVerb(dynamicRaml, "options", VerbType.OPTIONS, defaultMediaType),
                Annotations   = AnnotationsBuilder.GetAnnotations(dynamicRaml),
                UriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "uriParameters")
            };

            return(resourceType);
        }
        public Resource Build(IDictionary <string, object> dynamicRaml)
        {
            var resource = new Resource();

            new BasicInfoBuilder().Set(dynamicRaml, resource);

            resource.RelativeUri       = dynamicRaml.ContainsKey("relativeUri") ? (string)dynamicRaml["relativeUri"] : null;
            resource.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            resource.UriParameters     = ParametersBuilder.GetUriParameters(dynamicRaml, "uriParameters");
            resource.DisplayName       = dynamicRaml.ContainsKey("displayName") ? (string)dynamicRaml["displayName"] : null;
            resource.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            resource.Resources         = GetResources(dynamicRaml);

            resource.Methods = dynamicRaml.ContainsKey("methods")
                                ? new MethodsBuilder(((object[])dynamicRaml["methods"]).Cast <IDictionary <string, object> >()).Get()
                                : null;

            return(resource);
        }
Example #5
0
        public Resource Build(IDictionary <string, object> dynamicRaml, IEnumerable <IDictionary <string, ResourceType> > resourceTypes,
                              IEnumerable <IDictionary <string, Method> > traits, string defaultMediaType)
        {
            var resource = new Resource();

            new BasicInfoBuilder().Set(dynamicRaml, resource);

            resource.RelativeUri       = dynamicRaml.ContainsKey("relativeUri") ? (string)dynamicRaml["relativeUri"] : null;
            resource.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            resource.UriParameters     = ParametersBuilder.GetUriParameters(dynamicRaml, "uriParameters");
            resource.DisplayName       = dynamicRaml.ContainsKey("displayName") ? (string)dynamicRaml["displayName"] : null;
            resource.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            resource.Resources         = GetResources(dynamicRaml, resourceTypes, traits, defaultMediaType);

            resource.Methods = GetMethods(dynamicRaml, traits, defaultMediaType);

            resource.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml);

            return(resource);
        }
Example #6
0
        public RamlDocument Build(IDictionary <string, object> dynamicRaml)
        {
            var doc = new RamlDocument(dynamicRaml);

            doc.BaseUri           = (string)dynamicRaml["baseUri"];
            doc.Title             = (string)dynamicRaml["title"];
            doc.Version           = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null;
            doc.MediaType         = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null;
            doc.Documentation     = GetDocumentation(dynamicRaml);
            doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            doc.SecuredBy         = GetSecuredBy(dynamicRaml);
            doc.Method            = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null;
            doc.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            doc.SecuritySchemes   = GetSecuritySchemes(dynamicRaml);
            doc.ResourceTypes     = GetResourceTypes(dynamicRaml);
            doc.Traits            = GetTraits(dynamicRaml);
            doc.Schemas           = GetSchemas(dynamicRaml);
            doc.Resources         = GetResources(dynamicRaml);
            return(doc);
        }
Example #7
0
        public RamlDocument Build(IDictionary <string, object> dynamicRaml)
        {
            var doc = new RamlDocument(dynamicRaml);

            doc.Types = new RamlTypesOrderedDictionary();

            if (dynamicRaml.ContainsKey("uses"))
            {
                var uses = dynamicRaml["uses"] as IDictionary <string, object>;
                if (uses != null)
                {
                    foreach (var library in uses)
                    {
                        var lib = library.Value as IDictionary <string, object>;
                        TypeBuilder.AddTypes(doc.Types, lib, library.Key);
                    }
                }
            }


            doc.BaseUri           = dynamicRaml.ContainsKey("baseUri") ? (string)dynamicRaml["baseUri"] : string.Empty;
            doc.Title             = dynamicRaml.ContainsKey("title") ? (string)dynamicRaml["title"] : string.Empty;
            doc.Version           = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null;
            doc.MediaType         = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null;
            doc.Documentation     = GetDocumentation(dynamicRaml);
            doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters");
            doc.SecuredBy         = GetSecuredBy(dynamicRaml);
            doc.Method            = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null;
            doc.Protocols         = ProtocolsBuilder.Get(dynamicRaml);
            doc.SecuritySchemes   = GetSecuritySchemes(dynamicRaml, doc.MediaType);
            doc.ResourceTypes     = GetResourceTypes(dynamicRaml, doc.MediaType);
            doc.Traits            = GetTraits(dynamicRaml, doc.MediaType);
            doc.Schemas           = GetSchemas(dynamicRaml);
            doc.Resources         = GetResources(dynamicRaml, doc.ResourceTypes, doc.Traits, doc.MediaType);

            TypeBuilder.AddTypes(doc.Types, dynamicRaml);

            doc.AnnotationTypes = AnnotationTypesBuilder.Get(dynamicRaml);
            doc.Annotations     = AnnotationsBuilder.GetAnnotations(dynamicRaml);
            return(doc);
        }