33 lines
1.3 KiB
Go
33 lines
1.3 KiB
Go
package account
|
|
|
|
import "arimelody-web/model"
|
|
|
|
type AccountRepository interface {
|
|
GetAll() ([]model.Account, error)
|
|
GetCount() (int, error)
|
|
GetByID(id string) (*model.Account, error)
|
|
GetByUsername(username string) (*model.Account, error)
|
|
GetByEmail(email string) (*model.Account, error)
|
|
GetBySession(sessionToken string) (*model.Account, error)
|
|
|
|
// Create an account, returning the new account ID.
|
|
Create(username string, password string, email *string, avatarURL *string) (string, error)
|
|
|
|
// Intended for large profile updates. For smaller adjusments,
|
|
// more specialised Change* and Remove* functions should be used.
|
|
Update(id string, username string, password string, email *string, avatarUrl *string) error
|
|
ChangeUsername(id string, username string) error
|
|
ChangePassword(id string, password string) error
|
|
ChangeEmail(id string, email string) error
|
|
RemoveEmail(id string) error
|
|
ChangeAvatarURL(id string, avatarURL string) error
|
|
RemoveAvatar(id string) error
|
|
|
|
Delete(accountID string) error
|
|
|
|
// Increment the number of account login failure attempts,
|
|
// returning the current fail count.
|
|
IncrementFails(accountID string) (int, error)
|
|
Lock(accountID string) error
|
|
Unlock(accountID string) error
|
|
}
|