fromLocalToRR + some code removal

This commit is contained in:
Philippe Pittoli 2023-07-12 03:22:32 +02:00
parent 15012f3824
commit c2fb32b547
2 changed files with 18 additions and 86 deletions

View File

@ -123,27 +123,12 @@ mkSRV i c ok p prot w prt t d v
, ttl: t, domain: d, value: v
}
defaultResourceRecords :: Array (SimpleRR ())
defaultResourceRecords
= [ mkNS 0 false true "3600" "@" "ns0.truc.fr"
, mkA 1 false true "200" "www" "192.168.10.2"
, mkAAAA 2 false true "610" "www" "fe80::1"
, mkCNAME 3 false true "630" "nom" "autrenom"
, mkTXT 4 false true "600" "txtme" "Ceci est un texte."
]
defaultMXResourceRecords :: Array (MXRR ())
defaultMXResourceRecords
= [ mkMX 5 false true "600" "www" "192.168.10.2" "200"
, mkMX 6 false true "3600" "www" "192.168.10.2" "200"
]
defaultResourceA :: SimpleRR ()
defaultResourceA = mkA 0 false true "200" "www" "192.168.10.2"
defaultResourceMX :: MXRR ()
defaultResourceMX = mkMX 0 false true "500" "www" "192.168.10.2" "200"
defaultResourceMX = mkMX 0 false true "500" "mail" "www" "200"
defaultResourceSRV :: SRVRR ()
-- RRId Modified Valid Priority Protocol Weight Port TTL Domain Value
defaultResourceSRV = mkSRV 0 false true "10" "_tcp" "100" "80" "200" "www" "192.168.10.2"
defaultResourceSRV = mkSRV 0 false true "10" "_tcp" "100" "80" "200" "_sip._tcp.example.com." "sip.example.com."

View File

