package store import ( "encoding/json" "os" "git.pengzhan.dev/noteplace-server/internal/models" ) // GetUserByGoogleID finds a user by their Google ID. func (s *Store) GetUserByGoogleID(googleID string) (models.User, bool) { s.Mu.RLock() defer s.Mu.RUnlock() for _, u := range s.Data.Users { if u.GoogleID == googleID { return u, true } } return models.User{}, false } // GetUserByID finds a user by their internal ID. func (s *Store) GetUserByID(id string) (models.User, bool) { s.Mu.RLock() defer s.Mu.RUnlock() u, ok := s.Data.Users[id] return u, ok } // CreateUser adds a new user to the store. func (s *Store) CreateUser(user models.User) error { s.Mu.Lock() defer s.Mu.Unlock() s.Data.Users[user.ID] = user return s.save() } // save is an unexported helper to save the database state. func (s *Store) save() error { data, err := json.MarshalIndent(s.Data, "", " ") if err != nil { return err } return os.WriteFile(s.path, data, 0644) }