@@ -52,8 +52,6 @@ import Network.PagerDuty.Internal.Query
5252import Network.PagerDuty.Internal.TH
5353import System.Locale
5454
55−-- FIXME: Verify IncidentId/IncidentKey .. *Id/*Key are actually different or needed
56−
5755newtype CSV a = CSV [a]
5856 deriving (Eq, Show, Monoid)
5957
@@ -142,7 +140,10 @@ deriving instance Eq (Auth a)
142140deriving instance Show (Auth a)
143141
144142newtype SubDomain = SubDomain { subDomain :: ByteString }
145− deriving (Eq, Show, IsString)
143+ deriving (Eq, Show, IsString, ToByteString)
144+
145+mkSubDomain :: ByteString -> SubDomain
146+mkSubDomain = SubDomain
146147
147148domain :: SubDomain -> ByteString
148149domain (SubDomain s)
@@ -179,7 +180,7 @@ prod :: SubDomain -> Auth s -> Manager -> Env s
179180prod d a m = Env d a m None
180181
181182newtype Code = Code Integer
182− deriving (Eq, Show)
183+ deriving (Eq, Show, Num)
183184
184185deriveJSON ''Code
185186
@@ -385,13 +386,13 @@ class Paginate a where
385386 next :: Request a s b -> Maybe Pager -> Maybe (Request a s b)
386387 next rq = maybe Nothing go
387388 where
388− go x | x^.pgTotal == 0 = Nothing
389− | otherwise = Just $
390− rq & pager ?~ (x & pgOffset +~ x^.pgTotal)
389+ go x | x ^. pgTotal == 0 = Nothing
390+ | otherwise = Just $
391+ rq & pager ?~ (x & pgOffset +~ x ^. pgTotal)
391392 & query %~ (add . clear)
392393 where
393394 add :: Query -> Query
394− add = maybe id ((:) . (k,) . Just . Text.encodeUtf8) (x^.pgQuery)
395+ add = maybe id ((:) . (k,) . Just . Text.encodeUtf8) (x ^. pgQuery)
395396
396397 clear :: Query -> Query
397398 clear = deleteBy ((==) `on` fst) (k, Nothing)
@@ -402,6 +403,9 @@ class Paginate a where
402403newtype Key (a :: Symbol) = Key Text
403404 deriving (Eq, Show, IsString)
404405
406+mkKey :: Text -> Key a
407+mkKey = Key
408+
405409instance FromJSON (Key a) where
406410 parseJSON = withText "key" (return . Key)
407411
@@ -422,6 +426,9 @@ type IncidentKey = Key "incident"
422426newtype Id (a :: Symbol) = Id Text
423427 deriving (Eq, Show, IsString)
424428
429+mkId :: Text -> Id a
430+mkId = Id
431+
425432instance FromJSON (Id a) where
426433 parseJSON = withText "id" (return . Id)
427434
@@ -469,7 +476,10 @@ instance QueryLike Empty where
469476 toQuery = const []
470477
471478newtype Address = Address Text
472− deriving (Eq, Show)
479+ deriving (Eq, Show, IsString)
480+
481+mkAddress :: Text -> Address
482+mkAddress = Address
473483
474484deriveJSON ''Address
475485makePrisms ''Address