diff options
Diffstat (limited to 'src/Main/Register.purs')
| -rw-r--r-- | src/Main/Register.purs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Main/Register.purs b/src/Main/Register.purs new file mode 100644 index 0000000..3741107 --- /dev/null +++ b/src/Main/Register.purs @@ -0,0 +1,45 @@ +module Main.Register where + +import Prelude + +import Auth (authHeader, getToken, startTwitchAuth) +import Config as Config +import Data.Maybe (Maybe(..)) +import Data.String as String +import Data.Tuple (Tuple(..)) +import Effect (Effect) +import Effect.Aff (launchAff_) +import Effect.Class (liftEffect) +import Effect.Console (log) +import Fetch (fetch) +import Utils (byId, listen, removeClass, setText) + +main :: Effect Unit +main = launchAff_ do + liftEffect $ log "hello from registration page" + link <- byId "lcolonq-register-link" + getToken >>= case _ of + Just a@(Tuple _t _n) -> do -- if there's an auth token in the fragment, ask the API to register us + { text: resp } <- fetch (Config.apiServer <> "/register") + { headers: + { "Authorization": authHeader a + } + } + r <- resp + case String.split (String.Pattern " ") r of + [user, pass] -> do + container <- byId "lcolonq-registered-container" + removeClass "lcolonq-invisible" container + fieldUsername <- byId "lcolonq-registered-username" + setText fieldUsername user + fieldPassword <- byId "lcolonq-registered-password" + setText fieldPassword pass + _ -> do + container <- byId "lcolonq-register-error-container" + removeClass "lcolonq-invisible" container + _ -> do -- otherwise, show the button to register + container <- byId "lcolonq-register-container" + removeClass "lcolonq-invisible" container + listen link "click" \_ev -> do + liftEffect $ log "register" + startTwitchAuth |
