Skip to content

Commit 7c7a32a

Browse files
committed
Cleaning up errors
1 parent b611676 commit 7c7a32a

17 files changed

+70
-47
lines changed

src/Microsoft.OpenApi/Models/OpenApiError.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public OpenApiError(ErrorReason reason, string pointer, string message)
7575
/// </summary>
7676
public string Pointer { get; set; }
7777

78+
/// <summary>
79+
/// Name of rule that detected the error.
80+
/// </summary>
81+
public string RuleName { get; set; }
82+
7883
/// <summary>
7984
/// Gets the string representation of <see cref="OpenApiError"/>.
8085
/// </summary>

src/Microsoft.OpenApi/Validations/Rules/OpenApiComponentsRules.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ private static void ValidateKeys(IValidationContext context, IEnumerable<string>
5757
{
5858
if (!KeyRegex.IsMatch(key))
5959
{
60-
OpenApiError error = new OpenApiError(ErrorReason.Format, context.PathString,
60+
context.CreateError(nameof(KeyMustBeRegularExpression), ErrorReason.Format,
6161
string.Format(SRResource.Validation_ComponentsKeyMustMatchRegularExpr, key, component, KeyRegex.ToString()));
62-
context.AddError(error);
6362
}
6463
}
6564
}

src/Microsoft.OpenApi/Validations/Rules/OpenApiContactRules.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ public static class OpenApiContactRules
2626
{
2727
if (!item.Email.IsEmailAddress())
2828
{
29-
OpenApiError error = new OpenApiError(ErrorReason.Format, context.PathString,
29+
context.CreateError(nameof(EmailMustBeEmailFormat), ErrorReason.Format,
3030
String.Format(SRResource.Validation_StringMustBeEmailAddress, item.Email));
31-
context.AddError(error);
3231
}
3332
}
3433
context.Exit();

src/Microsoft.OpenApi/Validations/Rules/OpenApiDocumentRules.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,25 @@ public static class OpenApiDocumentRules
1616
/// <summary>
1717
/// The Info field is required.
1818
/// </summary>
19-
public static ValidationRule<OpenApiDocument> FieldIsRequired =>
19+
public static ValidationRule<OpenApiDocument> OpenApiDocumentFieldIsMissing =>
2020
new ValidationRule<OpenApiDocument>(
2121
(context, item) =>
2222
{
2323
// info
2424
context.Enter("info");
2525
if (item.Info == null)
2626
{
27-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
27+
context.CreateError(nameof(OpenApiDocumentFieldIsMissing),ErrorReason.Required,
2828
String.Format(SRResource.Validation_FieldIsRequired, "info", "document"));
29-
context.AddError(error);
3029
}
3130
context.Exit();
3231

3332
// paths
3433
context.Enter("paths");
3534
if (item.Paths == null)
3635
{
37-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
36+
context.CreateError(nameof(OpenApiDocumentFieldIsMissing), ErrorReason.Required,
3837
String.Format(SRResource.Validation_FieldIsRequired, "paths", "document"));
39-
context.AddError(error);
4038
}
4139
context.Exit();
4240
});

src/Microsoft.OpenApi/Validations/Rules/OpenApiExtensionRules.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ public static class OpenApiExtensibleRules
2626
{
2727
if (!extensible.Key.StartsWith("x-"))
2828
{
29-
OpenApiError error = new OpenApiError(ErrorReason.Format, context.PathString,
29+
context.CreateError(nameof(ExtensionNameMustStartWithXDash),ErrorReason.Format,
3030
String.Format(SRResource.Validation_ExtensionNameMustBeginWithXDash, extensible.Key, context.PathString));
31-
context.AddError(error);
3231
}
3332
}
3433
context.Exit();

src/Microsoft.OpenApi/Validations/Rules/OpenApiExternalDocsRules.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ public static class OpenApiExternalDocsRules
1616
/// <summary>
1717
/// Validate the field is required.
1818
/// </summary>
19-
public static ValidationRule<OpenApiExternalDocs> FieldIsRequired =>
19+
public static ValidationRule<OpenApiExternalDocs> UrlIsRequired =>
2020
new ValidationRule<OpenApiExternalDocs>(
2121
(context, item) =>
2222
{
2323
// url
2424
context.Enter("url");
2525
if (item.Url == null)
2626
{
27-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
27+
context.CreateError(nameof(UrlIsRequired),ErrorReason.Required,
2828
String.Format(SRResource.Validation_FieldIsRequired, "url", "External Documentation"));
29-
context.AddError(error);
3029
}
3130
context.Exit();
3231
});

src/Microsoft.OpenApi/Validations/Rules/OpenApiInfoRules.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,26 @@ public static class OpenApiInfoRules
1616
/// <summary>
1717
/// Validate the field is required.
1818
/// </summary>
19-
public static ValidationRule<OpenApiInfo> FieldIsRequired =>
19+
public static ValidationRule<OpenApiInfo> InfoRequiredFields =>
2020
new ValidationRule<OpenApiInfo>(
2121
(context, item) =>
2222
{
2323

2424
// title
2525
context.Enter("title");
26-
if (String.IsNullOrEmpty(item.Title))
26+
if (item.Title == null)
2727
{
28-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
28+
context.CreateError(nameof(InfoRequiredFields),ErrorReason.Required,
2929
String.Format(SRResource.Validation_FieldIsRequired, "title", "info"));
30-
context.AddError(error);
3130
}
3231
context.Exit();
3332

3433
// version
3534
context.Enter("version");
36-
if (String.IsNullOrEmpty(item.Version))
35+
if (item.Version == null)
3736
{
38-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
37+
context.CreateError(nameof(InfoRequiredFields), ErrorReason.Required,
3938
String.Format(SRResource.Validation_FieldIsRequired, "version", "info"));
40-
context.AddError(error);
4139
}
4240
context.Exit();
4341

src/Microsoft.OpenApi/Validations/Rules/OpenApiLicenseRules.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@ public static class OpenApiLicenseRules
1616
/// <summary>
1717
/// REQUIRED.
1818
/// </summary>
19-
public static ValidationRule<OpenApiLicense> FieldIsRequired =>
19+
public static ValidationRule<OpenApiLicense> LicenseRequiredFields =>
2020
new ValidationRule<OpenApiLicense>(
2121
(context, license) =>
2222
{
2323
context.Enter("name");
2424
if (String.IsNullOrEmpty(license.Name))
2525
{
26-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
26+
context.CreateError(nameof(LicenseRequiredFields),ErrorReason.Required,
2727
String.Format(SRResource.Validation_FieldIsRequired, "name", "license"));
28-
context.AddError(error);
2928
}
3029
context.Exit();
3130
});

src/Microsoft.OpenApi/Validations/Rules/OpenApiOAuthFlowRules.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,34 @@ public static class OpenApiOAuthFlowRules
1616
/// <summary>
1717
/// Validate the field is required.
1818
/// </summary>
19-
public static ValidationRule<OpenApiOAuthFlow> FieldIsRequired =>
19+
public static ValidationRule<OpenApiOAuthFlow> OAuthFlowRequiredFields =>
2020
new ValidationRule<OpenApiOAuthFlow>(
2121
(context, flow) =>
2222
{
2323
// authorizationUrl
2424
context.Enter("authorizationUrl");
2525
if (flow.AuthorizationUrl == null)
2626
{
27-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
27+
context.CreateError(nameof(OAuthFlowRequiredFields),ErrorReason.Required,
2828
String.Format(SRResource.Validation_FieldIsRequired, "authorizationUrl", "OAuth Flow"));
29-
context.AddError(error);
3029
}
3130
context.Exit();
3231

3332
// tokenUrl
3433
context.Enter("tokenUrl");
3534
if (flow.TokenUrl == null)
3635
{
37-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
36+
context.CreateError(nameof(OAuthFlowRequiredFields), ErrorReason.Required,
3837
String.Format(SRResource.Validation_FieldIsRequired, "tokenUrl", "OAuth Flow"));
39-
context.AddError(error);
4038
}
4139
context.Exit();
4240

4341
// scopes
4442
context.Enter("scopes");
4543
if (flow.Scopes == null)
4644
{
47-
OpenApiError error = new OpenApiError(ErrorReason.Required, context.PathString,
45+
context.CreateError(nameof(OAuthFlowRequiredFields), ErrorReason.Required,
4846
String.Format(SRResource.Validation_FieldIsRequired, "scopes", "OAuth Flow"));
49-
context.AddError(error);
5047
}
5148
context.Exit();
5249
});

src/Microsoft.OpenApi/Validations/Rules/OpenApiPathsRules.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ public static class OpenApiPathsRules
3232

3333
if (!pathName.StartsWith("/"))
3434
{
35-
OpenApiError error = new OpenApiError(ErrorReason.Format, context.PathString,
35+
context.CreateError(nameof(PathNameMustBeginWithSlash),ErrorReason.Format,
3636
string.Format(SRResource.Validation_PathItemMustBeginWithSlash, pathName));
37-
context.AddError(error);
3837
}
3938

4039
context.Exit();

0 commit comments

Comments
 (0)