Add get users rest endpoint
diff --git a/core/kg/app/app.go b/core/kg/app/app.go
index 0d8b312..8cdc0d6 100644
--- a/core/kg/app/app.go
+++ b/core/kg/app/app.go
@@ -1,6 +1,7 @@
package app
import (
+ "github.com/giolekva/pcloud/core/kg/common"
"github.com/giolekva/pcloud/core/kg/model"
"github.com/giolekva/pcloud/core/kg/store"
)
@@ -9,11 +10,11 @@
type App struct {
store store.Store
config *model.Config
- logger logger
+ logger common.LoggerIface
}
// NewApp creates new app
-func NewApp(store store.Store, config *model.Config, logger logger) *App {
+func NewApp(store store.Store, config *model.Config, logger common.LoggerIface) *App {
return &App{
store: store,
config: config,
diff --git a/core/kg/app/app_mock.go b/core/kg/app/app_mock.go
index f85e754..41575ff 100644
--- a/core/kg/app/app_mock.go
+++ b/core/kg/app/app_mock.go
@@ -2,6 +2,7 @@
import (
"github.com/giolekva/pcloud/core/kg/log"
+ "github.com/giolekva/pcloud/core/kg/model"
"github.com/giolekva/pcloud/core/kg/store/memory"
)
@@ -13,6 +14,7 @@
func NewTestApp() *MockApp {
memStore := memory.New()
logger := &log.NoOpLogger{}
- a := NewApp(memStore, logger)
+ config := model.NewConfig()
+ a := NewApp(memStore, config, logger)
return &MockApp{a}
}
diff --git a/core/kg/app/interfaces.go b/core/kg/app/interfaces.go
deleted file mode 100644
index 53cb1aa..0000000
--- a/core/kg/app/interfaces.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package app
-
-import "github.com/giolekva/pcloud/core/kg/log"
-
-type logger interface {
- Debug(message string, fields ...log.Field)
- Info(message string, fields ...log.Field)
- Warn(message string, fields ...log.Field)
- Error(message string, fields ...log.Field)
-}
diff --git a/core/kg/app/user.go b/core/kg/app/user.go
index dd25e84..063c084 100644
--- a/core/kg/app/user.go
+++ b/core/kg/app/user.go
@@ -15,6 +15,7 @@
return user, nil
}
+// CreateUser creates a user. For now it is used only for creation of the very first user
func (a *App) CreateUser(user *model.User) (*model.User, error) {
if !a.isFirstUserAccount() {
return nil, errors.New("not a first user")
@@ -28,6 +29,15 @@
return updatedUser, nil
}
+//GetUsers returns list of users
+func (a *App) GetUsers(page, perPage int) ([]*model.User, error) {
+ users, err := a.store.User().GetAllWithOptions(page, perPage)
+ if err != nil {
+ return nil, errors.Wrap(err, "can't get users with options from store")
+ }
+ return users, nil
+}
+
func (a *App) isFirstUserAccount() bool {
count, err := a.store.User().Count()
if err != nil {