@@ -23,6 +23,7 @@ emptyPost = "" :: String
23runDocker :: HttpRequestM r -> IO (Response L.ByteString)
23runDocker :: HttpRequestM r -> IO (Response L.ByteString)
24runDocker (Free (Get url)) = get url
24runDocker (Free (Get url)) = get url
25runDocker (Free (Post url body)) = post url body
25runDocker (Free (Post url body)) = post url body
26+runDocker (Free (Delete url)) = delete url
27constructUrl :: URL -> ApiVersion -> String -> URL
28constructUrl :: URL -> ApiVersion -> String -> URL
28constructUrl url apiVersion endpoint = printf "%s%s%s" url apiVersion endpoint
29constructUrl url apiVersion endpoint = printf "%s%s%s" url apiVersion endpoint
@@ -46,6 +47,7 @@ getEndpoint (SRestartContainerEndpoint cid) = printf "/containers/%s/restart" ci
46getEndpoint (SPauseContainerEndpoint cid) = printf "/containers/%s/pause" cid
47getEndpoint (SPauseContainerEndpoint cid) = printf "/containers/%s/pause" cid
47getEndpoint (SUnpauseContainerEndpoint cid) = printf "/containers/%s/unpause" cid
48getEndpoint (SUnpauseContainerEndpoint cid) = printf "/containers/%s/unpause" cid
48getEndpoint (SContainerLogsEndpoint cid) = printf "/containers/%s/logs?stdout=1&stderr=1" cid
49getEndpoint (SContainerLogsEndpoint cid) = printf "/containers/%s/logs?stdout=1&stderr=1" cid
50+getEndpoint (SDeleteContainerEndpoint cid (DeleteOpts removeVolumes force)) = printf "/containers/%s?v=%s;force=%s" cid (show removeVolumes) (show force)
50fullUrl :: DockerClientOpts -> SEndpoint a -> URL
52fullUrl :: DockerClientOpts -> SEndpoint a -> URL
51fullUrl clientOpts endpoint = constructUrl (baseUrl clientOpts) (apiVersion clientOpts) (getEndpoint endpoint)
53fullUrl clientOpts endpoint = constructUrl (baseUrl clientOpts) (apiVersion clientOpts) (getEndpoint endpoint)
@@ -59,6 +61,9 @@ _dockerPostQuery clientOpts endpoint postObject = Free (Post (fullUrl clientOpts
59_dockerEmptyPostQuery :: DockerClientOpts -> SEndpoint a -> HttpRequestM (SEndpoint a)
61_dockerEmptyPostQuery :: DockerClientOpts -> SEndpoint a -> HttpRequestM (SEndpoint a)
60_dockerEmptyPostQuery clientOpts endpoint = Free (Post (fullUrl clientOpts endpoint) (toJSON emptyPost))
62_dockerEmptyPostQuery clientOpts endpoint = Free (Post (fullUrl clientOpts endpoint) (toJSON emptyPost))
64+_dockerDeleteQuery :: DockerClientOpts -> SEndpoint a -> HttpRequestM (SEndpoint a)
65+_dockerDeleteQuery clientOpts endpoint = Free $ Delete $ fullUrl clientOpts endpoint
62getDockerVersionM :: DockerClientOpts -> SEndpoint VersionEndpoint -> HttpRequestM (SEndpoint VersionEndpoint)
67getDockerVersionM :: DockerClientOpts -> SEndpoint VersionEndpoint -> HttpRequestM (SEndpoint VersionEndpoint)
63getDockerVersionM clientOpts e = _dockerGetQuery clientOpts e
68getDockerVersionM clientOpts e = _dockerGetQuery clientOpts e
@@ -89,6 +94,9 @@ createContainerM clientOpts e c = _dockerPostQuery clientOpts e c
89startContainerM :: DockerClientOpts -> SEndpoint StartContainerEndpoint -> StartContainerOpts -> HttpRequestM (SEndpoint StartContainerEndpoint)
94startContainerM :: DockerClientOpts -> SEndpoint StartContainerEndpoint -> StartContainerOpts -> HttpRequestM (SEndpoint StartContainerEndpoint)
90startContainerM clientOpts e c = _dockerPostQuery clientOpts e c
95startContainerM clientOpts e c = _dockerPostQuery clientOpts e c
97+deleteContainerM :: DockerClientOpts -> SEndpoint DeleteContainerEndpoint -> HttpRequestM (SEndpoint DeleteContainerEndpoint)
98+deleteContainerM clientOpts e = _dockerDeleteQuery clientOpts e
92-- getContainerLogsM :: DockerClientOpts -> SEndpoint ContainerLogsEndpoint -> Bool -> HttpRequestM (SEndpoint ContainerLogsEndpoint)
100-- getContainerLogsM :: DockerClientOpts -> SEndpoint ContainerLogsEndpoint -> Bool -> HttpRequestM (SEndpoint ContainerLogsEndpoint)
93-- getContainerLogsM clientOpts e f = case f of
101-- getContainerLogsM clientOpts e f = case f of
94-- False -> _dockerGetQuery clientOpts e
102-- False -> _dockerGetQuery clientOpts e