Rename Blog types to Page
This commit is contained in:
parent
c358c7b2ff
commit
a2896e140f
39
api/Blog.fs
39
api/Blog.fs
@ -1,39 +0,0 @@
|
|||||||
module Blog
|
|
||||||
|
|
||||||
open System
|
|
||||||
open System.Threading.Tasks
|
|
||||||
open Microsoft.AspNetCore.Http
|
|
||||||
open Giraffe
|
|
||||||
|
|
||||||
[<CLIMutable>]
|
|
||||||
type BlogPost = {
|
|
||||||
title: string
|
|
||||||
content: string
|
|
||||||
}
|
|
||||||
|
|
||||||
type BlogDb() =
|
|
||||||
|
|
||||||
let mutable allBlogPosts : BlogPost list = []
|
|
||||||
|
|
||||||
member this.GetAllPosts = fun() -> allBlogPosts
|
|
||||||
|
|
||||||
member this.AddPost (newPost : BlogPost) =
|
|
||||||
allBlogPosts <- (newPost::allBlogPosts)
|
|
||||||
allBlogPosts
|
|
||||||
|
|
||||||
type BlogServiceTree = {
|
|
||||||
getBlogDb : unit -> BlogDb
|
|
||||||
}
|
|
||||||
|
|
||||||
let getPostsHttpHandler (serviceTree: BlogServiceTree) =
|
|
||||||
fun (next : HttpFunc) (ctx : HttpContext) ->
|
|
||||||
json (serviceTree.getBlogDb().GetAllPosts()) next ctx
|
|
||||||
|
|
||||||
let createPostHttpHandler (serviceTree: BlogServiceTree) =
|
|
||||||
fun (next : HttpFunc) (ctx : HttpContext) ->
|
|
||||||
task {
|
|
||||||
let! newPostJson = ctx.BindJsonAsync<BlogPost>()
|
|
||||||
serviceTree.getBlogDb().AddPost(newPostJson) |> ignore
|
|
||||||
return! json (newPostJson) next ctx
|
|
||||||
}
|
|
||||||
|
|
||||||
41
api/Page.fs
Normal file
41
api/Page.fs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
module Page
|
||||||
|
|
||||||
|
open System
|
||||||
|
open System.Threading.Tasks
|
||||||
|
open Microsoft.AspNetCore.Http
|
||||||
|
open Giraffe
|
||||||
|
|
||||||
|
[<CLIMutable>]
|
||||||
|
type Page = {
|
||||||
|
id: int
|
||||||
|
title: string
|
||||||
|
subtitle: string
|
||||||
|
content: string
|
||||||
|
}
|
||||||
|
|
||||||
|
type PageDb() =
|
||||||
|
|
||||||
|
let mutable allPages : Page list = []
|
||||||
|
|
||||||
|
member this.GetAllPosts = fun() -> allPages
|
||||||
|
|
||||||
|
member this.AddPost (newPage : Page) =
|
||||||
|
allPages <- (newPage::allPages)
|
||||||
|
allPages
|
||||||
|
|
||||||
|
type PageServiceTree = {
|
||||||
|
getPageDb : unit -> PageDb
|
||||||
|
}
|
||||||
|
|
||||||
|
let getPostsHttpHandler (serviceTree: PageServiceTree) =
|
||||||
|
fun (next : HttpFunc) (ctx : HttpContext) ->
|
||||||
|
json (serviceTree.getPageDb().GetAllPosts()) next ctx
|
||||||
|
|
||||||
|
let createPostHttpHandler (serviceTree: PageServiceTree) =
|
||||||
|
fun (next : HttpFunc) (ctx : HttpContext) ->
|
||||||
|
task {
|
||||||
|
let! newPostJson = ctx.BindJsonAsync<Page>()
|
||||||
|
serviceTree.getPageDb().AddPost(newPostJson) |> ignore
|
||||||
|
return! json (newPostJson) next ctx
|
||||||
|
}
|
||||||
|
|
||||||
@ -5,7 +5,7 @@ open Microsoft.Extensions.Hosting
|
|||||||
open Microsoft.Extensions.Logging
|
open Microsoft.Extensions.Logging
|
||||||
open Microsoft.Extensions.DependencyInjection
|
open Microsoft.Extensions.DependencyInjection
|
||||||
|
|
||||||
open Blog
|
open Page
|
||||||
open Giraffe
|
open Giraffe
|
||||||
|
|
||||||
// Sources:
|
// Sources:
|
||||||
@ -15,10 +15,10 @@ open Giraffe
|
|||||||
(* Web App Configuration *)
|
(* Web App Configuration *)
|
||||||
|
|
||||||
let webApp =
|
let webApp =
|
||||||
let blogDb = new BlogDb()
|
let pageDb = new PageDb()
|
||||||
|
|
||||||
let serviceTree = {
|
let serviceTree = {
|
||||||
getBlogDb = fun() -> blogDb
|
getPageDb = fun() -> pageDb
|
||||||
}
|
}
|
||||||
|
|
||||||
choose[
|
choose[
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Database.fs" />
|
<Compile Include="Database.fs" />
|
||||||
<Compile Include="Controllers/PageController.fs" />
|
<Compile Include="Controllers/PageController.fs" />
|
||||||
<Compile Include="Blog.fs" />
|
<Compile Include="Page.fs" />
|
||||||
<Compile Include="Program.fs" />
|
<Compile Include="Program.fs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user