Initial commit
This commit is contained in:
51
Browser.module.fs
Normal file
51
Browser.module.fs
Normal file
@@ -0,0 +1,51 @@
|
||||
module Browser
|
||||
|
||||
open System
|
||||
open System.IO
|
||||
open Microsoft.AspNetCore.Builder
|
||||
open Microsoft.AspNetCore.Http
|
||||
open Microsoft.AspNetCore.Routing
|
||||
open Microsoft.Extensions.DependencyInjection
|
||||
open Microsoft.Extensions.Hosting
|
||||
open DredgeFramework
|
||||
|
||||
|
||||
let cookieExists name (context: HttpContext) =
|
||||
context.Request.Cookies.ContainsKey(name)
|
||||
|
||||
let deleteCookie name (context: HttpContext) =
|
||||
if cookieExists name context then context.Response.Cookies.Delete(name)
|
||||
|
||||
|
||||
let getCookie cookieName (context: HttpContext) =
|
||||
context.Request.Cookies.[cookieName] |? ""
|
||||
|
||||
let setCookie name value (expiry: DateTimeOffset) (context: HttpContext) =
|
||||
deleteCookie name context
|
||||
let options = CookieOptions()
|
||||
options.Expires <- expiry
|
||||
context.Response.Cookies.Append(name, value, options);
|
||||
|
||||
let redirect url (context: HttpContext) =
|
||||
context.Response.Redirect url
|
||||
|
||||
let addRoute path controller (endpoints: IEndpointRouteBuilder) =
|
||||
endpoints.MapGet(path, fun context ->
|
||||
context.Response.WriteAsync(controller())) |> ignore
|
||||
endpoints
|
||||
|
||||
let addRouteWithParameter path controller param1 (endpoints: IEndpointRouteBuilder) =
|
||||
endpoints.MapGet(path, fun context ->
|
||||
let param1Name, param1Type = param1
|
||||
let parameter1 = context.Request.RouteValues.[param1Name] |> string |> param1Type
|
||||
context.Response.WriteAsync(controller parameter1)) |> ignore
|
||||
endpoints
|
||||
|
||||
let addRouteWithParameters path controller param1 param2 (endpoints: IEndpointRouteBuilder) =
|
||||
endpoints.MapGet(path, fun context ->
|
||||
let param1Name, param1Type = param1
|
||||
let param2Name, param2Type = param2
|
||||
let parameter1 = context.Request.RouteValues.[param1Name] |> string |> param1Type
|
||||
let parameter2 = context.Request.RouteValues.[param2Name] |> string |> param2Type
|
||||
context.Response.WriteAsync(controller parameter1 parameter2)) |> ignore
|
||||
endpoints
|
||||
Reference in New Issue
Block a user