@@ -1,3 +1,5 @@
1+{-# LANGUAGE CPP #-}
2+
13--
24-- MinIO Haskell SDK, (C) 2017 MinIO, Inc.
35--
@@ -51,6 +53,10 @@ import Network.Minio.Errors
5153import Network.Minio.Sign.V4
5254import Network.URI (uriToString)
5355
56+#if MIN_VERSION_aeson(2,0,0)
57+import qualified Data.Aeson.Key as A
58+#endif
59+
5460-- | Generate a presigned URL. This function allows for advanced usage
5561-- - for simple cases prefer the `presigned*Url` functions.
5662--
@@ -174,12 +180,20 @@ data PostPolicyCondition
174180
175181instance Json.ToJSON PostPolicyCondition where
176182 toJSON (PPCStartsWith k v) = Json.toJSON ["starts-with", k, v]
183+#if MIN_VERSION_aeson(2,0,0)
184+ toJSON (PPCEquals k v) = Json.object [(A.fromText k) .= v]
185+#else
177186 toJSON (PPCEquals k v) = Json.object [k .= v]
187+#endif
178188 toJSON (PPCRange k minVal maxVal) =
179189 Json.toJSON [Json.toJSON k, Json.toJSON minVal, Json.toJSON maxVal]
180190
181191 toEncoding (PPCStartsWith k v) = Json.foldable ["starts-with", k, v]
192+#if MIN_VERSION_aeson(2,0,0)
193+ toEncoding (PPCEquals k v) = Json.pairs ((A.fromText k) .= v)
194+#else
182195 toEncoding (PPCEquals k v) = Json.pairs (k .= v)
196+#endif
183197 toEncoding (PPCRange k minVal maxVal) =
184198 Json.foldable [Json.toJSON k, Json.toJSON minVal, Json.toJSON maxVal]
185199