90 lines
1.8 KiB
Go
90 lines
1.8 KiB
Go
package mocks
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.32bit.cafe/32bitcafe/guestbook/internal/models"
|
|
)
|
|
|
|
var mockUser = models.User{
|
|
ID: 1,
|
|
ShortId: 1,
|
|
Username: "tester",
|
|
Email: "test@example.com",
|
|
Deleted: false,
|
|
IsBanned: false,
|
|
Created: time.Now(),
|
|
Settings: mockUserSettings,
|
|
}
|
|
|
|
var mockUserSettings = models.UserSettings{
|
|
LocalTimezone: time.UTC,
|
|
}
|
|
|
|
type UserModel struct {
|
|
Settings map[string]models.Setting
|
|
}
|
|
|
|
func (m *UserModel) InitializeSettingsMap() error {
|
|
return nil
|
|
}
|
|
|
|
func (m *UserModel) Insert(shortId uint64, username string, email string, password string, settings models.UserSettings) error {
|
|
switch email {
|
|
case "dupe@example.com":
|
|
return models.ErrDuplicateEmail
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func (m *UserModel) Get(shortId uint64) (models.User, error) {
|
|
switch shortId {
|
|
case 1:
|
|
return mockUser, nil
|
|
default:
|
|
return models.User{}, models.ErrNoRecord
|
|
}
|
|
}
|
|
|
|
func (m *UserModel) GetById(id int64) (models.User, error) {
|
|
switch id {
|
|
case 1:
|
|
return mockUser, nil
|
|
default:
|
|
return models.User{}, models.ErrNoRecord
|
|
}
|
|
}
|
|
|
|
func (m *UserModel) GetAll() ([]models.User, error) {
|
|
return []models.User{mockUser}, nil
|
|
}
|
|
|
|
func (m *UserModel) Authenticate(email, password string) (int64, error) {
|
|
if email == "test@example.com" && password == "password" {
|
|
return 1, nil
|
|
}
|
|
return 0, models.ErrInvalidCredentials
|
|
}
|
|
|
|
func (m *UserModel) Exists(id int64) (bool, error) {
|
|
switch id {
|
|
case 1:
|
|
return true, nil
|
|
default:
|
|
return false, nil
|
|
}
|
|
}
|
|
|
|
func (m *UserModel) GetSettings(userId int64) (models.UserSettings, error) {
|
|
return mockUserSettings, nil
|
|
}
|
|
|
|
func (m *UserModel) UpdateUserSettings(userId int64, settings models.UserSettings) error {
|
|
return nil
|
|
}
|
|
|
|
func (m *UserModel) UpdateSetting(userId int64, setting models.Setting, value string) error {
|
|
return nil
|
|
}
|