From fbf4afff8e2ac3a9b6dfb7450809dd4303f2be3a Mon Sep 17 00:00:00 2001 From: boojack Date: Mon, 16 May 2022 07:37:23 +0800 Subject: [PATCH] refactor: store --- api/memo.go | 8 -------- api/resource.go | 7 ------- api/shortcut.go | 8 -------- api/user.go | 6 ------ bin/server/cmd/root.go | 7 ++----- server/auth.go | 8 ++++---- server/basic_auth.go | 4 ++-- server/memo.go | 10 +++++----- server/resource.go | 6 +++--- server/server.go | 9 +++------ server/shortcut.go | 10 +++++----- server/system.go | 2 +- server/user.go | 6 +++--- server/webhook.go | 14 +++++++------- store/memo.go | 18 +++++------------- store/resource.go | 16 ++++------------ store/shortcut.go | 18 +++++------------- store/store.go | 13 +++++++++++++ store/user.go | 14 +++----------- 19 files changed, 65 insertions(+), 119 deletions(-) create mode 100644 store/store.go diff --git a/api/memo.go b/api/memo.go index ebfce6c2..7c373cc4 100644 --- a/api/memo.go +++ b/api/memo.go @@ -45,11 +45,3 @@ type MemoFind struct { type MemoDelete struct { ID *int `json:"id"` } - -type MemoService interface { - CreateMemo(create *MemoCreate) (*Memo, error) - PatchMemo(patch *MemoPatch) (*Memo, error) - FindMemoList(find *MemoFind) ([]*Memo, error) - FindMemo(find *MemoFind) (*Memo, error) - DeleteMemo(delete *MemoDelete) error -} diff --git a/api/resource.go b/api/resource.go index 59a2ed30..913c4b5f 100644 --- a/api/resource.go +++ b/api/resource.go @@ -39,10 +39,3 @@ type ResourceFind struct { type ResourceDelete struct { ID int } - -type ResourceService interface { - CreateResource(create *ResourceCreate) (*Resource, error) - FindResourceList(find *ResourceFind) ([]*Resource, error) - FindResource(find *ResourceFind) (*Resource, error) - DeleteResource(delete *ResourceDelete) error -} diff --git a/api/shortcut.go b/api/shortcut.go index 305d4a18..1e4d7eab 100644 --- a/api/shortcut.go +++ b/api/shortcut.go @@ -47,11 +47,3 @@ type ShortcutFind struct { type ShortcutDelete struct { ID int } - -type ShortcutService interface { - CreateShortcut(create *ShortcutCreate) (*Shortcut, error) - PatchShortcut(patch *ShortcutPatch) (*Shortcut, error) - FindShortcutList(find *ShortcutFind) ([]*Shortcut, error) - FindShortcut(find *ShortcutFind) (*Shortcut, error) - DeleteShortcut(delete *ShortcutDelete) error -} diff --git a/api/user.go b/api/user.go index 364a0e88..708c6267 100644 --- a/api/user.go +++ b/api/user.go @@ -55,9 +55,3 @@ type UserFind struct { Name *string `json:"name"` OpenID *string } - -type UserService interface { - CreateUser(create *UserCreate) (*User, error) - PatchUser(patch *UserPatch) (*User, error) - FindUser(find *UserFind) (*User, error) -} diff --git a/bin/server/cmd/root.go b/bin/server/cmd/root.go index d8c06a90..fa25f14c 100644 --- a/bin/server/cmd/root.go +++ b/bin/server/cmd/root.go @@ -27,11 +27,8 @@ func (m *Main) Run() error { s := server.NewServer(m.profile) - s.ShortcutService = store.NewShortcutService(db) - s.MemoService = store.NewMemoService(db) - s.UserService = store.NewUserService(db) - s.ShortcutService = store.NewShortcutService(db) - s.ResourceService = store.NewResourceService(db) + storeInstance := store.New(db) + s.Store = storeInstance m.server = s diff --git a/server/auth.go b/server/auth.go index 4cbd0987..c65849ea 100644 --- a/server/auth.go +++ b/server/auth.go @@ -21,7 +21,7 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { userFind := &api.UserFind{ Email: &login.Email, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to find user by email %s", login.Email)).SetInternal(err) } @@ -63,7 +63,7 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { ownerUserFind := api.UserFind{ Role: &ownerUserType, } - ownerUser, err := s.UserService.FindUser(&ownerUserFind) + ownerUser, err := s.Store.FindUser(&ownerUserFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find owner user").SetInternal(err) } @@ -91,7 +91,7 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { userFind := &api.UserFind{ Email: &signup.Email, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to find user by email %s", signup.Email)).SetInternal(err) } @@ -111,7 +111,7 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { PasswordHash: string(passwordHash), OpenID: common.GenUUID(), } - user, err = s.UserService.CreateUser(userCreate) + user, err = s.Store.CreateUser(userCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create user").SetInternal(err) } diff --git a/server/basic_auth.go b/server/basic_auth.go index 574988c6..ca57ffac 100644 --- a/server/basic_auth.go +++ b/server/basic_auth.go @@ -53,7 +53,7 @@ func removeUserSession(c echo.Context) error { } // Use session to store user.id. -func BasicAuthMiddleware(us api.UserService, next echo.HandlerFunc) echo.HandlerFunc { +func BasicAuthMiddleware(s *Server, next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { // Skips auth if common.HasPrefixes(c.Path(), "/api/auth", "/api/ping", "/api/status") { @@ -79,7 +79,7 @@ func BasicAuthMiddleware(us api.UserService, next echo.HandlerFunc) echo.Handler userFind := &api.UserFind{ ID: &userID, } - user, err := us.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to find user by ID: %d", userID)).SetInternal(err) } diff --git a/server/memo.go b/server/memo.go index bde35e0a..aac31c57 100644 --- a/server/memo.go +++ b/server/memo.go @@ -21,7 +21,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) { return echo.NewHTTPError(http.StatusBadRequest, "Malformatted post memo request").SetInternal(err) } - memo, err := s.MemoService.CreateMemo(memoCreate) + memo, err := s.Store.CreateMemo(memoCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create memo").SetInternal(err) } @@ -47,7 +47,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) { return echo.NewHTTPError(http.StatusBadRequest, "Malformatted patch memo request").SetInternal(err) } - memo, err := s.MemoService.PatchMemo(memoPatch) + memo, err := s.Store.PatchMemo(memoPatch) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch memo").SetInternal(err) } @@ -70,7 +70,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) { memoFind.RowStatus = &rowStatus } - list, err := s.MemoService.FindMemoList(memoFind) + list, err := s.Store.FindMemoList(memoFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to fetch memo list").SetInternal(err) } @@ -92,7 +92,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) { memoFind := &api.MemoFind{ ID: &memoID, } - memo, err := s.MemoService.FindMemo(memoFind) + memo, err := s.Store.FindMemo(memoFind) if err != nil { if common.ErrorCode(err) == common.NotFound { return echo.NewHTTPError(http.StatusNotFound, fmt.Sprintf("Memo ID not found: %d", memoID)).SetInternal(err) @@ -119,7 +119,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) { ID: &memoID, } - err = s.MemoService.DeleteMemo(memoDelete) + err = s.Store.DeleteMemo(memoDelete) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to delete memo ID: %v", memoID)).SetInternal(err) } diff --git a/server/resource.go b/server/resource.go index 46a96404..f65c7556 100644 --- a/server/resource.go +++ b/server/resource.go @@ -47,7 +47,7 @@ func (s *Server) registerResourceRoutes(g *echo.Group) { CreatorID: userID, } - resource, err := s.ResourceService.CreateResource(resourceCreate) + resource, err := s.Store.CreateResource(resourceCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err) } @@ -65,7 +65,7 @@ func (s *Server) registerResourceRoutes(g *echo.Group) { resourceFind := &api.ResourceFind{ CreatorID: &userID, } - list, err := s.ResourceService.FindResourceList(resourceFind) + list, err := s.Store.FindResourceList(resourceFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to fetch resource list").SetInternal(err) } @@ -87,7 +87,7 @@ func (s *Server) registerResourceRoutes(g *echo.Group) { resourceDelete := &api.ResourceDelete{ ID: resourceID, } - if err := s.ResourceService.DeleteResource(resourceDelete); err != nil { + if err := s.Store.DeleteResource(resourceDelete); err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to delete resource").SetInternal(err) } diff --git a/server/server.go b/server/server.go index 1d917c20..d68bd3ba 100644 --- a/server/server.go +++ b/server/server.go @@ -2,8 +2,8 @@ package server import ( "fmt" - "memos/api" "memos/common" + "memos/store" "time" "github.com/gorilla/securecookie" @@ -18,10 +18,7 @@ type Server struct { Profile *common.Profile - UserService api.UserService - MemoService api.MemoService - ShortcutService api.ShortcutService - ResourceService api.ResourceService + Store *store.Store } func NewServer(profile *common.Profile) *Server { @@ -65,7 +62,7 @@ func NewServer(profile *common.Profile) *Server { apiGroup := e.Group("/api") apiGroup.Use(func(next echo.HandlerFunc) echo.HandlerFunc { - return BasicAuthMiddleware(s.UserService, next) + return BasicAuthMiddleware(s, next) }) s.registerSystemRoutes(apiGroup) s.registerAuthRoutes(apiGroup) diff --git a/server/shortcut.go b/server/shortcut.go index 5ab442fd..c1dd66b2 100644 --- a/server/shortcut.go +++ b/server/shortcut.go @@ -20,7 +20,7 @@ func (s *Server) registerShortcutRoutes(g *echo.Group) { return echo.NewHTTPError(http.StatusBadRequest, "Malformatted post shortcut request").SetInternal(err) } - shortcut, err := s.ShortcutService.CreateShortcut(shortcutCreate) + shortcut, err := s.Store.CreateShortcut(shortcutCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create shortcut").SetInternal(err) } @@ -46,7 +46,7 @@ func (s *Server) registerShortcutRoutes(g *echo.Group) { return echo.NewHTTPError(http.StatusBadRequest, "Malformatted patch shortcut request").SetInternal(err) } - shortcut, err := s.ShortcutService.PatchShortcut(shortcutPatch) + shortcut, err := s.Store.PatchShortcut(shortcutPatch) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch shortcut").SetInternal(err) } @@ -64,7 +64,7 @@ func (s *Server) registerShortcutRoutes(g *echo.Group) { shortcutFind := &api.ShortcutFind{ CreatorID: &userID, } - list, err := s.ShortcutService.FindShortcutList(shortcutFind) + list, err := s.Store.FindShortcutList(shortcutFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to fetch shortcut list").SetInternal(err) } @@ -86,7 +86,7 @@ func (s *Server) registerShortcutRoutes(g *echo.Group) { shortcutFind := &api.ShortcutFind{ ID: &shortcutID, } - shortcut, err := s.ShortcutService.FindShortcut(shortcutFind) + shortcut, err := s.Store.FindShortcut(shortcutFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to fetch shortcut by ID %d", *shortcutFind.ID)).SetInternal(err) } @@ -108,7 +108,7 @@ func (s *Server) registerShortcutRoutes(g *echo.Group) { shortcutDelete := &api.ShortcutDelete{ ID: shortcutID, } - if err := s.ShortcutService.DeleteShortcut(shortcutDelete); err != nil { + if err := s.Store.DeleteShortcut(shortcutDelete); err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to delete shortcut").SetInternal(err) } diff --git a/server/system.go b/server/system.go index 3c0ca7a7..70a93387 100644 --- a/server/system.go +++ b/server/system.go @@ -23,7 +23,7 @@ func (s *Server) registerSystemRoutes(g *echo.Group) { ownerUserFind := api.UserFind{ Role: &ownerUserType, } - ownerUser, err := s.UserService.FindUser(&ownerUserFind) + ownerUser, err := s.Store.FindUser(&ownerUserFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find owner user").SetInternal(err) } diff --git a/server/user.go b/server/user.go index 46242d1f..0c73d84c 100644 --- a/server/user.go +++ b/server/user.go @@ -23,7 +23,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) { userFind := &api.UserFind{ ID: &userID, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to fetch user").SetInternal(err) } @@ -49,7 +49,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) { userFind := api.UserFind{ Email: userPatch.Email, } - user, err := s.UserService.FindUser(&userFind) + user, err := s.Store.FindUser(&userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to find user by email %s", *userPatch.Email)).SetInternal(err) } @@ -73,7 +73,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) { userPatch.OpenID = &openID } - user, err := s.UserService.PatchUser(userPatch) + user, err := s.Store.PatchUser(userPatch) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch user").SetInternal(err) } diff --git a/server/webhook.go b/server/webhook.go index 4e0ab50c..0f7662c9 100644 --- a/server/webhook.go +++ b/server/webhook.go @@ -22,7 +22,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { userFind := &api.UserFind{ OpenID: &openID, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user by open_id").SetInternal(err) } @@ -37,7 +37,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { return echo.NewHTTPError(http.StatusBadRequest, "Malformatted post memo request by open api").SetInternal(err) } - memo, err := s.MemoService.CreateMemo(memoCreate) + memo, err := s.Store.CreateMemo(memoCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create memo").SetInternal(err) } @@ -56,7 +56,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { userFind := &api.UserFind{ OpenID: &openID, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user by open_id").SetInternal(err) } @@ -72,7 +72,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { memoFind.RowStatus = &rowStatus } - list, err := s.MemoService.FindMemoList(memoFind) + list, err := s.Store.FindMemoList(memoFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to fetch memo list").SetInternal(err) } @@ -91,7 +91,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { userFind := &api.UserFind{ OpenID: &openID, } - user, err := s.UserService.FindUser(userFind) + user, err := s.Store.FindUser(userFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user by open_id").SetInternal(err) } @@ -130,7 +130,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { CreatorID: user.ID, } - resource, err := s.ResourceService.CreateResource(resourceCreate) + resource, err := s.Store.CreateResource(resourceCreate) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Failed to create resource").SetInternal(err) } @@ -156,7 +156,7 @@ func (s *Server) registerWebhookRoutes(g *echo.Group) { Filename: &filename, } - resource, err := s.ResourceService.FindResource(resourceFind) + resource, err := s.Store.FindResource(resourceFind) if err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to fetch resource ID: %v", resourceID)).SetInternal(err) } diff --git a/store/memo.go b/store/memo.go index 3f2b5840..bcd9c792 100644 --- a/store/memo.go +++ b/store/memo.go @@ -7,15 +7,7 @@ import ( "strings" ) -type MemoService struct { - db *DB -} - -func NewMemoService(db *DB) *MemoService { - return &MemoService{db: db} -} - -func (s *MemoService) CreateMemo(create *api.MemoCreate) (*api.Memo, error) { +func (s *Store) CreateMemo(create *api.MemoCreate) (*api.Memo, error) { memo, err := createMemo(s.db, create) if err != nil { return nil, err @@ -24,7 +16,7 @@ func (s *MemoService) CreateMemo(create *api.MemoCreate) (*api.Memo, error) { return memo, nil } -func (s *MemoService) PatchMemo(patch *api.MemoPatch) (*api.Memo, error) { +func (s *Store) PatchMemo(patch *api.MemoPatch) (*api.Memo, error) { memo, err := patchMemo(s.db, patch) if err != nil { return nil, err @@ -33,7 +25,7 @@ func (s *MemoService) PatchMemo(patch *api.MemoPatch) (*api.Memo, error) { return memo, nil } -func (s *MemoService) FindMemoList(find *api.MemoFind) ([]*api.Memo, error) { +func (s *Store) FindMemoList(find *api.MemoFind) ([]*api.Memo, error) { list, err := findMemoList(s.db, find) if err != nil { return nil, err @@ -42,7 +34,7 @@ func (s *MemoService) FindMemoList(find *api.MemoFind) ([]*api.Memo, error) { return list, nil } -func (s *MemoService) FindMemo(find *api.MemoFind) (*api.Memo, error) { +func (s *Store) FindMemo(find *api.MemoFind) (*api.Memo, error) { list, err := findMemoList(s.db, find) if err != nil { return nil, err @@ -55,7 +47,7 @@ func (s *MemoService) FindMemo(find *api.MemoFind) (*api.Memo, error) { return list[0], nil } -func (s *MemoService) DeleteMemo(delete *api.MemoDelete) error { +func (s *Store) DeleteMemo(delete *api.MemoDelete) error { err := deleteMemo(s.db, delete) if err != nil { return FormatError(err) diff --git a/store/resource.go b/store/resource.go index 03c4aa6e..63418baf 100644 --- a/store/resource.go +++ b/store/resource.go @@ -7,15 +7,7 @@ import ( "strings" ) -type ResourceService struct { - db *DB -} - -func NewResourceService(db *DB) *ResourceService { - return &ResourceService{db: db} -} - -func (s *ResourceService) CreateResource(create *api.ResourceCreate) (*api.Resource, error) { +func (s *Store) CreateResource(create *api.ResourceCreate) (*api.Resource, error) { resource, err := createResource(s.db, create) if err != nil { return nil, err @@ -24,7 +16,7 @@ func (s *ResourceService) CreateResource(create *api.ResourceCreate) (*api.Resou return resource, nil } -func (s *ResourceService) FindResourceList(find *api.ResourceFind) ([]*api.Resource, error) { +func (s *Store) FindResourceList(find *api.ResourceFind) ([]*api.Resource, error) { list, err := findResourceList(s.db, find) if err != nil { return nil, err @@ -33,7 +25,7 @@ func (s *ResourceService) FindResourceList(find *api.ResourceFind) ([]*api.Resou return list, nil } -func (s *ResourceService) FindResource(find *api.ResourceFind) (*api.Resource, error) { +func (s *Store) FindResource(find *api.ResourceFind) (*api.Resource, error) { list, err := findResourceList(s.db, find) if err != nil { return nil, err @@ -46,7 +38,7 @@ func (s *ResourceService) FindResource(find *api.ResourceFind) (*api.Resource, e return list[0], nil } -func (s *ResourceService) DeleteResource(delete *api.ResourceDelete) error { +func (s *Store) DeleteResource(delete *api.ResourceDelete) error { err := deleteResource(s.db, delete) if err != nil { return err diff --git a/store/shortcut.go b/store/shortcut.go index 3f3394bf..a542a3e8 100644 --- a/store/shortcut.go +++ b/store/shortcut.go @@ -7,15 +7,7 @@ import ( "strings" ) -type ShortcutService struct { - db *DB -} - -func NewShortcutService(db *DB) *ShortcutService { - return &ShortcutService{db: db} -} - -func (s *ShortcutService) CreateShortcut(create *api.ShortcutCreate) (*api.Shortcut, error) { +func (s *Store) CreateShortcut(create *api.ShortcutCreate) (*api.Shortcut, error) { shortcut, err := createShortcut(s.db, create) if err != nil { return nil, err @@ -24,7 +16,7 @@ func (s *ShortcutService) CreateShortcut(create *api.ShortcutCreate) (*api.Short return shortcut, nil } -func (s *ShortcutService) PatchShortcut(patch *api.ShortcutPatch) (*api.Shortcut, error) { +func (s *Store) PatchShortcut(patch *api.ShortcutPatch) (*api.Shortcut, error) { shortcut, err := patchShortcut(s.db, patch) if err != nil { return nil, err @@ -33,7 +25,7 @@ func (s *ShortcutService) PatchShortcut(patch *api.ShortcutPatch) (*api.Shortcut return shortcut, nil } -func (s *ShortcutService) FindShortcutList(find *api.ShortcutFind) ([]*api.Shortcut, error) { +func (s *Store) FindShortcutList(find *api.ShortcutFind) ([]*api.Shortcut, error) { list, err := findShortcutList(s.db, find) if err != nil { return nil, err @@ -42,7 +34,7 @@ func (s *ShortcutService) FindShortcutList(find *api.ShortcutFind) ([]*api.Short return list, nil } -func (s *ShortcutService) FindShortcut(find *api.ShortcutFind) (*api.Shortcut, error) { +func (s *Store) FindShortcut(find *api.ShortcutFind) (*api.Shortcut, error) { list, err := findShortcutList(s.db, find) if err != nil { return nil, err @@ -55,7 +47,7 @@ func (s *ShortcutService) FindShortcut(find *api.ShortcutFind) (*api.Shortcut, e return list[0], nil } -func (s *ShortcutService) DeleteShortcut(delete *api.ShortcutDelete) error { +func (s *Store) DeleteShortcut(delete *api.ShortcutDelete) error { err := deleteShortcut(s.db, delete) if err != nil { return FormatError(err) diff --git a/store/store.go b/store/store.go new file mode 100644 index 00000000..c3207c08 --- /dev/null +++ b/store/store.go @@ -0,0 +1,13 @@ +package store + +// Store provides database access to all raw objects +type Store struct { + db *DB +} + +// New creates a new instance of Store +func New(db *DB) *Store { + return &Store{ + db: db, + } +} diff --git a/store/user.go b/store/user.go index 6727ab5a..5793796a 100644 --- a/store/user.go +++ b/store/user.go @@ -7,15 +7,7 @@ import ( "strings" ) -type UserService struct { - db *DB -} - -func NewUserService(db *DB) *UserService { - return &UserService{db: db} -} - -func (s *UserService) CreateUser(create *api.UserCreate) (*api.User, error) { +func (s *Store) CreateUser(create *api.UserCreate) (*api.User, error) { user, err := createUser(s.db, create) if err != nil { return nil, err @@ -24,7 +16,7 @@ func (s *UserService) CreateUser(create *api.UserCreate) (*api.User, error) { return user, nil } -func (s *UserService) PatchUser(patch *api.UserPatch) (*api.User, error) { +func (s *Store) PatchUser(patch *api.UserPatch) (*api.User, error) { user, err := patchUser(s.db, patch) if err != nil { return nil, err @@ -33,7 +25,7 @@ func (s *UserService) PatchUser(patch *api.UserPatch) (*api.User, error) { return user, nil } -func (s *UserService) FindUser(find *api.UserFind) (*api.User, error) { +func (s *Store) FindUser(find *api.UserFind) (*api.User, error) { list, err := findUserList(s.db, find) if err != nil { return nil, err