Initial commit
Go CI / build (push) Failing after 2m42s

feat: create basic server to manage google oauth, account, sessions, places, attributes and ratings.
This commit is contained in:
2025-09-19 02:43:04 -07:00
commit f1909da1ad
26 changed files with 2619 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
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)
}