Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions src/Refitter/SettingsValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,26 @@ public static class SettingsValidator
{
public static ValidationResult Validate(Settings settings)
{
if (BothSettingsFilesAreEmpty(settings) || BothSettingsFilesArePresent(settings))
if (string.IsNullOrWhiteSpace(settings.OpenApiPath) &&
string.IsNullOrWhiteSpace(settings.SettingsFilePath))
{
return GetValidationErrorForSettingsFiles();
return GetValidationErrorForNoInputNoSettings();
}

return !string.IsNullOrWhiteSpace(settings.SettingsFilePath)
? ValidateFilePath(settings)
: ValidateOperationNameAndUrl(settings);
}

private static bool BothSettingsFilesAreEmpty(Settings settings)
private static ValidationResult GetValidationErrorForNoInputNoSettings()
{
return string.IsNullOrWhiteSpace(settings.OpenApiPath) &&
string.IsNullOrWhiteSpace(settings.SettingsFilePath);
return ValidationResult.Error(
"You should specify an input URL/file directly " +
"or use specify it in 'openApiPath' from the settings file");
}

private static bool BothSettingsFilesArePresent(Settings settings)
{
return !string.IsNullOrWhiteSpace(settings.OpenApiPath) &&
!string.IsNullOrWhiteSpace(settings.SettingsFilePath);
}

private static ValidationResult GetValidationErrorForSettingsFiles()
private static ValidationResult GetValidationErrorForTwoInputFiles()
{
return ValidationResult.Error(
"You should either specify an input URL/file directly " +
Expand All @@ -41,7 +38,6 @@ private static ValidationResult ValidateFilePath(Settings settings)
{
var json = File.ReadAllText(settings.SettingsFilePath!);
var refitGeneratorSettings = Serializer.Deserialize<RefitGeneratorSettings>(json);
settings.OpenApiPath = refitGeneratorSettings.OpenApiPath;

return ValidateFileAndOutputSettings(settings, refitGeneratorSettings);
}
Expand All @@ -50,6 +46,14 @@ private static ValidationResult ValidateFileAndOutputSettings(
Settings settings,
RefitGeneratorSettings refitGeneratorSettings)
{
if (!string.IsNullOrWhiteSpace(settings.OpenApiPath) &&
!string.IsNullOrWhiteSpace(refitGeneratorSettings.OpenApiPath))
{
return GetValidationErrorForTwoInputFiles();
}

settings.OpenApiPath = refitGeneratorSettings.OpenApiPath;

if (string.IsNullOrWhiteSpace(refitGeneratorSettings.OpenApiPath))
{
return GetValidationErrorForOpenApiPath();
Expand Down
Loading