Skip to content

Commit ed7a28d

Browse files
committed
#109 Update DocumentHelper to avoid dictionary key dups
1 parent 98e8ba3 commit ed7a28d

File tree

9 files changed

+101
-2
lines changed

9 files changed

+101
-2
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System.Collections.Generic;
2+
3+
namespace Aliencube.AzureFunctions.FunctionApp.Models
4+
{
5+
public class DummyListModel
6+
{
7+
public List<DummyStringModel> ListValues { get; set; }
8+
}
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Aliencube.AzureFunctions.FunctionApp.Models
2+
{
3+
public class DummyStringModel
4+
{
5+
public string StringValue { get; set; }
6+
}
7+
}

samples/Aliencube.AzureFunctions.FunctionAppV1IoC/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,19 @@ public static async Task<HttpResponseMessage> AddDummy(
6060

6161
return result;
6262
}
63+
64+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
65+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
66+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
67+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
68+
public static async Task<HttpResponseMessage> UpdateDummies(
69+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequestMessage req,
70+
ILogger log)
71+
{
72+
var content = new List<DummyStringModel>();
73+
var result = req.CreateResponse(HttpStatusCode.OK, content);
74+
75+
return await Task.FromResult(result).ConfigureAwait(false);
76+
}
6377
}
6478
}

samples/Aliencube.AzureFunctions.FunctionAppV1Static/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,19 @@ public static async Task<HttpResponseMessage> AddDummy(
5050

5151
return await Task.FromResult(result).ConfigureAwait(false);
5252
}
53+
54+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
55+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
56+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
57+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
58+
public static async Task<HttpResponseMessage> UpdateDummies(
59+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequestMessage req,
60+
ILogger log)
61+
{
62+
var content = new List<DummyStringModel>();
63+
var result = req.CreateResponse(HttpStatusCode.OK, content);
64+
65+
return await Task.FromResult(result).ConfigureAwait(false);
66+
}
5367
}
5468
}

samples/Aliencube.AzureFunctions.FunctionAppV2IoC/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,19 @@ public async Task<IActionResult> AddDummy(
6060

6161
return await Task.FromResult(result).ConfigureAwait(false);
6262
}
63+
64+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
65+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
66+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
67+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
68+
public async Task<IActionResult> UpdateDummies(
69+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequest req,
70+
ILogger log)
71+
{
72+
var content = new List<DummyStringModel>();
73+
var result = new OkObjectResult(content);
74+
75+
return await Task.FromResult(result).ConfigureAwait(false);
76+
}
6377
}
6478
}

samples/Aliencube.AzureFunctions.FunctionAppV2Static/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,19 @@ public static async Task<IActionResult> AddDummy(
5151

5252
return await Task.FromResult(result).ConfigureAwait(false);
5353
}
54+
55+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
56+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
57+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
58+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
59+
public static async Task<IActionResult> UpdateDummies(
60+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequest req,
61+
ILogger log)
62+
{
63+
var content = new List<DummyStringModel>();
64+
var result = new OkObjectResult(content);
65+
66+
return await Task.FromResult(result).ConfigureAwait(false);
67+
}
5468
}
5569
}

samples/Aliencube.AzureFunctions.FunctionAppV3IoC/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,19 @@ public async Task<IActionResult> AddDummy(
6060

6161
return await Task.FromResult(result).ConfigureAwait(false);
6262
}
63+
64+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
65+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
66+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
67+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
68+
public async Task<IActionResult> UpdateDummies(
69+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequest req,
70+
ILogger log)
71+
{
72+
var content = new List<DummyStringModel>();
73+
var result = new OkObjectResult(content);
74+
75+
return await Task.FromResult(result).ConfigureAwait(false);
76+
}
6377
}
6478
}

samples/Aliencube.AzureFunctions.FunctionAppV3Static/DummyHttpTrigger.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,19 @@ public static async Task<IActionResult> AddDummy(
5151

5252
return await Task.FromResult(result).ConfigureAwait(false);
5353
}
54+
55+
[FunctionName(nameof(DummyHttpTrigger.UpdateDummies))]
56+
[OpenApiOperation(operationId: "updateDummies", tags: new[] { "dummy" }, Summary = "Updates a list of dummies", Description = "This updates a list of dummies.", Visibility = OpenApiVisibilityType.Advanced)]
57+
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(DummyListModel), Required = true, Description = "Dummy list model")]
58+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(List<DummyStringModel>), Summary = "Dummy response", Description = "This returns the dummy response")]
59+
public static async Task<IActionResult> UpdateDummies(
60+
[HttpTrigger(AuthorizationLevel.Function, "PUT", Route = "dummies")] HttpRequest req,
61+
ILogger log)
62+
{
63+
var content = new List<DummyStringModel>();
64+
var result = new OkObjectResult(content);
65+
66+
return await Task.FromResult(result).ConfigureAwait(false);
67+
}
5468
}
5569
}

src/Aliencube.AzureFunctions.Extensions.OpenApi.Core/DocumentHelper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,8 @@ public Dictionary<string, OpenApiSchema> GetOpenApiSchemas(List<MethodInfo> elem
215215
this._acceptor.Schemas = schemas;
216216

217217
this._acceptor.Accept(collection, namingStrategy);
218-
//types.ForEach(p => schemas.AddRange(p.ToOpenApiSchemas(namingStrategy)));
219218

220-
var union = schemas.Union(rootSchemas)
219+
var union = schemas.Concat(rootSchemas.Where(p => !schemas.Keys.Contains(p.Key)))
221220
.Distinct()
222221
.OrderBy(p => p.Key)
223222
.ToDictionary(p => p.Key,

0 commit comments

Comments
 (0)