Start using GenericParser.

beta
Philippe Pittoli 2024-01-20 05:00:03 +01:00
parent b4d80d2c71
commit f579353d11
3 changed files with 16 additions and 5 deletions

View File

@ -1,7 +1,7 @@
all: build all: build
clone-generic-parser: clone-generic-parser:
[ -d ../parser ] || cd .. && git clone ssh://_gitea@git.baguette.netlib.re:2299/Baguette/parser.git [ ! -d ../parser ] && cd .. && git clone ssh://_gitea@git.baguette.netlib.re:2299/Baguette/parser.git || :
build: clone-generic-parser build: clone-generic-parser
spago build spago build

View File

@ -29,8 +29,9 @@ import Web.Event.Event (Event)
import Bulma as Bulma import Bulma as Bulma
import CSSClasses as C import CSSClasses as C
import Parsing (runParser) import GenericParser (DomainError(..), parse)
import DomainParser as DomainParser import GenericParser.DomainParserRFC1035 as RFC1035
--import GenericParser.DomainParser as DomainParser
import App.LogMessage import App.LogMessage
import App.Messages.DNSManagerDaemon as DNSManager import App.Messages.DNSManagerDaemon as DNSManager
@ -264,8 +265,11 @@ handleAction = case _ of
H.modify_ _ { newDomainForm { new_domain = v } } H.modify_ _ { newDomainForm { new_domain = v } }
case v of case v of
"" -> H.modify_ _ { newDomainForm { error_string = Nothing } } "" -> H.modify_ _ { newDomainForm { error_string = Nothing } }
_ -> case runParser v DomainParser.domain of _ -> case parse RFC1035.label { string: v, position: 0 } of
Left error_string -> H.modify_ _ { newDomainForm { error_string = Just $ show error_string } } Left { position, error } ->
let error_string = "error " <> (show_error error)
<> " at position: " <> show position
in H.modify_ _ { newDomainForm { error_string = Just error_string } }
Right _ -> H.modify_ _ { newDomainForm { error_string = Nothing } } Right _ -> H.modify_ _ { newDomainForm { error_string = Nothing } }
UpdateSelectedDomain domain -> H.modify_ _ { newDomainForm { selected_domain = domain } } UpdateSelectedDomain domain -> H.modify_ _ { newDomainForm { selected_domain = domain } }
@ -299,6 +303,13 @@ handleAction = case _ of
H.raise $ MessageToSend message H.raise $ MessageToSend message
H.raise $ Log $ SimpleLog $ "[😇] Trying to add a new domain (" <> new_domain <> ")" H.raise $ Log $ SimpleLog $ "[😇] Trying to add a new domain (" <> new_domain <> ")"
handleAction $ HandleNewDomainInput $ INP_newdomain "" handleAction $ HandleNewDomainInput $ INP_newdomain ""
where
show_error :: Maybe DomainError -> String
show_error Nothing = "no specific error"
show_error (Just (LabelTooLarge size)) = "LabelTooLarge (size: " <> show size <> ")"
show_error (Just (DomainTooLarge size)) = "DomainTooLarge (size: " <> show size <> ")"
show_error (Just (InvalidCharacter)) = "InvalidCharacter"
show_error (Just (EOFExpected)) = "EOFExpected"
handleQuery :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a) handleQuery :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a)
handleQuery = case _ of handleQuery = case _ of