on master help sign in
Removes MonadThrow
870a4f4Deni Bertovic
src/Docker.hs+25−26
@@ -1,4 +1,5 @@
1−{-# LANGUAGE ExplicitForAll #-}
1+{-# LANGUAGE ExplicitForAll #-}
2+{-# LANGUAGE ScopedTypeVariables #-}
2
3
3module Docker where
4module Docker where
4
5
@@ -16,86 +17,84 @@ import Network.HTTP.Types (StdMethod (..))
16import Docker.Internal
17import Docker.Internal
17import Docker.Types
18import Docker.Types
18
19
19−getDockerVersion :: forall m. MonadThrow m => DockerT m DockerVersion
20+getDockerVersion :: forall m. Monad m => DockerT m DockerVersion
20getDockerVersion = do
21getDockerVersion = do
21 (opts, httpHandler) <- ask
22 (opts, httpHandler) <- ask
22 let request = fromJust $ mkHttpRequest GET VersionEndpoint opts
23 let request = fromJust $ mkHttpRequest GET VersionEndpoint opts
23− response <- lift $ ((httpHandler request) :: m Response)
24+ response <- lift . lift $ ((httpHandler request) :: m Response)
24 let body = responseBody response
25 let body = responseBody response
25 let res = decode body
26 let res = decode body
26 return $ fromJust res
27 return $ fromJust res
27
28
28−listContainers :: forall m. MonadThrow m => ListOpts -> DockerT m [Container]
29+listContainers :: forall m. Monad m => ListOpts -> DockerT m [Container]
29listContainers lopts = do
30listContainers lopts = do
30 (opts, httpHandler) <- ask
31 (opts, httpHandler) <- ask
31 let request = fromJust $ mkHttpRequest GET (ListContainersEndpoint lopts) opts
32 let request = fromJust $ mkHttpRequest GET (ListContainersEndpoint lopts) opts
32− response <- lift $ httpHandler request
33+ response <- lift . lift $ ((httpHandler request) :: m Response)
33 let body = responseBody response
34 let body = responseBody response
34 let res = decode body
35 let res = decode body
35 return $ fromJust res
36 return $ fromJust res
36
37
37−listImages :: forall m. MonadThrow m => ListOpts -> DockerT m [Image]
38+listImages :: forall m. Monad m => ListOpts -> DockerT m [Image]
38listImages lopts = do
39listImages lopts = do
39 (opts, httpHandler) <- ask
40 (opts, httpHandler) <- ask
40 let request = fromJust $ mkHttpRequest GET (ListImagesEndpoint lopts) opts
41 let request = fromJust $ mkHttpRequest GET (ListImagesEndpoint lopts) opts
41− response <- lift $ ((httpHandler request) :: m Response)
42+ response <- lift . lift $ ((httpHandler request) :: m Response)
42 let body = responseBody response
43 let body = responseBody response
43 let res = decode body
44 let res = decode body
44 return $ fromJust res
45 return $ fromJust res
45
46
46−createContainer :: forall m. MonadThrow m => CreateOpts -> DockerT m ContainerID
47+createContainer :: forall m. Monad m => CreateOpts -> DockerT m ContainerID
47createContainer = undefined
48createContainer = undefined
48
49
49−startContainer :: forall m. MonadThrow m => StartOpts -> ContainerID -> DockerT m ContainerID
50+startContainer :: forall m. Monad m => StartOpts -> ContainerID -> DockerT m ContainerID
50startContainer sopts cid = do
51startContainer sopts cid = do
51 (opts, httpHandler) <- ask
52 (opts, httpHandler) <- ask
52 let request = fromJust $ mkHttpRequest POST (StartContainerEndpoint sopts cid) opts
53 let request = fromJust $ mkHttpRequest POST (StartContainerEndpoint sopts cid) opts
53− _ <- lift $ ((httpHandler request) :: m Response)
54+ _ <- lift . lift $ ((httpHandler request) :: m Response)
54 return cid
55 return cid
55
56
56−stopContainer :: forall m. MonadThrow m => Timeout -> ContainerID ->DockerT m ContainerID
57+stopContainer :: forall m. Monad m => Timeout -> ContainerID ->DockerT m ContainerID
57stopContainer t cid = do
58stopContainer t cid = do
58 (opts, httpHandler) <- ask
59 (opts, httpHandler) <- ask
59 let request = fromJust $ mkHttpRequest POST (StopContainerEndpoint t cid) opts
60 let request = fromJust $ mkHttpRequest POST (StopContainerEndpoint t cid) opts
60− _ <- lift $ ((httpHandler request) :: m Response)
61+ _ <- lift . lift $ ((httpHandler request) :: m Response)
61 return cid
62 return cid
62
63
63−killContainer :: forall m. MonadThrow m => Signal -> ContainerID -> DockerT m ContainerID
64+killContainer :: forall m. Monad m => Signal -> ContainerID -> DockerT m ContainerID
64killContainer s cid = do
65killContainer s cid = do
65 (opts, httpHandler) <- ask
66 (opts, httpHandler) <- ask
66 let request = fromJust $ mkHttpRequest POST (KillContainerEndpoint s cid) opts
67 let request = fromJust $ mkHttpRequest POST (KillContainerEndpoint s cid) opts
67− _ <- lift $ ((httpHandler request) :: m Response)
68+ _ <- lift . lift $ ((httpHandler request) :: m Response)
68 return cid
69 return cid
69
70
70−restartContainer :: forall m. MonadThrow m => Timeout -> ContainerID -> DockerT m ContainerID
71+restartContainer :: forall m. Monad m => Timeout -> ContainerID -> DockerT m ContainerID
71restartContainer t cid = do
72restartContainer t cid = do
72 (opts, httpHandler) <- ask
73 (opts, httpHandler) <- ask
73 let request = fromJust $ mkHttpRequest POST (RestartContainerEndpoint t cid) opts
74 let request = fromJust $ mkHttpRequest POST (RestartContainerEndpoint t cid) opts
74− _ <- lift $ ((httpHandler request) :: m Response)
75+ _ <- lift . lift $ ((httpHandler request) :: m Response)
75 return cid
76 return cid
76
77
77−pauseContainer :: forall m. MonadThrow m => ContainerID -> DockerT m ContainerID
78+pauseContainer :: forall m. Monad m => ContainerID -> DockerT m ContainerID
78pauseContainer cid = do
79pauseContainer cid = do
79 (opts, httpHandler) <- ask
80 (opts, httpHandler) <- ask
80 let request = fromJust $ mkHttpRequest POST (PauseContainerEndpoint cid) opts
81 let request = fromJust $ mkHttpRequest POST (PauseContainerEndpoint cid) opts
81− _ <- lift $ ((httpHandler request) :: m Response)
82+ _ <- lift . lift $ ((httpHandler request) :: m Response)
82 return cid
83 return cid
83
84
84−unpauseContainer :: forall m. MonadThrow m => ContainerID -> DockerT m ContainerID
85+unpauseContainer :: forall m. Monad m => ContainerID -> DockerT m ContainerID
85unpauseContainer cid = do
86unpauseContainer cid = do
86 (opts, httpHandler) <- ask
87 (opts, httpHandler) <- ask
87 let request = fromJust $ mkHttpRequest GET (UnpauseContainerEndpoint cid) opts
88 let request = fromJust $ mkHttpRequest GET (UnpauseContainerEndpoint cid) opts
88− _ <- lift $ ((httpHandler request) :: m Response)
89+ _ <- lift . lift $ ((httpHandler request) :: m Response)
89 return cid
90 return cid
90
91
91−deleteContainer :: forall m. MonadThrow m => DeleteOpts -> ContainerID -> DockerT m ContainerID
92+deleteContainer :: forall m. Monad m => DeleteOpts -> ContainerID -> DockerT m ContainerID
92deleteContainer dopts cid = do
93deleteContainer dopts cid = do
93 (opts, httpHandler) <- ask
94 (opts, httpHandler) <- ask
94 let request = fromJust $ mkHttpRequest DELETE (DeleteContainerEndpoint dopts cid) opts
95 let request = fromJust $ mkHttpRequest DELETE (DeleteContainerEndpoint dopts cid) opts
95− _ <- lift $ ((httpHandler request) :: m Response)
96+ _ <- lift . lift $ ((httpHandler request) :: m Response)
96 return cid
97 return cid
97
98
98−getContainerLogs :: forall m. MonadThrow m => LogOpts -> ContainerID -> DockerT m ()
99+getContainerLogs :: forall m. Monad m => LogOpts -> ContainerID -> DockerT m ()
99−getContainerLogs logopts cid = undefined
100+getContainerLogs logopts cid = undefined
100−
101−
src/Docker/Types.hs+3−3
@@ -62,10 +62,10 @@ data DockerClientOpts = DockerClientOpts {
62
62
63type HttpHandler m = Request -> m Response
63type HttpHandler m = Request -> m Response
64
64
65−type DockerT m a = ReaderT (DockerClientOpts, HttpHandler m) m a
65+type DockerT m a = ReaderT (DockerClientOpts, HttpHandler m) (ExceptT String m) a
66
66
67−runDockerT :: (MonadThrow m) => (DockerClientOpts, HttpHandler m) -> DockerT m a -> m a
67+runDockerT :: Monad m => (DockerClientOpts, HttpHandler m) -> DockerT m a -> m (Either String a)
68−runDockerT (opts, h) r = runReaderT r (opts, h)
68+runDockerT (opts, h) r = runExceptT $ runReaderT r (opts, h)
69
69
70data ListOpts = ListOpts { all :: Bool } deriving (Eq, Show)
70data ListOpts = ListOpts { all :: Bool } deriving (Eq, Show)
71
71