]> www.average.org Git - pdns-pipe-nmc.git/blobdiff - NmcDom.hs
fix and relax cabal
[pdns-pipe-nmc.git] / NmcDom.hs
index 90c7966064afe24cfba4321d405aed70f0535de6..3ab8c7fd40aa6213e8e47f63459a9fac296edeb1 100644 (file)
--- a/NmcDom.hs
+++ b/NmcDom.hs
@@ -4,6 +4,7 @@ module NmcDom   ( NmcDom(..)
                 , NmcRRService(..)
                 , NmcRRI2p(..)
                 , NmcRRTls(..)
+                , NmcRRDs(..)
                 , emptyNmcDom
                 , mergeNmcDom
                 ) where
@@ -80,16 +81,16 @@ instance Mergeable NmcRRService where
         merge _ b = b
 
 data NmcRRI2p = NmcRRI2p
-                        { i2pDestination :: String
-                        , i2pName        :: String
-                        , i2pB32         :: String
+                        { i2pDestination :: Maybe String
+                        , i2pName        :: Maybe String
+                        , i2pB32         :: Maybe String
                         } deriving (Show, Eq)
 
 instance FromJSON NmcRRI2p where
         parseJSON (Object o) = NmcRRI2p
-                <$> o .: "destination"
-                <*> o .: "name"
-                <*> o .: "b32"
+                <$> o .:? "destination"
+                <*> o .:? "name"
+                <*> o .:? "b32"
         parseJSON _ = empty
 
 instance Mergeable NmcRRI2p where
@@ -153,6 +154,7 @@ data NmcDom = NmcDom    { domService     :: Maybe [NmcRRService]
                                                     (Map String [NmcRRTls]))
                         , domDs          :: Maybe [NmcRRDs]
                         , domMx          :: Maybe [String] -- Synthetic
+                        , domSrv         :: Maybe [String] -- Synthetic
                         } deriving (Show, Eq)
 
 instance FromJSON NmcDom where
@@ -189,6 +191,7 @@ instance FromJSON NmcDom where
                 <*> o .:? "tls"
                 <*> o .:? "ds"
                 <*> return Nothing -- domMx not parsed
+                <*> return Nothing -- domSrv not parsed
         parseJSON _ = empty
 
 instance Mergeable NmcDom where
@@ -211,6 +214,7 @@ instance Mergeable NmcDom where
                                 , domTls =         mergelm domTls
                                 , domDs =          mergelm domDs
                                 , domMx =          mergelm domMx
+                                , domSrv =         mergelm domSrv
                                 }
           where
                 mergelm x = merge (x sub) (x dom)
@@ -227,4 +231,4 @@ mergeNmcDom = merge
 emptyNmcDom = NmcDom Nothing Nothing Nothing Nothing Nothing Nothing
                      Nothing Nothing Nothing Nothing Nothing Nothing
                      Nothing Nothing Nothing Nothing Nothing Nothing
-                     Nothing
+                     Nothing Nothing