on master help sign in
Removes TH in favor of Generics
commit5840c84090e44cdd494d2e82abf0dfd7a2dffd66 authorDeni Bertovic <deni@denibertovic.com> dateThu 11 Feb 2016, 17:38 (11 years ago) parent888d3df
2 files changed+12−20
Network/Docker/Types.hs+11−19 docker.cabal+1−1
Network/Docker/Types.hs+11−19
@@ -1,26 +1,25 @@
11{-# LANGUAGE DataKinds #-}
22{-# LANGUAGE DeriveFunctor #-}
3+{-# LANGUAGE DeriveGeneric #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE GADTs #-}
56{-# LANGUAGE OverloadedStrings #-}
67{-# LANGUAGE RecordWildCards #-}
7−{-# LANGUAGE TemplateHaskell #-}
88{-# LANGUAGE TypeFamilies #-}
99
1010module Network.Docker.Types where
1111
1212import Control.Applicative
13−import Control.Lens.TH
1413import Control.Monad.Free
1514import Data.Aeson
16−import Data.Aeson.TH
15+import Data.Aeson.Types
1716import Data.Bool
1817import qualified Data.ByteString.Lazy as BS
1918import qualified Data.ByteString.Lazy as L
2019import Data.Default
2120import qualified Data.Map as Map
2221import qualified Data.Text as T
23−import GHC.Generics
22+import GHC.Generics (Generic)
2423import Network.Docker.Options
2524import Network.Wreq.Types (Postable)
2625import OpenSSL.Session (SSLContext)
@@ -107,7 +106,7 @@ data DockerVersion = DockerVersion
107106 , _GoVersion :: String
108107 , _Arch :: String
109108 , _KernelVersion :: String
110− } deriving (Show, Eq)
109+ } deriving (Show, Eq, Generic)
111110
112111
113112-- The JSON looks likes this:
@@ -258,16 +257,6 @@ instance ToJSON RestartPolicy where
258257 toJSON RestartAlways = object ["Name" .= ("always"::String), "MaximumRetryCount" .= (0::Int) ]
259258 toJSON (RestartOnFailure n) = object ["Name" .= ("on-failure"::String), "MaximumRetryCount" .= n ]
260259
261−makeClassy ''ResourceId
262−
263−-- makeLenses ''CreateContainerResponse
264−makeLenses ''DockerImage
265−makeLenses ''DockerContainer
266−makeLenses ''CreateContainerOpts
267−
268−instance HasResourceId DockerImage where
269− resourceId = imageId
270−
271260instance FromJSON DockerImage where
272261 parseJSON (Object v) =
273262 DockerImage <$> ResourceId <$> (v .: "Id")
@@ -284,9 +273,6 @@ instance FromJSON PortMap where
284273 <*> (v .: "PublicPort")
285274 <*> (v .: "Type")
286275
287−instance HasResourceId DockerContainer where
288− resourceId = containerId
289−
290276instance FromJSON DockerContainer where
291277 parseJSON (Object v) =
292278 DockerContainer <$> (ResourceId <$> (v .: "Id"))
@@ -302,5 +288,11 @@ instance FromJSON DockerContainer where
302288-- CreateContainerResponse <$> (v .: "Id")
303289-- <*> (v .:? "warnings")
304290
305−$(deriveJSON dopts ''DockerVersion)
291+instance ToJSON DockerVersion where
292+ toJSON = genericToJSON defaultOptions {
293+ fieldLabelModifier = drop 1 }
294+
295+instance FromJSON DockerVersion where
296+ parseJSON = genericParseJSON defaultOptions {
297+ fieldLabelModifier = drop 1 }
306298
docker.cabal+1−1
@@ -20,7 +20,7 @@ stability: experimental
2020library
2121 exposed-modules: Network.Docker, Network.Docker.Options, Network.Docker.Types, Network.Docker.Utils
2222 -- other-modules:
23− other-extensions: OverloadedStrings, DeriveFunctor, FlexibleContexts, TemplateHaskell
23+ other-extensions: OverloadedStrings, DeriveFunctor, FlexibleContexts
2424 build-depends: base >= 4.7 && < 4.9
2525 , lens >= 4.2
2626 , aeson >= 0.7