private static bool FieldUsesKind(ServiceInfo service, ServiceFieldInfo field, ServiceTypeKind kind) { var type = service.GetFieldType(field); if (type.Kind == kind) { return(true); } var valueType = type; while (true) { valueType = valueType.ValueType; if (valueType == null) { break; } if (valueType.Kind == kind) { return(true); } } return(false); }
private string RenderUriComponent(ServiceFieldInfo field, ServiceInfo service) { var fieldTypeKind = service.GetFieldType(field).Kind; var fieldName = field.Name; switch (fieldTypeKind) { case ServiceTypeKind.Enum: return($"request.{fieldName}"); case ServiceTypeKind.String: case ServiceTypeKind.Bytes: return($"encodeURIComponent(request.{fieldName})"); case ServiceTypeKind.Boolean: case ServiceTypeKind.Int32: case ServiceTypeKind.Int64: case ServiceTypeKind.Decimal: return($"request.{fieldName}.toString()"); case ServiceTypeKind.Double: return($"encodeURIComponent(request.{fieldName}.toString())"); case ServiceTypeKind.Dto: case ServiceTypeKind.Error: case ServiceTypeKind.Object: throw new NotSupportedException("Field type not supported on path/query: " + fieldTypeKind); default: throw new NotSupportedException("Unknown field type " + fieldTypeKind); } }
private string RenderJsConversion(ServiceFieldInfo field, ServiceInfo service, string value) { var fieldTypeKind = service.GetFieldType(field).Kind; switch (fieldTypeKind) { case ServiceTypeKind.Enum: case ServiceTypeKind.String: case ServiceTypeKind.Bytes: return(value); case ServiceTypeKind.Boolean: return($"parseBoolean({value})"); case ServiceTypeKind.Int32: case ServiceTypeKind.Int64: return($"parseInt({value}, 10)"); case ServiceTypeKind.Decimal: case ServiceTypeKind.Double: return($"parseFloat({value})"); case ServiceTypeKind.Dto: case ServiceTypeKind.Error: case ServiceTypeKind.Object: throw new NotSupportedException("Field type not supported on path/query: " + fieldTypeKind); default: throw new NotSupportedException("Unknown field type " + fieldTypeKind); } }
private static bool IsValidRequestBodyField(ServiceFieldInfo fieldInfo, ServiceInfo serviceInfo) { var fieldTypeKind = serviceInfo.GetFieldType(fieldInfo).Kind; return(fieldTypeKind == ServiceTypeKind.Object || fieldTypeKind == ServiceTypeKind.Error || fieldTypeKind == ServiceTypeKind.Dto || fieldTypeKind == ServiceTypeKind.Result || fieldTypeKind == ServiceTypeKind.Array || fieldTypeKind == ServiceTypeKind.Map); }
internal HttpNormalFieldInfo(ServiceFieldInfo fieldInfo) : base(fieldInfo) { foreach (var parameter in GetHttpParameters(fieldInfo)) { if (parameter.Name != "from") { AddInvalidHttpParameterError(parameter); } } }
private static bool IsValidPathOrQueryField(ServiceFieldInfo fieldInfo, ServiceInfo serviceInfo) { var fieldTypeKind = serviceInfo.GetFieldType(fieldInfo).Kind; return(fieldTypeKind == ServiceTypeKind.String || fieldTypeKind == ServiceTypeKind.Boolean || fieldTypeKind == ServiceTypeKind.Double || fieldTypeKind == ServiceTypeKind.Int32 || fieldTypeKind == ServiceTypeKind.Int64 || fieldTypeKind == ServiceTypeKind.Decimal || fieldTypeKind == ServiceTypeKind.Enum); }
internal HttpNormalFieldInfo(ServiceFieldInfo fieldInfo) { ServiceField = fieldInfo; foreach (var parameter in fieldInfo.GetHttpParameters()) { if (parameter.Name != "from") { throw parameter.CreateInvalidHttpParameterException(); } } }
internal HttpPathFieldInfo(ServiceFieldInfo fieldInfo) { ServiceField = fieldInfo; foreach (var parameter in GetHttpParameters(fieldInfo)) { if (parameter.Name != "from") { AddInvalidHttpParameterError(parameter); } } }
internal HttpBodyFieldInfo(ServiceFieldInfo fieldInfo) : base(fieldInfo) { foreach (var parameter in GetHttpParameters(fieldInfo)) { if (parameter.Name == "code") { StatusCode = TryParseStatusCodeInteger(parameter); } else if (parameter.Name != "from") { AddInvalidHttpParameterError(parameter); } } }
private static SwaggerParameter CreateSwaggerParameter(ServiceInfo service, ServiceFieldInfo fieldInfo, string inKind, string name) { var parameterObject = GetTypeSchema <SwaggerParameter>(service.GetFieldType(fieldInfo)); parameterObject.In = inKind; parameterObject.Name = name ?? fieldInfo.Name; if (parameterObject.Name != fieldInfo.Name) { parameterObject.Identifier = fieldInfo.Name; } parameterObject.Description = GetSummaryOrNull(fieldInfo); parameterObject.Required = inKind == SwaggerParameterKind.Path ? true : default(bool?); parameterObject.Obsolete = GetObsoleteOrNull(fieldInfo); return(parameterObject); }
internal HttpBodyFieldInfo(ServiceFieldInfo fieldInfo) { ServiceField = fieldInfo; foreach (var parameter in fieldInfo.GetHttpParameters()) { if (parameter.Name == "code") { StatusCode = HttpAttributeUtility.ParseStatusCodeInteger(parameter); } else if (parameter.Name != "from") { throw parameter.CreateInvalidHttpParameterException(); } } }
internal HttpQueryFieldInfo(ServiceFieldInfo fieldInfo) { ServiceField = fieldInfo; Name = fieldInfo.Name; foreach (var parameter in fieldInfo.GetHttpParameters()) { if (parameter.Name == "name") { Name = parameter.Value; } else if (parameter.Name != "from") { throw parameter.CreateInvalidHttpParameterException(); } } }
internal HttpHeaderFieldInfo(ServiceFieldInfo fieldInfo) : base(fieldInfo) { Name = fieldInfo.Name; foreach (var parameter in GetHttpParameters(fieldInfo)) { if (parameter.Name == "name") { Name = parameter.Value; } else if (parameter.Name != "from") { AddInvalidHttpParameterError(parameter); } } }
private static bool IsValidSimpleField(ServiceFieldInfo fieldInfo, ServiceInfo serviceInfo) { var fieldType = serviceInfo.GetFieldType(fieldInfo); var fieldTypeKind = fieldType?.Kind; if (fieldTypeKind == null) { return(false); } if (fieldTypeKind == ServiceTypeKind.Array) { fieldTypeKind = fieldType.ValueType.Kind; } return(fieldTypeKind == ServiceTypeKind.String || fieldTypeKind == ServiceTypeKind.Boolean || fieldTypeKind == ServiceTypeKind.Double || fieldTypeKind == ServiceTypeKind.Int32 || fieldTypeKind == ServiceTypeKind.Int64 || fieldTypeKind == ServiceTypeKind.Decimal || fieldTypeKind == ServiceTypeKind.Enum); }
private protected HttpFieldInfo(ServiceFieldInfo fieldInfo) { ServiceField = fieldInfo; }
public ServiceTypeInfo?GetFieldType(ServiceFieldInfo field) => Service.GetFieldType(field);
private static bool IsValidResponseBodyField(ServiceFieldInfo fieldInfo, ServiceInfo serviceInfo) { return(IsValidRequestBodyField(fieldInfo, serviceInfo) || serviceInfo.GetFieldType(fieldInfo)?.Kind == ServiceTypeKind.Boolean); }
public static string GetFieldPropertyName(ServiceFieldInfo fieldInfo) { return(TryGetJavaScriptName(fieldInfo) ?? CodeGenUtility.Capitalize(fieldInfo.Name)); }
/// <summary> /// Gets the property name for the specified field. /// </summary> public string GetFieldPropertyName(ServiceFieldInfo field) => m_fieldPropertyNames.TryGetValue(field, out var value) ? value : CodeGenUtility.Capitalize(field.Name);
private static bool IsValidHeaderField(ServiceFieldInfo fieldInfo, ServiceInfo serviceInfo) { return(serviceInfo.GetFieldType(fieldInfo).Kind == ServiceTypeKind.String); }