]> www.average.org Git - pdns-pipe-nmc.git/blob - NmcRpc.hs
use Data.Default.Class for empty NmcDom
[pdns-pipe-nmc.git] / NmcRpc.hs
1 {-# LANGUAGE OverloadedStrings #-}
2
3 module NmcRpc   ( NmcRes(..)
4                 ) where
5
6 import Data.ByteString.Lazy (ByteString)
7 import Data.Text as T (unpack)
8 import Data.List.Split
9 import Data.Char
10 import Data.Map as M (Map, lookup)
11 import Control.Applicative ((<$>), (<*>), empty)
12 import Data.Aeson
13
14 data NmcRes = NmcRes    { resName       :: String
15                         , resValue      :: ByteString -- string with NmcDom
16                         , resTxid       :: String
17                         , resAddress    :: String
18                         , resExpires_in :: Int
19                         } deriving (Show)
20 instance FromJSON NmcRes where
21         parseJSON (Object o) = NmcRes
22                 <$> o .: "name"
23                 <*> o .: "value"
24                 <*> o .: "txid"
25                 <*> o .: "address"
26                 <*> o .: "expires_in"
27         parseJSON _ = empty