Skip to content

Commit 9431d6d

Browse files
Merge pull request #1173 from christianhelle/cli-fix-refitter-settings-file
Allow input file to be empty when using --settings-file argument in CLI Tool
2 parents 6b0bdfa + 16501b7 commit 9431d6d

File tree

3 files changed

+63
-11
lines changed

3 files changed

+63
-11
lines changed

src/CLI/ApiClientCodeGen.CLI/Commands/CSharp/RefitterCommand.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,10 @@ public RefitterCommand(
2525
this.factory = factory;
2626
this.options = options;
2727
}
28-
29-
[Option(
30-
ShortName = "sf",
31-
LongName = "settings-file",
32-
Description = "Path to a .refitter settings file to use for code generation")]
33-
[FileExists]
34-
public string? SettingsFile { get; set; }
3528

3629
public override ICodeGenerator CreateGenerator() =>
3730
factory.Create(SettingsFile ?? SwaggerFile, DefaultNamespace, options);
38-
39-
// Use 'new' instead of 'override' since the base method is not marked as virtual
31+
4032
public new int OnExecute()
4133
{
4234
// If a settings file is specified, validate it exists
@@ -45,7 +37,7 @@ public override ICodeGenerator CreateGenerator() =>
4537
// Use settings file as the SwaggerFile
4638
SwaggerFile = SettingsFile;
4739
}
48-
40+
4941
// Call the base implementation
5042
return base.OnExecute();
5143
}
@@ -117,4 +109,11 @@ public bool GenerateMultipleFiles
117109
get => options.GenerateMultipleFiles;
118110
set => options.GenerateMultipleFiles = value;
119111
}
112+
113+
[Option(
114+
ShortName = "sf",
115+
LongName = "settings-file",
116+
Description = "Path to a .refitter settings file to use for code generation")]
117+
[FileExists]
118+
public string? SettingsFile { get; set; }
120119
}

src/CLI/ApiClientCodeGen.CLI/Commands/CodeGeneratorCommand.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ protected CodeGeneratorCommand(IConsoleOutput console, IProgressReporter? progre
2222
this.progressReporter = progressReporter ?? throw new ArgumentNullException(nameof(progressReporter));
2323
}
2424

25-
[Required]
2625
[FileExists]
2726
[Argument(0, "swaggerFile", "Path to the Swagger / Open API specification file")]
2827
[SuppressMessage("ReSharper", "AutoPropertyCanBeMadeGetOnly.Global")]

test/petstore.refitter

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"openApiPath": "https://petstore3.swagger.io/api/v3/openapi.json",
3+
"namespace": "PetStore.Api.Client",
4+
"contractsNamespace": "PetStore.Api.Client.Models",
5+
"naming": {
6+
"useOpenApiTitle": true,
7+
"interfaceName": "IPetStoreClient"
8+
},
9+
"generateContracts": true,
10+
"generateXmlDocCodeComments": true,
11+
"generateStatusCodeComments": true,
12+
"addAutoGeneratedHeader": true,
13+
"addAcceptHeaders": true,
14+
"returnIApiResponse": false,
15+
"generateOperationHeaders": true,
16+
"typeAccessibility": "Public",
17+
"useCancellationTokens": true,
18+
"useIsoDateFormat": true,
19+
"multipleInterfaces": "ByTag",
20+
"generateDeprecatedOperations": true,
21+
"operationNameTemplate": "{operationName}Async",
22+
"optionalParameters": false,
23+
"outputFolder": "./GeneratedCode",
24+
"generateMultipleFiles": true,
25+
"contractsOutputFolder": "./GeneratedCode/Models",
26+
"includeTags": [
27+
"pet",
28+
"store",
29+
"user"
30+
],
31+
"trimUnusedSchema": true,
32+
"keepSchemaPatterns": [
33+
"^Pet$",
34+
"^Order$",
35+
"^User$"
36+
],
37+
"generateDefaultAdditionalProperties": true,
38+
"operationNameGenerator": "Default",
39+
"immutableRecords": false,
40+
"useDynamicQuerystringParameters": false,
41+
"usePolymorphicSerialization": true,
42+
"generateDisposableClients": false,
43+
"collectionFormat": "Multi",
44+
"dependencyInjectionSettings": {
45+
"baseUrl": "https://petstore3.swagger.io/api/v3",
46+
"httpMessageHandlers": [
47+
"LoggingHandler",
48+
"AuthorizationHandler"
49+
],
50+
"transientErrorHandler": "HttpResilience",
51+
"maxRetryCount": 3,
52+
"firstBackoffRetryInSeconds": 1.0
53+
}
54+
}

0 commit comments

Comments
 (0)