@ -410,6 +410,10 @@ handleAction = case _ of
-- TODO: network operations
SyncRR rr_id -> do
H.raise $ Log $ SimpleLog ("TODO: SyncRR: " <> show rr_id)
-- message <- H.liftEffect
-- $ DNSManager.serialize
-- $ DNSManager.MkDeleteRR { domain: _current_domain, rrid: rr_id }
-- H.raise $ MessageToSend message
RemoveRR rr_id -> do
{ _current_domain } <- H.get
@ -653,72 +657,6 @@ render_srv_records records
baseRecords :: Array String
baseRecords = [ "NS", "A", "AAAA", "CNAME", "TXT" ]
render_new_record :: forall (w :: Type). (SimpleRR ()) -> HH.HTML w Action
render_new_record rr
= Bulma.hdiv [ Bulma.zone_rr_title "New record (NS, A, AAAA, CNAME, TXT)", table ]
where
table = HH.table [] [ Bulma.simple_table_header, render_record_builder ]
-- render_record_builder :: forall w. HH.HTML w Action
render_record_builder
= HH.tr_
[ HH.td_ [ type_selection ]
, HH.td_ [ Bulma.input_domain (UpdateNewSRRForm <<< Update_SRR_Domain) rr.domain rr.valid ]
, HH.td_ [ Bulma.input_ttl (UpdateNewSRRForm <<< Update_SRR_TTL) rr.ttl rr.valid ]
, HH.td_ [ Bulma.input_value (UpdateNewSRRForm <<< Update_SRR_Value) rr.value rr.valid ]
, HH.td_ [ Bulma.btn_add AddSRR (TellSomethingWentWrong rr.id "cannot add") rr.valid ]
]
-- type_selection :: forall w i. HH.HTML w i
type_selection = HH.select
[ HE.onSelectedIndexChange (UpdateNewSRRForm <<< Update_SRR_Type) ]
$ map type_option baseRecords
type_option n
= HH.option
[ HP.value n
, HP.selected (n == rr.t)
] [ HH.text n ]
render_mx_new_record :: forall (w :: Type). (MXRR ()) -> HH.HTML w Action
render_mx_new_record rr
= Bulma.hdiv [ Bulma.zone_rr_title "New MX record", table ]
where
table = HH.table [] [ Bulma.mx_table_header, render_record_builder ]
-- render_record_builder :: forall w. HH.HTML w Action
render_record_builder
= HH.tr_
[ HH.td_ [ Bulma.input_domain (UpdateNewMXForm <<< Update_MX_Domain) rr.domain rr.valid ]
, HH.td_ [ Bulma.input_ttl (UpdateNewMXForm <<< Update_MX_TTL) rr.ttl rr.valid ]
, HH.td_ [ Bulma.input_priority (UpdateNewMXForm <<< Update_MX_Priority) rr.priority rr.valid ]
, HH.td_ [ Bulma.input_value (UpdateNewMXForm <<< Update_MX_Value) rr.value rr.valid ]
, HH.td_ [ Bulma.btn_add AddMX (TellSomethingWentWrong rr.id "cannot add") rr.valid ]
]
render_srv_new_record :: forall (w :: Type). (SRVRR ()) -> HH.HTML w Action
render_srv_new_record rr
= Bulma.hdiv [ Bulma.zone_rr_title "New SRV record", table ]
where
table = HH.table [] [ Bulma.srv_table_header, render_record_builder ]
-- render_record_builder :: forall w. HH.HTML w Action
render_record_builder
= HH.tr_
[ HH.td_ [ Bulma.input_domain (UpdateNewSRVForm <<< Update_SRV_Domain) rr.domain rr.valid ]
, HH.td_ [ Bulma.input_ttl (UpdateNewSRVForm <<< Update_SRV_TTL) rr.ttl rr.valid ]
, HH.td_ [ Bulma.input_priority (UpdateNewSRVForm <<< Update_SRV_Priority) rr.priority rr.valid ]
, HH.td_ [ Bulma.input_protocol (UpdateNewSRVForm <<< Update_SRV_Protocol) rr.protocol rr.valid ]
, HH.td_ [ Bulma.input_weight (UpdateNewSRVForm <<< Update_SRV_Weight) rr.weight rr.valid ]
, HH.td_ [ Bulma.input_port (UpdateNewSRVForm <<< Update_SRV_Port) rr.port rr.valid ]
, HH.td_ [ Bulma.input_value (UpdateNewSRVForm <<< Update_SRV_Value) rr.value rr.valid ]
, HH.td_ [ Bulma.btn_add AddSRV (TellSomethingWentWrong rr.id "cannot add") rr.valid ]
]
-- Component definition and initial state
render_new_records :: forall (w :: Type). State -> HH.HTML w Action
@ -857,6 +795,15 @@ update f rr_id records = map doSmth records
| rr_id == rr.id = f rr
| otherwise = rr
fromLocalToRR :: forall (l :: Row Type). SRVRR (|l) -> Either String ResourceRecord
fromLocalToRR new_rr = do
case new_rr.t, (A.elem new_rr.t baseRecords) of
_, true -> Right $ fromLocalSimpleRRRepresentationToResourceRecord new_rr
"MX", _ -> Right $ fromLocalMXRRRepresentationToResourceRecord new_rr
"SRV", _ -> Right $ fromLocalSRVRRepresentationToResourceRecord new_rr
-- "SOA" resource record shouldn't be useful in this context.
_, _ -> Left $ "TODO: cannot convert RR type '" <> new_rr.t <> "' to ResourceRecord representation."
fromResourceRecordToLocalRepresentationSimpleRR :: ResourceRecord -> Maybe (SimpleRR ())
fromResourceRecordToLocalRepresentationSimpleRR new_rr =
Just { t: new_rr.rrtype
@ -929,7 +876,7 @@ fromResourceRecordToLocalRepresentationSOARR new_rr = do
, minttl: show minttl -- :: RR (Maybe Int) Local (String)
}
fromLocalSimpleRRRepresentationToResourceRecord :: SimpleRR () -> ResourceRecord
fromLocalSimpleRRRepresentationToResourceRecord :: forall l. SimpleRR (|l) -> ResourceRecord
fromLocalSimpleRRRepresentationToResourceRecord form
= { rrtype: form.t
, rrid: form.id
@ -950,7 +897,7 @@ fromLocalSimpleRRRepresentationToResourceRecord form
, minttl: Nothing
}
fromLocalMXRRRepresentationToResourceRecord :: MXRR () -> ResourceRecord
fromLocalMXRRRepresentationToResourceRecord :: forall l. MXRR (|l) -> ResourceRecord
fromLocalMXRRRepresentationToResourceRecord form
= { rrtype: form.t
, rrid: form.id
@ -971,7 +918,7 @@ fromLocalMXRRRepresentationToResourceRecord form
, minttl: Nothing
}
fromLocalSRVRRepresentationToResourceRecord :: SRVRR () -> ResourceRecord
fromLocalSRVRRepresentationToResourceRecord :: forall l. SRVRR (|l) -> ResourceRecord
fromLocalSRVRRepresentationToResourceRecord form
= { rrtype: form.t
, rrid: form.id