@@ -9,20 +9,20 @@ import Test.Spec (Spec, around, describe, it)
99import Test.Spec.Assertions (shouldEqual)
1010import Yoga.Fastify.Fastify as F
1111import Yoga.Fastify.Fastify (Port(..), Host(..))
12−import Yoga.Fastify.Om.Route (Handler, Request, handle, respond, handleRoute)
12+import Yoga.Fastify.Om.API (registerAPI)
13+import Yoga.Fastify.Om.Route (Handler, handle, respond)
1314import Yoga.Fetch.Om (GET, Route, type (/), type (:), client)
1415import Yoga.Om (Om, ask, runOm)
1516
1617type User = { id :: Int, name :: String }
1718
19+type GetUserRoute = Route GET ("users" / "id" : Int) {} (ok :: { body :: User })
20+
1821type TestAPI =
19− { getUser :: Route GET ("users" / "id" : Int) (Request {}) (ok :: { body :: User })
22+ { getUser :: GetUserRoute
2023 }
2124
22−api
23− :: forall ctx err
24− . { getUser :: { id :: Int } -> Om ctx err User
25− }
25+api :: forall ctx err. { getUser :: { id :: Int } -> Om ctx err User }
2626api = client @TestAPI "http://localhost:44931"
2727
2828spec :: Spec Unit
@@ -55,15 +55,13 @@ withServer test = bracket acquire release (\_ -> test unit)
5555 acquire = do
5656 fastify <- liftEffect do
5757 f <- F.fastify {}
58− handleRoute getUserHandler f
58+ registerAPI { getUser: getUserHandler } f
5959 pure f
6060 void $ F.listen { port: Port 44931, host: Host "0.0.0.0" } fastify
6161 pure fastify
6262
6363 release = F.close
6464
65−type GetUserRoute = Route GET ("users" / "id" : Int) (Request {}) (ok :: { body :: User })
66−
6765getUserHandler :: Handler GetUserRoute
6866getUserHandler = handle do
6967 { path } <- ask