34 lines
758 B
Plaintext
34 lines
758 B
Plaintext
module App.Type.DomainInfo where
|
|
|
|
import Prelude ((<>), map, bind, pure)
|
|
|
|
import Data.Maybe (Maybe(..), maybe)
|
|
|
|
import Data.Codec.Argonaut (JsonCodec)
|
|
import Data.Codec.Argonaut as CA
|
|
import Data.Codec.Argonaut.Record as CAR
|
|
|
|
type DomainInfo
|
|
= { name :: String
|
|
, share_key :: Maybe String
|
|
, transfer_key :: Maybe String
|
|
, owners :: Array String
|
|
}
|
|
|
|
codec :: JsonCodec DomainInfo
|
|
codec = CA.object "DomainInfo"
|
|
(CAR.record
|
|
{ name: CA.string
|
|
, share_key: CAR.optional CA.string
|
|
, transfer_key: CAR.optional CA.string
|
|
, owners: CA.array CA.string
|
|
})
|
|
|
|
emptyDomainInfo :: DomainInfo
|
|
emptyDomainInfo
|
|
= { name: ""
|
|
, share_key: Nothing
|
|
, transfer_key: Nothing
|
|
, owners: []
|
|
}
|