ENNZIQJG4XJ62QCNRMLNAXN7ICTPCHQFZTURX6QSUYYWNADFJHXQC 5IDB3IWSB6LFW4U772Y7BH5Y3FQOQ7IFWLVXDZE5XS6SKJITFV4QC 64C6AWH66FDKU6UE6Z6JPX2J2GBM2JOPTH2GL6LHKAIUBGNGDZ5AC 4R7XIYK3BP664CO3YJ2VM64ES2JYN27UTQG5KS34OTEPAIODSZLQC 4U7F3CPIDTK6JSEDMNMHVKSR7HOQDLZQD2PPVMDLHO5SFSIMUXZAC BROSTG5KP3NUNLSYPVQID254TE47E5RKQAKLPIY7PGWETE6JNMTAC O2BZOX7MS4JCDS3C6EJQXAWUEQV6HVDCIF2FIN2BCJNRLIU6ZVKAC U256ZALIPTVWLNACYPIMWLNEYDQWP7CHF4Y4CGMILQTONJHMGQVQC 5R2Z7FSXJD7Z53QSU2NSTEBONTYK43FIJOSOMUST5XMYIWRXY2HQC BFZN4SUAGYNFFYVAP36BAX32DMO622PK4EPEVQQEAGC2IHTEAAPQC SAESJLLYCQJUIHKFYFV53AWHFOSGI5SKLVS7DPTQO6BKGITPYPUQC RB2ETNIFLQUA6OA66DAEOXZ25ENMQGNKX5CZRSKEYHTD6BQ6NTFQC QU5FW67RGCWOWT2YFM4NYMJFFHWIRPQANQBBAHBKZUY7UYMCSIMQC EFSXYZPOGA5M4DN65IEIDO7JK6U34DMQELAPHOIL2UAT6HRC66BAC UWMGUJOW5X5HQTS76T2FD7MNAJF7SESPQVU5FDIZO52V75TT2X6AC IPG33FAWXGEQ2PO6OXRT2PWWXHRNMPVUKKADL6UKKN5GD2CNZ25AC B6HWAPDPXIWH7CHK5VLMWLL6EQN6NOFZEFYO47BPUY2ZO4SL7VDAC LTSVBVA235BQAIU3SQURKSRHIAL33K47G4J6TSEP2K353OCHNJEAC DFOBMSAODB3NKW37B272ZXA2ML5HMIH3N3C4GT2DPEQS7ZFK4SNAC Y3LIJ5USPMYBG7HKCIQBE7MWVGLQJPJSQD3KPZCTKXP22GOB535QC HMDM3B557TO5RYP2IGFFC2C2VN6HYZTDQ47CJY2O37BW55DSMFZAC AL37SVTCKRSG4HG2PCYK5Z7QSIZZH5JHH4Q2VLMXFAXSAQRFFG4QC JFOEOFGA4CQR2LW43IVQGDZSPVJAD4KDN2DZMZXGM2QDIUD7AVCAC IZEVQF627FA7VV25KJAWYWGGC35LZUUBBQRPN5ZAINTQLPEDRTEAC EMVTF2IWNQGRL44FC4JNG5FYYQTZSFPNM6SOM7IAEH6T7PPK2NVAC I2KHGVD44KT4MQJXGCTVSQKMBO6TVCY72F26TLXGWRL6PHGF6RNQC NEDDHXUK3GNFMOFO3KLU7NRIHCTYNWBT3D6HTKZAOXFDE6HMDZ6AC MB5SHULBN3WP7TGUWZDP6BRGP423FTYKF67T5IF5YHHLNXKQ5REAC 2XQD6KKKD6QVHFHAEMVE3XXY7X2T7BLTLL7XIILZAXNJJH2YONUQC ADMKQQGCGVSHHIMVQ4XFRDCG544SBJCYALSKZV45CQQBZ4ACUH2AC import Halogen as Himport Halogen.HTML.Core (ClassName(..))import Halogen.HTML as HHimport Halogen.HTML.CSS as CSSimport Halogen.HTML.Events as Eimport Web.Event.Event as WEimport Halogen.HTML.Properties as Pimport CSS (backgroundImage, url)import Landkit.Card as Cardimport Aftok.Types (System)
pure ZAddrCheckOK
result <- get RF.ignore ("/api/validate_zaddr?zaddr=" <> zaddr)case result ofLeft err -> dolog ("ZAddr validation failed: " <> printError err)pure ZAddrCheckInvalidRight r | r.status == StatusCode 200 -> dopure ZAddrCheckValidRight r -> dolog ("ZAddr was determined to be invalid: " <> r.statusText)pure ZAddrCheckInvalid
RecoverByEmail _ => "email"RecoverByZAddr _ => "zaddr", email: case req.recoverBy ofRecoverByEmail email -> Just emailRecoverByZAddr _ -> Nothing, zaddr: case req.recoverBy ofRecoverByEmail _ -> NothingRecoverByZAddr zaddr -> Just zaddr
RecoverByEmail _ -> "email"RecoverByZAddr _ -> "zaddr", recoveryEmail: case req.recoverBy ofRecoverByEmail email -> Just emailRecoverByZAddr _ -> Nothing, recoveryZAddr: case req.recoverBy ofRecoverByEmail _ -> NothingRecoverByZAddr zaddr -> Just zaddr
Left err -> log ("Registration failed: " <> printError err)Right r -> log ("Registration status: " <> show r.status)
Left err -> dolog ("Registration failed: " <> printError err)pure (ServiceError Nothing $ printError err)Right r | r.status == StatusCode 200 -> dolog "Registration succeeded!"pure SignupOKRight r | r.status == StatusCode 403 -> dolog ("Registration failed: Capcha Invalid")pure CaptchaInvalidRight r | r.status == StatusCode 400 -> dolog ("Registration failed: Z-Address Invalid")pure ZAddrInvalidRight r -> dolog ("Registration failed: " <> r.statusText)pure $ ServiceError (Just r.status) r.statusText
Acc.SignupOK -> H.raise (SignupComplete $ req.username)Acc.CaptchaInvalid -> H.modify_ (_ { signupErrors = [CaptchaError] })Acc.ZAddrInvalid -> H.modify_ (_ { signupErrors = [ZAddrInvalid] })Acc.UsernameTaken -> H.modify_ (_ { signupErrors = [UsernameTaken] })
Acc.SignupOK -> H.raise (SignupComplete $ req.username)Acc.CaptchaInvalid -> H.modify_ (_ { signupErrors = [CaptchaError] })Acc.ZAddrInvalid -> H.modify_ (_ { signupErrors = [ZAddrInvalid] })Acc.UsernameTaken -> H.modify_ (_ { signupErrors = [UsernameTaken] })Acc.ServiceError c m -> H.modify_ (_ { signupErrors = [APIError { status: c, message: m }]})
{ _customer :: u, _billable :: b, _startTime :: C.UTCTime, _endTime :: Maybe C.UTCTime
{ _customer :: u, _billable :: b, _contactChannel :: ContactChannel, _startTime :: C.UTCTime, _endTime :: Maybe C.UTCTime
checkZAddrHandler :: RegisterOps IO -> S.Handler App App ZAddrcheckZAddrHandler ops = doparams <- S.getParamszaddrBytes <- maybe (snapError 400 "zaddr parameter is required")pure(listToMaybe =<< M.lookup "zaddr" params)zaddrEither <- liftIO $ parseZAddr ops (T.decodeUtf8 zaddrBytes)case zaddrEither ofLeft _ ->snapError 400 "The Z-Address provided for account recovery was invalid."Right zaddr ->pure zaddr