Skip to content

Commit 1b06c59

Browse files
bencrokerSpiralOSS
andauthored
Handle DELETE method in ReadSignals (#7)
* Handle DELETE method in `ReadSignals` * Refactor ReadSignalsToJsonDocument method logic * DELETE taken from System.Net.Http.HttpMethod * nuget version bumps to 1.3 --------- Co-authored-by: Greg Holden <SpiralOSS@users.noreply.github.com>
1 parent bc819b7 commit 1b06c59

File tree

5 files changed

+11
-9
lines changed

5 files changed

+11
-9
lines changed

examples/csharp/HelloWorld/wwwroot/hello-world.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<title>Datastar SDK Demo</title>
55
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
6-
<script src="https://cdn.jsdelivr.net/gh/starfederation/datastar@1.0.0-RC.8/bundles/datastar.js" type="module"></script>
6+
<script src="https://cdn.jsdelivr.net/gh/starfederation/datastar@1.0.0/bundles/datastar.js" type="module"></script>
77
</head>
88
<body class="bg-white dark:bg-gray-900 text-lg my-16">
99

@@ -72,4 +72,4 @@ <h1 class="text-gray-900 dark:text-white text-3xl font-semibold">
7272
</div>
7373
</div>
7474
</body>
75-
</html>
75+
</html>

src/csharp/ModelBinding/SignalsModelBinder.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ public async Task BindModelAsync(ModelBindingContext bindingContext)
6767

6868
private async ValueTask<JsonDocument> ReadSignalsToJsonDocument(ModelBindingContext bindingContext)
6969
{
70-
return bindingContext.HttpContext.Request.Method == WebRequestMethods.Http.Get
70+
var method = bindingContext.HttpContext.Request.Method;
71+
72+
return method == WebRequestMethods.Http.Get || method == HttpMethod.Delete.Method
7173
? JsonDocument.Parse(await signalsReader.ReadSignalsAsync() ?? string.Empty)
7274
: await JsonDocument.ParseAsync(signalsReader.GetSignalsStream());
7375
}
@@ -80,4 +82,4 @@ public class SignalsModelBinderProvider : IModelBinderProvider
8082
? new BinderTypeModelBinder(typeof(SignalsModelBinder))
8183
: null;
8284

83-
}
85+
}

src/csharp/StarFederation.Datastar.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
<!-- NuGet config -->
2222
<PackageId>StarFederation.Datastar</PackageId>
23-
<PackageVersion>1.2.1</PackageVersion>
23+
<PackageVersion>1.3</PackageVersion>
2424
<PackageTags>datastar;datastar-sharp;fsharp;functional;asp.net core;asp.net;.net core;routing;web;csharp</PackageTags>
2525
<PackageProjectUrl>https://github.com/starfederation/datastar-dotnet</PackageProjectUrl>
2626
<PackageIcon>datastar_icon.png</PackageIcon>

src/fsharp/ServerSentEventGenerator.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ type ServerSentEventGenerator(httpContextAccessor:IHttpContextAccessor) =
134134

135135
static member GetSignalsStream(httpRequest:HttpRequest) =
136136
match httpRequest.Method with
137-
| System.Net.WebRequestMethods.Http.Get ->
137+
| method when method = System.Net.WebRequestMethods.Http.Get || method = System.Net.Http.HttpMethod.Delete.Method ->
138138
match httpRequest.Query.TryGetValue(Consts.DatastarKey) with
139139
| true, stringValues when stringValues.Count > 0 -> (new MemoryStream(Encoding.UTF8.GetBytes(stringValues[0])) :> Stream)
140140
| _ -> Stream.Null
@@ -143,7 +143,7 @@ type ServerSentEventGenerator(httpContextAccessor:IHttpContextAccessor) =
143143
static member ReadSignalsAsync(httpRequest:HttpRequest, cancellationToken:CancellationToken) =
144144
backgroundTask {
145145
match httpRequest.Method with
146-
| System.Net.WebRequestMethods.Http.Get ->
146+
| method when method = System.Net.WebRequestMethods.Http.Get || method = System.Net.Http.HttpMethod.Delete.Method ->
147147
match httpRequest.Query.TryGetValue(Consts.DatastarKey) with
148148
| true, stringValues when stringValues.Count > 0 -> return stringValues[0]
149149
| _ -> return Signals.empty
@@ -159,7 +159,7 @@ type ServerSentEventGenerator(httpContextAccessor:IHttpContextAccessor) =
159159
task {
160160
try
161161
match httpRequest.Method with
162-
| System.Net.WebRequestMethods.Http.Get ->
162+
| method when method = System.Net.WebRequestMethods.Http.Get || method = System.Net.Http.HttpMethod.Delete.Method ->
163163
match httpRequest.Query.TryGetValue(Consts.DatastarKey) with
164164
| true, stringValues when stringValues.Count > 0 ->
165165
return ValueSome (JsonSerializer.Deserialize<'T>(stringValues[0], jsonSerializerOptions))

src/fsharp/StarFederation.Datastar.FSharp.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<!-- NuGet config -->
2424
<PackageId>StarFederation.Datastar.FSharp</PackageId>
25-
<PackageVersion>1.2.1</PackageVersion>
25+
<PackageVersion>1.3</PackageVersion>
2626
<PackageTags>datastar;datastar-sharp;fsharp;functional;asp.net core;asp.net;.net core;routing;web</PackageTags>
2727
<PackageProjectUrl>https://github.com/starfederation/datastar-dotnet</PackageProjectUrl>
2828
<PackageIcon>datastar_icon.png</PackageIcon>

0 commit comments

Comments
 (0)