module Logging.Deprecated
  ( runJson
  , jsonToManager
  ) where


import           Data.Aeson

import           Logging.Aeson
import           Logging.Internal
import           Logging.Types

-- |Run a logging environment from JSON 'Value'.
--
-- A combinator of 'run' and 'fromJSON'
--
-- A combinator of 'jsonToManager' and 'run'
--
-- See 'Logging.Aeson'
{-# DEPRECATED runJson "will be removed in 1.0.0" #-}
runJson :: Value -> IO a -> IO a
runJson v io = sequence (fromJSON v) >>= \result ->
  case result of
    Error _     -> error "Logging.Aeson: no parse (manager)"
    Success mgr -> run mgr io


-- |Make a 'Manager' from JSON 'Value'
--
-- Decode 'Aeson.Value' into 'Manager'
--
-- See 'Logging.Aeson'
{-# DEPRECATED jsonToManager "will be removed in 1.0.0" #-}
jsonToManager :: Value -> IO Manager
jsonToManager v = sequence (fromJSON v) >>= \result ->
  case result of
    Error _     -> error "Logging.Aeson: no parse (manager)"
    Success mgr -> return mgr