private ClientGeneratorMethod BuildClassMethod(string url, Operation operation, RAML.Parser.Model.EndPoint resource, string modelsNamespace) { var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.Path); //TODO: check var responseContentTypes = operation.Responses != null? operation.Responses.Where(r => r.Payloads != null).SelectMany(r => r.Payloads).Select(p => p.MediaType).ToArray() : new string[0]; var generatedMethod = new ClientGeneratorMethod { ModelsNamespace = modelsNamespace, Name = NetNamingMapper.GetMethodName(operation.Method ?? "Get" + resource.Path), ReturnType = GetReturnType(operation, resource, url), Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(operation, resource), operation, resource, url), Comment = GetComment(resource, operation, url), Url = url, Verb = NetNamingMapper.Capitalize(operation.Method), Parent = null, UseSecurity = resource.Operations.Any(m => m.Method == operation.Method && m.Security != null && m.Security.Any()), RequestContentTypes = operation.ContentType, ResponseContentTypes = responseContentTypes }; // look in traits // look in resource types return(generatedMethod); }
private ClientGeneratorMethod BuildClassMethod(string url, Method method, Resource resource) { var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.RelativeUri); var generatedMethod = new ClientGeneratorMethod { Name = NetNamingMapper.GetMethodName(method.Verb ?? "Get" + resource.RelativeUri), ReturnType = GetReturnType(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url), Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url), Comment = GetComment(resource, method, url), Url = url, Verb = NetNamingMapper.Capitalize(method.Verb), Parent = null, UseSecurity = raml.SecuredBy != null && raml.SecuredBy.Any() || resource.Methods.Any(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()), RequestContentTypes = method.Body.Keys.ToArray(), ResponseContentTypes = method.Responses != null?method.Responses.Where(r => r.Body != null).SelectMany(r => r.Body.Keys).ToArray() : new string[0] }; // look in traits // look in resource types return(generatedMethod); }
private ControllerMethod BuildControllerMethod(string url, Method method, Resource resource, ControllerObject parent, IDictionary <string, Parameter> parentUriParameters) { var relativeUri = UrlGeneratorHelper.GetRelativeUri(url, parent.PrefixUri); var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.RelativeUri); string b = resource.Methods.FirstOrDefault(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()).SecuredBy.FirstOrDefault(); return(new ControllerMethod { Name = NetNamingMapper.GetMethodName(method.Verb ?? "Get" + resource.RelativeUri), Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url), UriParameters = uriParametersGenerator.GetUriParameters(resource, url, parentUriParameters), ReturnType = GetReturnType(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url), Comment = GetComment(resource, method, url), Url = relativeUri, Verb = NetNamingMapper.Capitalize(method.Verb), Parent = null, UseSecurity = raml.SecuredBy != null && raml.SecuredBy.Any() || resource.Methods.Any(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()), SecuredBy = raml.SecuredBy ?? resource.Methods.FirstOrDefault(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()).SecuredBy, SecurityParameters = GetSecurityParameters(raml, method) }); }
private ControllerMethod BuildControllerMethod(string url, Operation method, Parser.Model.EndPoint resource, ControllerObject parent, IDictionary <string, Parameter> parentUriParameters, string modelsNamespace) { var relativeUri = UrlGeneratorHelper.GetRelativeUri(url, parent.PrefixUri); var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.Path); var operationWithSecurity = resource.Operations.FirstOrDefault(m => m.Method == method.Method && m.Security != null && m.Security.Any()); var securedBy = operationWithSecurity?.Security.Select(s => s.Name).ToArray(); return(new ControllerMethod { ModelsNamespace = modelsNamespace, Name = NetNamingMapper.GetMethodName(method.Method ?? "Get" + resource.Path), Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource), method, resource, url), UriParameters = uriParametersGenerator.GetUriParameters(resource, url, parentUriParameters), ResponseStatusCode = method.Responses != null && method.Responses.Count() == 1 ? method.Responses.First().StatusCode : null, ReturnType = GetReturnType(method, resource, url), Comment = GetComment(resource, method, url), Url = relativeUri, Verb = NetNamingMapper.Capitalize(method.Method), Parent = null, UseSecurity = resource.Operations.Any(m => m.Method == method.Method && m.Security != null && m.Security.Any()), SecuredBy = securedBy, SecurityParameters = GetSecurityParameters(method) }); }
public void should_get_relative_uri() { Assert.AreEqual("users", UrlGeneratorHelper.GetRelativeUri("movies/{id}/users", "/movies/{id}")); }
public void should_fix_controller_uri2() { Assert.AreEqual("movies", UrlGeneratorHelper.FixControllerRoutePrefix("/movies/{mediaTypeExtension}")); }
public void should_avoid_replacing_route_contained_in_uri() { Assert.AreEqual("{applicationId}", UrlGeneratorHelper.GetRelativeUri("/application/{applicationId}", "application")); }
public void should_replace_duplicated_params() { Assert.AreEqual("users{mediaTypeExtension}", UrlGeneratorHelper.GetRelativeUri("movies/{id}/{mediaTypeExtension}/users{mediaTypeExtension}", "/movies/{id}")); }
public void should_replace_consecutive_params() { Assert.AreEqual("{mediaTypeExtension}/users", UrlGeneratorHelper.GetRelativeUri("movies/{id}{mediaTypeExtension}/users", "/movies/{id}")); }