module Ecluse.Core.Registry (
RegistryClient (..),
RegistryResponse (..),
ParseError (..),
PublishError (..),
PublishFault (..),
UrlFormationError (..),
PublishRelayResponse (..),
) where
import Ecluse.Core.Package (PackageDetails, PackageInfo, PackageName)
import Ecluse.Core.Queue (MirrorArtifact)
import Ecluse.Core.Version (Version)
newtype RegistryResponse = RegistryResponse
{ RegistryResponse -> ByteString
responseBody :: ByteString
}
deriving stock (RegistryResponse -> RegistryResponse -> Bool
(RegistryResponse -> RegistryResponse -> Bool)
-> (RegistryResponse -> RegistryResponse -> Bool)
-> Eq RegistryResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RegistryResponse -> RegistryResponse -> Bool
== :: RegistryResponse -> RegistryResponse -> Bool
$c/= :: RegistryResponse -> RegistryResponse -> Bool
/= :: RegistryResponse -> RegistryResponse -> Bool
Eq, Int -> RegistryResponse -> ShowS
[RegistryResponse] -> ShowS
RegistryResponse -> String
(Int -> RegistryResponse -> ShowS)
-> (RegistryResponse -> String)
-> ([RegistryResponse] -> ShowS)
-> Show RegistryResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RegistryResponse -> ShowS
showsPrec :: Int -> RegistryResponse -> ShowS
$cshow :: RegistryResponse -> String
show :: RegistryResponse -> String
$cshowList :: [RegistryResponse] -> ShowS
showList :: [RegistryResponse] -> ShowS
Show)
newtype ParseError = ParseError
{ ParseError -> Text
parseErrorMessage :: Text
}
deriving stock (ParseError -> ParseError -> Bool
(ParseError -> ParseError -> Bool)
-> (ParseError -> ParseError -> Bool) -> Eq ParseError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ParseError -> ParseError -> Bool
== :: ParseError -> ParseError -> Bool
$c/= :: ParseError -> ParseError -> Bool
/= :: ParseError -> ParseError -> Bool
Eq, Int -> ParseError -> ShowS
[ParseError] -> ShowS
ParseError -> String
(Int -> ParseError -> ShowS)
-> (ParseError -> String)
-> ([ParseError] -> ShowS)
-> Show ParseError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ParseError -> ShowS
showsPrec :: Int -> ParseError -> ShowS
$cshow :: ParseError -> String
show :: ParseError -> String
$cshowList :: [ParseError] -> ShowS
showList :: [ParseError] -> ShowS
Show)
newtype PublishError = PublishError
{ PublishError -> Text
publishErrorMessage :: Text
}
deriving stock (PublishError -> PublishError -> Bool
(PublishError -> PublishError -> Bool)
-> (PublishError -> PublishError -> Bool) -> Eq PublishError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PublishError -> PublishError -> Bool
== :: PublishError -> PublishError -> Bool
$c/= :: PublishError -> PublishError -> Bool
/= :: PublishError -> PublishError -> Bool
Eq, Int -> PublishError -> ShowS
[PublishError] -> ShowS
PublishError -> String
(Int -> PublishError -> ShowS)
-> (PublishError -> String)
-> ([PublishError] -> ShowS)
-> Show PublishError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PublishError -> ShowS
showsPrec :: Int -> PublishError -> ShowS
$cshow :: PublishError -> String
show :: PublishError -> String
$cshowList :: [PublishError] -> ShowS
showList :: [PublishError] -> ShowS
Show)
data UrlFormationError
=
EmptyBaseUrl
|
UnparseableUrl Text
deriving stock (UrlFormationError -> UrlFormationError -> Bool
(UrlFormationError -> UrlFormationError -> Bool)
-> (UrlFormationError -> UrlFormationError -> Bool)
-> Eq UrlFormationError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UrlFormationError -> UrlFormationError -> Bool
== :: UrlFormationError -> UrlFormationError -> Bool
$c/= :: UrlFormationError -> UrlFormationError -> Bool
/= :: UrlFormationError -> UrlFormationError -> Bool
Eq, Int -> UrlFormationError -> ShowS
[UrlFormationError] -> ShowS
UrlFormationError -> String
(Int -> UrlFormationError -> ShowS)
-> (UrlFormationError -> String)
-> ([UrlFormationError] -> ShowS)
-> Show UrlFormationError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UrlFormationError -> ShowS
showsPrec :: Int -> UrlFormationError -> ShowS
$cshow :: UrlFormationError -> String
show :: UrlFormationError -> String
$cshowList :: [UrlFormationError] -> ShowS
showList :: [UrlFormationError] -> ShowS
Show)
instance Exception UrlFormationError
data PublishRelayResponse = PublishRelayResponse
{ PublishRelayResponse -> Int
relayStatus :: Int
, PublishRelayResponse -> LByteString
relayBody :: LByteString
}
deriving stock (PublishRelayResponse -> PublishRelayResponse -> Bool
(PublishRelayResponse -> PublishRelayResponse -> Bool)
-> (PublishRelayResponse -> PublishRelayResponse -> Bool)
-> Eq PublishRelayResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PublishRelayResponse -> PublishRelayResponse -> Bool
== :: PublishRelayResponse -> PublishRelayResponse -> Bool
$c/= :: PublishRelayResponse -> PublishRelayResponse -> Bool
/= :: PublishRelayResponse -> PublishRelayResponse -> Bool
Eq, Int -> PublishRelayResponse -> ShowS
[PublishRelayResponse] -> ShowS
PublishRelayResponse -> String
(Int -> PublishRelayResponse -> ShowS)
-> (PublishRelayResponse -> String)
-> ([PublishRelayResponse] -> ShowS)
-> Show PublishRelayResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PublishRelayResponse -> ShowS
showsPrec :: Int -> PublishRelayResponse -> ShowS
$cshow :: PublishRelayResponse -> String
show :: PublishRelayResponse -> String
$cshowList :: [PublishRelayResponse] -> ShowS
showList :: [PublishRelayResponse] -> ShowS
Show)
data PublishFault
=
PublishUrlUnformable UrlFormationError
|
PublishRejected PublishError
deriving stock (PublishFault -> PublishFault -> Bool
(PublishFault -> PublishFault -> Bool)
-> (PublishFault -> PublishFault -> Bool) -> Eq PublishFault
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PublishFault -> PublishFault -> Bool
== :: PublishFault -> PublishFault -> Bool
$c/= :: PublishFault -> PublishFault -> Bool
/= :: PublishFault -> PublishFault -> Bool
Eq, Int -> PublishFault -> ShowS
[PublishFault] -> ShowS
PublishFault -> String
(Int -> PublishFault -> ShowS)
-> (PublishFault -> String)
-> ([PublishFault] -> ShowS)
-> Show PublishFault
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PublishFault -> ShowS
showsPrec :: Int -> PublishFault -> ShowS
$cshow :: PublishFault -> String
show :: PublishFault -> String
$cshowList :: [PublishFault] -> ShowS
showList :: [PublishFault] -> ShowS
Show)
data RegistryClient = RegistryClient
{ RegistryClient -> PackageName -> IO RegistryResponse
fetchMetadata :: PackageName -> IO RegistryResponse
, RegistryClient -> PackageName -> Version -> IO RegistryResponse
fetchArtifact :: PackageName -> Version -> IO RegistryResponse
, RegistryClient
-> PackageName
-> Version
-> MirrorArtifact
-> ByteString
-> IO (Either PublishFault ())
publishArtifact :: PackageName -> Version -> MirrorArtifact -> ByteString -> IO (Either PublishFault ())
, RegistryClient
-> PackageName -> RegistryResponse -> Either ParseError PackageInfo
parsePackageInfo :: PackageName -> RegistryResponse -> Either ParseError PackageInfo
, RegistryClient
-> RegistryResponse -> Version -> Either ParseError PackageDetails
parseVersionDetails :: RegistryResponse -> Version -> Either ParseError PackageDetails
, RegistryClient -> RegistryResponse -> Either ParseError [Version]
parseVersionList :: RegistryResponse -> Either ParseError [Version]
}