{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FunctionalDependencies #-} module Network.API.Dozens.Explicit ( -- * authorize I.authorize , I.fromToken -- * API , API(..) , module Network.API.Dozens.API , module Network.API.Dozens.Common ) where import Network.HTTP.Client import qualified Network.API.Dozens.Internal as I import Network.API.Dozens.Common import Network.API.Dozens.API class API a r | a -> r where run :: a -> I.Token -> Manager -> IO r instance API GetZone [Zone] where run _ = I.getZone instance API I.CreateZone [Zone] where run = I.createZone instance API I.UpdateZone [Zone] where run = I.updateZone instance API DeleteZone [Zone] where run = I.deleteZone instance API GetRecords [Record] where run = I.getRecords instance API I.CreateRecord [Record] where run = I.createRecord instance API I.UpdateRecord [Record] where run = I.updateRecord instance API DeleteRecord [Record] where run = I.deleteRecord