Initial commit
This commit is contained in:
61
store/memory.go
Normal file
61
store/memory.go
Normal 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
10
store/store.go
Normal 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)
|
||||
}
|
Reference in New Issue
Block a user