Implement retrieving of user data

This commit is contained in:
eikendev 2020-08-04 18:42:03 +02:00
parent a3de04b2a5
commit e4e87f2710
No known key found for this signature in database
GPG key ID: A1BDB1B28C8EF694
7 changed files with 101 additions and 73 deletions

34
api/interfaces.go Normal file
View file

@ -0,0 +1,34 @@
package api
import (
"github.com/eikendev/pushbits/model"
)
// The Database interface for encapsulating database access.
type Database interface {
CreateApplication(application *model.Application) error
DeleteApplication(application *model.Application) error
GetApplicationByID(ID uint) (*model.Application, error)
GetApplicationByToken(token string) (*model.Application, error)
UpdateApplication(application *model.Application) error
AdminUserCount() (int64, error)
CreateUser(user model.CreateUser) (*model.User, error)
DeleteUser(user *model.User) error
GetApplications(user *model.User) ([]model.Application, error)
GetUserByID(ID uint) (*model.User, error)
GetUserByName(name string) (*model.User, error)
GetUsers() ([]model.User, error)
UpdateUser(user *model.User) error
}
// The Dispatcher interface for relaying notifications.
type Dispatcher interface {
RegisterApplication(name, user string) (string, error)
DeregisterApplication(a *model.Application) error
}
// The CredentialsManager interface for updating credentials.
type CredentialsManager interface {
CreatePasswordHash(password string) []byte
}