DNSZone now relates to the actual DNSZone on dnsmanagerd.
This commit is contained in:
parent
1870c5df50
commit
b89eae5a82
@ -1,18 +1,30 @@
|
|||||||
module App.DNSZone where
|
module App.DNSZone where
|
||||||
|
|
||||||
import Prelude
|
import Data.Maybe (Maybe)
|
||||||
|
|
||||||
import Data.Codec.Argonaut (JsonCodec)
|
import Data.Codec.Argonaut (JsonCodec)
|
||||||
import Data.Codec.Argonaut as CA
|
import Data.Codec.Argonaut as CA
|
||||||
import Data.Newtype (class Newtype)
|
import Data.Codec.Argonaut.Record as CAR
|
||||||
import Data.Profunctor (wrapIso)
|
import App.ResourceRecord as RR
|
||||||
|
|
||||||
newtype DNSZone = DNSZone String
|
type DNSZone
|
||||||
|
= { domain :: String
|
||||||
|
|
||||||
derive instance newtypeDNSZone :: Newtype DNSZone _
|
-- List of all the zone's resource records.
|
||||||
derive instance eqDNSZone :: Eq DNSZone
|
, resources :: Array RR.ResourceRecord
|
||||||
derive instance ordDNSZone :: Ord DNSZone
|
|
||||||
|
-- Each resource record has a number, this is the ID to give to a new RR.
|
||||||
|
, current_rrid :: Int
|
||||||
|
|
||||||
|
-- Minimum TTL accepted for a resource record.
|
||||||
|
, ttl_limit_min :: Int
|
||||||
|
}
|
||||||
|
|
||||||
-- | DNSZone.codec can be used to parse and encode email addresses.
|
|
||||||
codec :: JsonCodec DNSZone
|
codec :: JsonCodec DNSZone
|
||||||
codec = wrapIso DNSZone CA.string
|
codec = CA.object "DNSZone"
|
||||||
|
(CAR.record
|
||||||
|
{ domain: CA.string
|
||||||
|
, resources: CA.array RR.codec
|
||||||
|
, current_rrid: CA.int
|
||||||
|
, ttl_limit_min: CA.int
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user