module Snap.AtlassianConnect.Instances ( ConnectURI(..) , getURI ) where import Control.Monad import Data.Aeson.Types import qualified Data.Text as T import Network.URI -- | An Atlassian Connect URI newtype ConnectURI = CURI URI deriving(Eq) -- | Get a regular URI from an Atlassian Connect URI getURI :: ConnectURI -> URI getURI (CURI u) = u instance Show ConnectURI where show (CURI u) = show u instance FromJSON ConnectURI where parseJSON (String uriString) = maybe mzero return (fmap CURI . parseURI . T.unpack $ uriString) parseJSON _ = mzero