Browse Source

Giraffe stock (#6002)

Ben Adams 4 years ago
parent
commit
d6a31f76a1

+ 0 - 5
frameworks/FSharp/giraffe/src/App/StatefullRendering.fs

@@ -76,8 +76,3 @@ module rec StatefullRendering =
         let ms = new MemoryStream()
         renderHtmlToStream ms node
         ms
-
-    let renderHtmlToBytes node =
-        let ms = new MemoryStream()
-        renderHtmlToStream ms node
-        ms.ToArray()

+ 18 - 21
frameworks/FSharp/giraffe/src/App/Stock.fs

@@ -1,36 +1,33 @@
 module Stock
 
 open Giraffe
+open Giraffe.ViewEngine
 open Dapper
 open Npgsql
 open Models
 open FSharp.Control.Tasks
-open App
 
-let application : HttpHandler = 
-    
-    let fortunes : HttpHandler = 
-        let extra = {id = 0; message = "Additional fortune added at request time."}
-
-        fun _ ctx ->
-            task {
-                use conn = new NpgsqlConnection(ConnectionString)
-                let! data = conn.QueryAsync<Fortune>("SELECT id, message FROM fortune")
+let extra = {id = 0; message = "Additional fortune added at request time."}
 
-                let view =
-                    let xs = data.AsList()
-                    xs.Add extra
-                    xs.Sort FortuneComparer
-                    HtmlViews.fortunes xs
+let fortunes : HttpHandler = 
+    fun _ ctx ->
+        task {
+            use conn = new NpgsqlConnection(ConnectionString)
+            let! data = conn.QueryAsync<Fortune>("SELECT id, message FROM fortune")
 
-                let bytes = 
-                    view 
-                    |> StatefullRendering.renderHtmlToBytes
+            let view = 
+                let xs = data.AsList()
+                xs.Add extra
+                xs.Sort FortuneComparer
+                HtmlViews.fortunes xs
 
-                ctx.SetContentType "text/html;charset=utf-8"
-                return! ctx.WriteBytesAsync bytes
-            }
+            let bytes = RenderView.AsBytes.htmlDocument view
+                
+            ctx.SetContentType "text/html;charset=utf-8"
+            return! ctx.WriteBytesAsync bytes
+        }
 
+let application : HttpHandler = 
     choose [
         route "/plaintext" >=> text "Hello, World!" 
         route "/json" >=> json {| message = "Hello, World!" |}