Skip to content

Commit 9ff23bd

Browse files
committed
Fix #3316 allow generated enum members to be obsoleted
1 parent 67eb409 commit 9ff23bd

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

src/CodeGeneration/ApiGenerator/Overrides/EndpointOverridesBase.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public abstract class EndpointOverridesBase: IEndpointOverrides
1515

1616
public virtual IDictionary<string, string> ObsoleteQueryStringParams { get; set; } = new Dictionary<string, string>();
1717

18+
1819
public virtual CsharpMethod PatchMethod(CsharpMethod method) => method;
1920
}
2021
}

src/CodeGeneration/ApiGenerator/Overrides/GlobalOverrides.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using ApiGenerator.Overrides.Descriptors;
34

@@ -11,6 +12,11 @@ public class GlobalOverrides : EndpointOverridesBase
1112
"script_fields",
1213
"docvalue_fields"
1314
};
15+
public IDictionary<string, Dictionary<string, string>> ObsoleteEnumMembers { get; set; } = new Dictionary<string, Dictionary<string, string>>
16+
{
17+
{ "NodesStatsIndexMetric", new Dictionary<string, string>{{"suggest", "As of 5.0 this option always returned an empty object in the response"}}},
18+
{ "IndicesStatsMetric", new Dictionary<string, string>{{"suggest", "Suggest stats have folded under the search stats, this alias will be removed"}}}
19+
};
1420

1521
public override IDictionary<string, string> RenameQueryStringParams { get; } = new Dictionary<string, string>
1622
{

src/CodeGeneration/ApiGenerator/Views/Enums.Generated.cshtml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,21 @@
55
@using System.Linq
66
@using ApiGenerator.Domain
77
@using ApiGenerator
8+
@using ApiGenerator.Overrides
89
@functions {
910
private const string RawSize = "Raw";
1011
private const string SizeEnum = "Size";
12+
private static GlobalOverrides GlobalOverrides = new GlobalOverrides();
1113

1214
private string CreateEnum(string enumName, string value, int? i)
1315
{
1416
var enumValue = (enumName == SizeEnum && value == string.Empty) ? RawSize : value.ToPascalCase(true);
15-
return string.Format("[EnumMember(Value = \"{0}\")] {1}{2}", value, enumValue, i.HasValue ? " = 1 << " + i.Value : null);
17+
var enumCsharp = string.Format("[EnumMember(Value = \"{0}\")] {1}{2}", value, enumValue, i.HasValue ? " = 1 << " + i.Value : null);
18+
if (GlobalOverrides.ObsoleteEnumMembers.TryGetValue(enumName, out var d) && d.TryGetValue(value, out var obsolete))
19+
{
20+
return string.Format("[Obsolete(\"{0}\")]\r\n\t\t{1}", obsolete, enumCsharp);
21+
}
22+
return enumCsharp;
1623
}
1724
private string CreateCase(string e, string o)
1825
{

src/Elasticsearch.Net/Domain/Enums.Generated.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ [Flags]public enum IndicesStatsMetric
152152
[EnumMember(Value = "segments")] Segments = 1 << 11,
153153
[EnumMember(Value = "store")] Store = 1 << 12,
154154
[EnumMember(Value = "warmer")] Warmer = 1 << 13,
155+
[Obsolete("Suggest stats have folded under the search stats, this alias will be removed")]
155156
[EnumMember(Value = "suggest")] Suggest = 1 << 14,
156157
[EnumMember(Value = "_all")] All = 1 << 15
157158
}
@@ -197,6 +198,7 @@ [Flags]public enum NodesStatsIndexMetric
197198
[EnumMember(Value = "segments")] Segments = 1 << 11,
198199
[EnumMember(Value = "store")] Store = 1 << 12,
199200
[EnumMember(Value = "warmer")] Warmer = 1 << 13,
201+
[Obsolete("As of 5.0 this option always returned an empty object in the response")]
200202
[EnumMember(Value = "suggest")] Suggest = 1 << 14,
201203
[EnumMember(Value = "_all")] All = 1 << 15
202204
}

0 commit comments

Comments
 (0)