Migrate API to .NET Core 3.0

This commit is contained in:
Daniel J. Summers 2019-09-27 20:07:18 -05:00
parent ac8b39fff9
commit 97ed2575ea
4 changed files with 21 additions and 6 deletions

View File

@ -86,6 +86,15 @@ module private Helpers =
let asJson<'T> next ctx (o : 'T) =
json o next ctx
/// Work-around to let the Json.NET serializer synchronously deserialize from the request stream
// TODO: Remove this once there is an async serializer
let allowSyncIO : HttpHandler =
fun next ctx ->
match ctx.Features.Get<Features.IHttpBodyControlFeature>() with
| null -> ()
| f -> f.AllowSynchronousIO <- true
next ctx
/// Strongly-typed models for post requests
module Models =
@ -156,6 +165,7 @@ module Request =
/// POST /api/request
let add : HttpHandler =
authorize
>=> allowSyncIO
>=> fun next ctx ->
task {
let! r = ctx.BindJsonAsync<Models.Request> ()
@ -187,6 +197,7 @@ module Request =
/// POST /api/request/[req-id]/history
let addHistory requestId : HttpHandler =
authorize
>=> allowSyncIO
>=> fun next ctx ->
task {
use sess = session ctx
@ -218,6 +229,7 @@ module Request =
/// POST /api/request/[req-id]/note
let addNote requestId : HttpHandler =
authorize
>=> allowSyncIO
>=> fun next ctx ->
task {
use sess = session ctx
@ -297,6 +309,7 @@ module Request =
/// PATCH /api/request/[req-id]/snooze
let snooze requestId : HttpHandler =
authorize
>=> allowSyncIO
>=> fun next ctx ->
task {
use sess = session ctx
@ -314,6 +327,7 @@ module Request =
/// PATCH /api/request/[req-id]/recurrence
let updateRecurrence requestId : HttpHandler =
authorize
>=> allowSyncIO
>=> fun next ctx ->
task {
use sess = session ctx

View File

@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<Version>2.0.1.0</Version>
<TargetFramework>netcoreapp3.0</TargetFramework>
<Version>2.1.0.0</Version>
</PropertyGroup>
<ItemGroup>
@ -16,7 +16,7 @@
<PackageReference Include="FunctionalCuid" Version="1.0.0" />
<PackageReference Include="Giraffe" Version="3.6.0" />
<PackageReference Include="Giraffe.TokenRouter" Version="1.0.0" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.0.0" />
<PackageReference Include="Microsoft.FSharpLu" Version="0.10.29" />
<PackageReference Include="Microsoft.FSharpLu.Json" Version="0.10.29" />
<PackageReference Include="RavenDb.Client" Version="4.2.1" />

View File

@ -90,11 +90,12 @@ module Configure =
bldr.ConfigureServices svcs
open Microsoft.Extensions.Logging
open Microsoft.Extensions.Hosting
/// Configure logging
let logging (bldr : IWebHostBuilder) =
let logz (log : ILoggingBuilder) =
let env = log.Services.BuildServiceProvider().GetService<IHostingEnvironment> ()
let env = log.Services.BuildServiceProvider().GetService<IWebHostEnvironment> ()
match env.IsDevelopment () with
| true -> log
| false -> log.AddFilter(fun l -> l > LogLevel.Information)
@ -109,7 +110,7 @@ module Configure =
let appConfig =
Action<IApplicationBuilder> (
fun (app : IApplicationBuilder) ->
let env = app.ApplicationServices.GetService<IHostingEnvironment> ()
let env = app.ApplicationServices.GetService<IWebHostEnvironment> ()
match env.IsDevelopment () with
| true -> app.UseDeveloperExceptionPage ()
| false -> app.UseGiraffeErrorHandler Handlers.Error.error

View File

@ -1,6 +1,6 @@
{
"name": "my-prayer-journal",
"version": "2.0.1",
"version": "2.1.0",
"description": "myPrayerJournal - Front End",
"author": "Daniel J. Summers <daniel@bitbadger.solutions>",
"private": true,