@@ -6,13 +6,13 @@ import Bucketchain (createServer, listen)
66import Bucketchain.Http (requestHeaders )
77import Bucketchain.Middleware (Middleware )
88import Bucketchain.SimpleAPI (withSimpleAPI )
9- import Bucketchain.SimpleAPI.Action (Action , askExtra , askRaw )
109import Bucketchain.SimpleAPI.Auth (Auth (..))
1110import Bucketchain.SimpleAPI.Auth.Class (class Authenticatable )
1211import Bucketchain.SimpleAPI.Batch (Batch (..))
1312import Bucketchain.SimpleAPI.Body (Body (..))
1413import Bucketchain.SimpleAPI.FreeT.Class (class Transformable )
1514import Bucketchain.SimpleAPI.JSON (JSON , failure , success , success_ )
15+ import Bucketchain.SimpleAPI.Proc (Proc , askExtra , askRaw )
1616import Bucketchain.SimpleAPI.RawData (RawData )
1717import Control.Monad.Error.Class (throwError )
1818import Control.Monad.Free.Trans (FreeT , liftFreeT )
@@ -66,49 +66,49 @@ middleware = withSimpleAPI 777 $ Batch
6666 , freeTTest
6767 }
6868
69- successTest :: Action Int (JSON (Array Item ))
69+ successTest :: Proc Int (JSON (Array Item ))
7070successTest = do
7171 num <- askExtra
7272 { path, rawBody } <- askRaw
7373 pure $ success headers 200 [{ id: 1 , name: " Item 1" , num, path, rawBody }]
7474 where
7575 headers = singleton " X-Custom" " CustomValue"
7676
77- failureTest :: Action Int (JSON Item )
77+ failureTest :: Proc Int (JSON Item )
7878failureTest = pure $ failure headers 503 $ singleton " core" [" This is error test" ]
7979 where
8080 headers = singleton " X-Custom" " CustomValue2"
8181
82- bodyTest :: Body OtherItem -> Action Int (JSON OtherItem )
82+ bodyTest :: Body OtherItem -> Proc Int (JSON OtherItem )
8383bodyTest (Body x) = pure $ success empty 201 x
8484
85- authTest :: Auth User -> Action Int (JSON OtherItem )
85+ authTest :: Auth User -> Proc Int (JSON OtherItem )
8686authTest (Auth (User x)) = pure $ success empty 200 { name: x.name }
8787
88- errorTest :: Action Int (JSON OtherItem )
88+ errorTest :: Proc Int (JSON OtherItem )
8989errorTest = throwError $ error " Test error"
9090
91- freeTTest :: VAction (JSON OtherItem )
91+ freeTTest :: VProc (JSON OtherItem )
9292freeTTest = do
9393 num <- getExtra
9494 rawData <- getRawData
9595 pure $ success_ 200 { name: show num <> rawData.rawBody }
9696
9797-- FreeT Example
98- data VActionF a
98+ data VProcF a
9999 = GetExtra (Int -> a )
100100 | GetRawData (RawData -> a )
101101
102- type VAction = FreeT VActionF ( Action Int )
102+ type VProc = FreeT VProcF ( Proc Int )
103103
104- derive instance functorVAction :: Functor VActionF
104+ derive instance functorVProc :: Functor VProcF
105105
106- getExtra :: VAction Int
106+ getExtra :: VProc Int
107107getExtra = liftFreeT $ GetExtra identity
108108
109- getRawData :: VAction RawData
109+ getRawData :: VProc RawData
110110getRawData = liftFreeT $ GetRawData identity
111111
112- instance transformableVActionF :: Transformable Int VActionF where
112+ instance transformableVProcF :: Transformable Int VProcF where
113113 transform (GetExtra k) = k <$> askExtra
114114 transform (GetRawData k) = k <$> askRaw
0 commit comments