Initial commit

This commit is contained in:
2023-10-19 23:15:55 +02:00
commit 97f540d7fc
11 changed files with 501 additions and 0 deletions

61
store/memory.go Normal file
View File

@@ -0,0 +1,61 @@
package store
import (
"fmt"
"git.t-juice.club/microfilm/users"
)
var (
ErrNoSuchUser = fmt.Errorf("no such user")
ErrUserExists = fmt.Errorf("user alread exists")
)
type MemoryStore struct {
Users map[string]users.User
}
func NewMemoryStore() *MemoryStore {
return &MemoryStore{
Users: make(map[string]users.User),
}
}
func (s *MemoryStore) AddUser(u users.User) error {
if _, ok := s.Users[u.ID]; ok {
return ErrUserExists
}
s.Users[u.ID] = u
return nil
}
func (s *MemoryStore) DeleteUser(id string) error {
if _, ok := s.Users[id]; !ok {
return ErrNoSuchUser
}
delete(s.Users, id)
return nil
}
func (s *MemoryStore) UpdateUser(u users.User) error {
if _, ok := s.Users[u.ID]; !ok {
return ErrNoSuchUser
}
s.Users[u.ID] = u
return nil
}
func (s *MemoryStore) GetUser(id string) (users.User, error) {
u, ok := s.Users[id]
if !ok {
return u, ErrNoSuchUser
}
return u, nil
}

10
store/store.go Normal file
View File

@@ -0,0 +1,10 @@
package store
import "git.t-juice.club/microfilm/users"
type UserStore interface {
AddUser(users.User) error
DeleteUser(id string) error
UpdateUser(users.User) error
GetUser(id string) (users.User, error)
}