Browse Source

refactor(state): rename openState to newState & return *state.State instead of modifying discordState in-place

ayn2op 1 year ago
parent
commit
b784d6ccb0
2 changed files with 14 additions and 10 deletions
  1. 3 1
      cmd/app.go
  2. 11 9
      cmd/state.go

+ 3 - 1
cmd/app.go

@@ -52,7 +52,9 @@ func (app *App) show(token string) error {
 
 		app.SetRoot(loginForm, true)
 	} else {
-		if err := openState(token); err != nil {
+		var err error
+		discordState, err = newState(token)
+		if err != nil {
 			return err
 		}
 

+ 11 - 9
cmd/state.go

@@ -19,7 +19,7 @@ type State struct {
 	*ningen.State
 }
 
-func openState(token string) error {
+func newState(token string) (*State, error) {
 	api.UserAgent = app.cfg.UserAgent
 	gateway.DefaultIdentity = gateway.IdentifyProperties{
 		OS:     runtime.GOOS,
@@ -34,17 +34,19 @@ func openState(token string) error {
 		Status: app.cfg.Status,
 	}
 
-	discordState = &State{
-		State: ningen.New(token),
-	}
+	s := &State{State: ningen.New(token)}
 
 	// Handlers
-	discordState.AddHandler(discordState.onReady)
-	discordState.AddHandler(discordState.onMessageCreate)
-	discordState.AddHandler(discordState.onMessageDelete)
+	s.AddHandler(s.onReady)
+	s.AddHandler(s.onMessageCreate)
+	s.AddHandler(s.onMessageDelete)
+	s.OnRequest = append(s.OnRequest, s.onRequest)
+
+	if err := s.Open(context.TODO()); err != nil {
+		return nil, err
+	}
 
-	discordState.OnRequest = append(discordState.OnRequest, discordState.onRequest)
-	return discordState.Open(context.TODO())
+	return s, nil
 }
 
 func (s *State) onRequest(r httpdriver.Request) error {