git.iko.soy/typeable/pagerduty
on develop help sign in
.travis.yml+2−2
since splitsnapshots
unifiedsplit
@@ -24,7 +24,7 @@ script:
24matrix:
24matrix:
25 fast_finish: true
25 fast_finish: true
26 include:
26 include:
27+ - env: GHCVER=8.0.1
28+ addons: { apt: { packages: [ghc-8.0.1], sources: [hvr-ghc] } }
27 - env: GHCVER=7.10.3
29 - env: GHCVER=7.10.3
28 addons: { apt: { packages: [ghc-7.10.3], sources: [hvr-ghc] } }
30 addons: { apt: { packages: [ghc-7.10.3], sources: [hvr-ghc] } }
29− - env: GHCVER=7.8.4
30− addons: { apt: { packages: [ghc-7.8.4], sources: [hvr-ghc] } }
pagerduty.cabal+5−5
@@ -1,5 +1,5 @@
1name: pagerduty
1name: pagerduty
2−version: 0.0.7
2+version: 0.0.8
3synopsis: Client library for PagerDuty Integration and REST APIs.
3synopsis: Client library for PagerDuty Integration and REST APIs.
4homepage: http://github.com/brendanhay/pagerduty
4homepage: http://github.com/brendanhay/pagerduty
5license: OtherLicense
5license: OtherLicense
@@ -71,16 +71,16 @@ library
71 , Network.PagerDuty.Types
71 , Network.PagerDuty.Types
72
72
73 build-depends:
73 build-depends:
74− aeson >= 0.8
74+ aeson >= 2.0
75− , base >= 4.7 && < 5
75+ , base >= 4.7 && < 5
76 , bifunctors >= 4.1
76 , bifunctors >= 4.1
77 , bytestring >= 0.9
77 , bytestring >= 0.9
78 , bytestring-conversion >= 0.2.1
78 , bytestring-conversion >= 0.2.1
79 , conduit > 1.1
79 , conduit > 1.1
80 , data-default-class >= 0.0.1
80 , data-default-class >= 0.0.1
81 , exceptions >= 0.6
81 , exceptions >= 0.6
82− , generics-sop >= 0.2.0.0
82+ , generics-sop >= 0.5.0.0
83− , http-client >= 0.4.3
83+ , http-client >= 0.5 && < 1
84 , http-types >= 0.8
84 , http-types >= 0.8
85 , lens >= 4.4
85 , lens >= 4.4
86 , lens-aeson >= 1
86 , lens-aeson >= 1
script/travis-lifecycle-before_install+3−8
@@ -2,15 +2,10 @@
2
2
3set -e
3set -e
4
4
5−dir=~/.local/bin
5+mkdir -p ~/.local/bin
6−remote=https://github.com/commercialhaskell/stack/releases/download/v0.1.3.1/stack-0.1.3.1-x86_64-linux.gz
7−local=$dir/stack
8
6
9−mkdir -p $dir
7+curl -L https://www.stackage.org/stack/linux-x86_64 | \
10−
8+ tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
11−curl -L $remote | gunzip > $local
12−
13−chmod a+x $local
14
9
15ghc --version
10ghc --version
16stack --version
11stack --version
src/Control/Monad/Trans/PagerDuty.hs+2−1
@@ -42,9 +42,10 @@ module Control.Monad.Trans.PagerDuty
42 ) where
42 ) where
43
43
44import Control.Applicative
44import Control.Applicative
45+import Control.Monad
45import Control.Monad.Base
46import Control.Monad.Base
46import Control.Monad.Catch
47import Control.Monad.Catch
47−import Control.Monad.Error (MonadError (..))
48+import Control.Monad.Except (MonadError (..))
48import Control.Monad.Morph
49import Control.Monad.Morph
49import Control.Monad.Reader
50import Control.Monad.Reader
50import Control.Monad.Trans.Control
51import Control.Monad.Trans.Control
src/Network/PagerDuty/Integration.hs+3−3
@@ -81,8 +81,7 @@ module Network.PagerDuty.Integration
81import Control.Lens
81import Control.Lens
82import Control.Monad.IO.Class
82import Control.Monad.IO.Class
83import Data.Aeson
83import Data.Aeson
84−import Data.Default.Class
85−import qualified Data.HashMap.Strict as Map
84+import qualified Data.Aeson.KeyMap as Map
86import Data.Text (Text)
85import Data.Text (Text)
87import Network.HTTP.Client (Manager)
86import Network.HTTP.Client (Manager)
88import qualified Network.HTTP.Client as Client
87import qualified Network.HTTP.Client as Client
@@ -292,7 +291,8 @@ submitWith :: MonadIO m
292 -> Event
291 -> Event
293 -> m (Either Error Response)
292 -> m (Either Error Response)
294submitWith m l e = request m l e $
293submitWith m l e = request m l e $
294+ Client.defaultRequest
295− def { Client.host = "events.pagerduty.com"
295+ { Client.host = "events.pagerduty.com"
296 , Client.path = "/generic/2010-04-15/create_event.json"
296 , Client.path = "/generic/2010-04-15/create_event.json"
297 , Client.method = "POST"
297 , Client.method = "POST"
298 }
298 }
src/Network/PagerDuty/Internal/Query.hs+2−2
@@ -59,8 +59,8 @@ gqueryWith :: forall a. (Generic a, HasDatatypeInfo a, All2 QueryValues (Code a)
59 -> a
59 -> a
60 -> Query
60 -> Query
61gqueryWith o a = case datatypeInfo (Proxy :: Proxy a) of
61gqueryWith o a = case datatypeInfo (Proxy :: Proxy a) of
62− ADT _ _ cs -> go cs (from a)
62+ ADT _ _ cs _ -> go cs (from a)
63− Newtype _ _ c -> go (c :* Nil) (from a)
63+ Newtype _ _ c -> go (c :* Nil) (from a)
64 where
64 where
65 go :: (All2 QueryValues xss, SListI xss)
65 go :: (All2 QueryValues xss, SListI xss)
66 => NP ConstructorInfo xss
66 => NP ConstructorInfo xss
src/Network/PagerDuty/Internal/Types.hs+10−8
@@ -29,14 +29,14 @@ module Network.PagerDuty.Internal.Types where
29import Control.Applicative
29import Control.Applicative
30import Control.Lens hiding ((.=), Empty)
30import Control.Lens hiding ((.=), Empty)
31import Control.Monad.IO.Class
31import Control.Monad.IO.Class
32−import Data.Aeson hiding (Error)
32+import Data.Aeson hiding (Error, Key)
33+import qualified Data.Aeson.KeyMap as Map
33import Data.Aeson.Types (Parser)
34import Data.Aeson.Types (Parser)
34import Data.ByteString (ByteString)
35import Data.ByteString (ByteString)
35import qualified Data.ByteString.Char8 as BS
36import qualified Data.ByteString.Char8 as BS
36import Data.ByteString.Conversion hiding (List)
37import Data.ByteString.Conversion hiding (List)
37import Data.Default.Class
38import Data.Default.Class
38import Data.Function (on)
39import Data.Function (on)
39−import qualified Data.HashMap.Strict as Map
40import Data.List (deleteBy, intersperse)
40import Data.List (deleteBy, intersperse)
41import Data.Monoid
41import Data.Monoid
42import Data.String
42import Data.String
@@ -53,7 +53,7 @@ import Network.PagerDuty.Internal.TH
53import Data.Time.Locale.Compat
53import Data.Time.Locale.Compat
54
54
55newtype CSV a = CSV [a]
55newtype CSV a = CSV [a]
56− deriving (Eq, Show, Monoid)
56+ deriving (Eq, Show, Semigroup, Monoid)
57
57
58makePrisms ''CSV
58makePrisms ''CSV
59
59
@@ -70,7 +70,7 @@ instance ToByteString a => ToJSON (CSV a) where
70 toJSON = String . Text.decodeUtf8 . toByteString'
70 toJSON = String . Text.decodeUtf8 . toByteString'
71
71
72newtype List a = L [a]
72newtype List a = L [a]
73− deriving (Eq, Show, Monoid)
73+ deriving (Eq, Show, Semigroup, Monoid)
74
74
75deriveJSON ''List
75deriveJSON ''List
76makePrisms ''List
76makePrisms ''List
@@ -310,11 +310,13 @@ data Path where
310 Path :: Path
310 Path :: Path
311 Seg :: ToByteString a => a -> Path
311 Seg :: ToByteString a => a -> Path
312
312
313+instance Semigroup Path where
314+ x <> Path = x
315+ Path <> y = y
316+ Seg x <> Seg y = Seg (builder x <> "/" <> builder y)
317+
313instance Monoid Path where
318instance Monoid Path where
314− mempty = Path
319+ mempty = Path
315− mappend x Path = x
316− mappend Path y = y
317− mappend (Seg x) (Seg y) = Seg (builder x <> "/" <> builder y)
318
320
319instance IsString Path where
321instance IsString Path where
320 fromString = Seg
322 fromString = Seg
src/Network/PagerDuty/REST.hs+2−3
@@ -29,7 +29,6 @@ import Control.Monad.IO.Class
29import Control.Monad.Trans
29import Control.Monad.Trans
30import Data.Aeson (FromJSON)
30import Data.Aeson (FromJSON)
31import Data.Conduit
31import Data.Conduit
32−import Data.Default.Class
33import Data.Monoid
32import Data.Monoid
34import Network.HTTP.Client (Manager)
33import Network.HTTP.Client (Manager)
35import qualified Network.HTTP.Client as Client
34import qualified Network.HTTP.Client as Client
@@ -90,7 +89,7 @@ http e rq = request (e ^. envManager) (e ^. envLogger) rq $ raw
90 }
89 }
91 where
90 where
92 raw = case e ^. envAuth of
91 raw = case e ^. envAuth of
93− AuthBasic u p -> Client.applyBasicAuth u p def
92+ AuthBasic u p -> Client.applyBasicAuth u p Client.defaultRequest
94− AuthToken t -> def
93+ AuthToken t -> Client.defaultRequest
95 { Client.requestHeaders = [("Authorization", "Token token=" <> t)]
94 { Client.requestHeaders = [("Authorization", "Token token=" <> t)]
96 }
95 }
src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs+1−1
@@ -67,7 +67,7 @@ module Network.PagerDuty.REST.EscalationPolicies.EscalationRules
67import Control.Applicative ((<$>))
67import Control.Applicative ((<$>))
68import Control.Lens hiding ((.=))
68import Control.Lens hiding ((.=))
69import Data.Aeson
69import Data.Aeson
70−import qualified Data.HashMap.Strict as Map
70+import qualified Data.Aeson.KeyMap as Map
71import Data.Text (Text)
71import Data.Text (Text)
72import Network.HTTP.Types
72import Network.HTTP.Types
73import Network.PagerDuty.Internal.TH
73import Network.PagerDuty.Internal.TH
src/Network/PagerDuty/REST/LogEntries.hs+1−2
@@ -111,12 +111,11 @@ module Network.PagerDuty.REST.LogEntries
111 , nAddress
111 , nAddress
112 ) where
112 ) where
113
113
114−import Control.Applicative
115import Control.Lens hiding (Empty)
114import Control.Lens hiding (Empty)
116import Data.Aeson
115import Data.Aeson
117import Data.Aeson.Lens
116import Data.Aeson.Lens
117+import qualified Data.Aeson.KeyMap as Map
118import Data.Default.Class
118import Data.Default.Class
119−import qualified Data.HashMap.Strict as Map
120import Data.Text (Text)
119import Data.Text (Text)
121import qualified Data.Text as Text
120import qualified Data.Text as Text
122import Data.Time
121import Data.Time
src/Network/PagerDuty/REST/Users.hs−1
@@ -5,7 +5,6 @@
5{-# LANGUAGE TypeFamilies #-}
5{-# LANGUAGE TypeFamilies #-}
6
6
7{-# OPTIONS_GHC -fno-warn-type-defaults #-}
7{-# OPTIONS_GHC -fno-warn-type-defaults #-}
8−{-# OPTIONS_GHC -ddump-splices #-}
9
8
10-- Module : Network.PagerDuty.REST.Users
9-- Module : Network.PagerDuty.REST.Users
11-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
stack-7.10.3.yamldeleted−5
@@ -1,5 +0,0 @@
1−resolver: lts-5.8
2−flags: {}
3−extra-deps: []
4−packages:
5− - '.'
stack-7.8.4.yamldeleted−6
@@ -1,6 +0,0 @@
1−resolver: lts-2.21
2−flags: {}
3−extra-deps:
4− - generics-sop-0.2.0.0
5−packages:
6− - '.'
stack.yamlmode 120000 → 100644+7−1
@@ -1 +0,0 @@
1−stack-7.10.3.yaml
@@ -0,0 +1,7 @@
1+resolver: lts-19.23
2+
3+packages:
4+- .
5+
6+nix:
7+ packages: [zlib]