feat: add map2, map3, andThen to Astrid.Query
This commit is contained in:
parent
3cf23637d5
commit
b6182376b6
12 changed files with 1202 additions and 1018 deletions
48
examples/sqlite-integration/src/ShowDatabaseSchema.elm
Normal file
48
examples/sqlite-integration/src/ShowDatabaseSchema.elm
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
module ShowDatabaseSchema exposing (main)
|
||||
|
||||
import Astrid.Query exposing (fetch, execute, errorToString)
|
||||
import Json.Decode
|
||||
import Html exposing (Html, ul, li, text, code, node, div)
|
||||
import Array.Extra
|
||||
|
||||
|
||||
main : Html msg
|
||||
main =
|
||||
let
|
||||
query =
|
||||
fetch
|
||||
"select json_object('type', type, 'name', name, 'sql', sql) from sqlite_master WHERE type = 'table'"
|
||||
[]
|
||||
(Json.Decode.map3
|
||||
(\kind name sql->
|
||||
(kind, name, sql)
|
||||
)
|
||||
(Json.Decode.field "type" Json.Decode.string)
|
||||
(Json.Decode.field "name" Json.Decode.string)
|
||||
(Json.Decode.field "sql" Json.Decode.string)
|
||||
)
|
||||
in
|
||||
case execute query of
|
||||
Ok results ->
|
||||
div []
|
||||
[ node "style" []
|
||||
[ text "code { background-color: #f6f7f9; display: block; padding: 1em; border-radius: 4px; border 1px solid #eee; } "
|
||||
]
|
||||
, ul []
|
||||
(Array.Extra.mapToList
|
||||
(\(kind, name, sql) ->
|
||||
li []
|
||||
[ text "type = "
|
||||
, text kind
|
||||
, text ", name ="
|
||||
, text name
|
||||
, code []
|
||||
[ text sql]
|
||||
]
|
||||
)
|
||||
results
|
||||
)
|
||||
]
|
||||
|
||||
Err error ->
|
||||
Html.text (errorToString error)
|
||||
Loading…
Add table
Add a link
Reference in a new issue