mirror of
https://github.com/gogs/gogs.git
synced 2025-05-23 16:00:56 +00:00
refactor(db): migrate methods off user.go
(#7329)
This commit is contained in:
parent
9df10cb8cc
commit
614382fec0
@ -133,6 +133,7 @@ var allowedCommands = map[string]db.AccessMode{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func runServ(c *cli.Context) error {
|
func runServ(c *cli.Context) error {
|
||||||
|
ctx := context.Background()
|
||||||
setup(c, "serv.log", true)
|
setup(c, "serv.log", true)
|
||||||
|
|
||||||
if conf.SSH.Disabled {
|
if conf.SSH.Disabled {
|
||||||
@ -161,7 +162,7 @@ func runServ(c *cli.Context) error {
|
|||||||
repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
|
repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
|
||||||
repoName = strings.TrimSuffix(repoName, ".wiki")
|
repoName = strings.TrimSuffix(repoName, ".wiki")
|
||||||
|
|
||||||
owner, err := db.Users.GetByUsername(context.Background(), ownerName)
|
owner, err := db.Users.GetByUsername(ctx, ownerName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if db.IsErrUserNotExist(err) {
|
if db.IsErrUserNotExist(err) {
|
||||||
fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
|
fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
|
||||||
@ -204,12 +205,12 @@ func runServ(c *cli.Context) error {
|
|||||||
}
|
}
|
||||||
checkDeployKey(key, repo)
|
checkDeployKey(key, repo)
|
||||||
} else {
|
} else {
|
||||||
user, err = db.GetUserByKeyID(key.ID)
|
user, err = db.Users.GetByKeyID(ctx, key.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fail("Internal error", "Failed to get user by key ID '%d': %v", key.ID, err)
|
fail("Internal error", "Failed to get user by key ID '%d': %v", key.ID, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
mode := db.Perms.AccessMode(context.Background(), user.ID, repo.ID,
|
mode := db.Perms.AccessMode(ctx, user.ID, repo.ID,
|
||||||
db.AccessModeOptions{
|
db.AccessModeOptions{
|
||||||
OwnerID: repo.OwnerID,
|
OwnerID: repo.OwnerID,
|
||||||
Private: repo.IsPrivate,
|
Private: repo.IsPrivate,
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
// Copyright 2017 The Gogs Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a MIT-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package errors
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
type UserNotKeyOwner struct {
|
|
||||||
KeyID int64
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsUserNotKeyOwner(err error) bool {
|
|
||||||
_, ok := err.(UserNotKeyOwner)
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (err UserNotKeyOwner) Error() string {
|
|
||||||
return fmt.Sprintf("user is not the owner of public key [key_id: %d]", err.KeyID)
|
|
||||||
}
|
|
@ -524,7 +524,20 @@ func (repo *Repository) GetAssignees() (_ []*User, err error) {
|
|||||||
|
|
||||||
// GetAssigneeByID returns the user that has write access of repository by given ID.
|
// GetAssigneeByID returns the user that has write access of repository by given ID.
|
||||||
func (repo *Repository) GetAssigneeByID(userID int64) (*User, error) {
|
func (repo *Repository) GetAssigneeByID(userID int64) (*User, error) {
|
||||||
return GetAssigneeByID(repo, userID)
|
ctx := context.TODO()
|
||||||
|
if !Perms.Authorize(
|
||||||
|
ctx,
|
||||||
|
userID,
|
||||||
|
repo.ID,
|
||||||
|
AccessModeRead,
|
||||||
|
AccessModeOptions{
|
||||||
|
OwnerID: repo.OwnerID,
|
||||||
|
Private: repo.IsPrivate,
|
||||||
|
},
|
||||||
|
) {
|
||||||
|
return nil, ErrUserNotExist{args: errutil.Args{"userID": userID}}
|
||||||
|
}
|
||||||
|
return Users.GetByID(ctx, userID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetWriters returns all users that have write access to the repository.
|
// GetWriters returns all users that have write access to the repository.
|
||||||
|
@ -44,20 +44,20 @@ const (
|
|||||||
|
|
||||||
// PublicKey represents a user or deploy SSH public key.
|
// PublicKey represents a user or deploy SSH public key.
|
||||||
type PublicKey struct {
|
type PublicKey struct {
|
||||||
ID int64
|
ID int64 `gorm:"primaryKey"`
|
||||||
OwnerID int64 `xorm:"INDEX NOT NULL"`
|
OwnerID int64 `xorm:"INDEX NOT NULL" gorm:"index;not null"`
|
||||||
Name string `xorm:"NOT NULL"`
|
Name string `xorm:"NOT NULL" gorm:"not null"`
|
||||||
Fingerprint string `xorm:"NOT NULL"`
|
Fingerprint string `xorm:"NOT NULL" gorm:"not null"`
|
||||||
Content string `xorm:"TEXT NOT NULL"`
|
Content string `xorm:"TEXT NOT NULL" gorm:"type:TEXT;not null"`
|
||||||
Mode AccessMode `xorm:"NOT NULL DEFAULT 2"`
|
Mode AccessMode `xorm:"NOT NULL DEFAULT 2" gorm:"not null;default:2"`
|
||||||
Type KeyType `xorm:"NOT NULL DEFAULT 1"`
|
Type KeyType `xorm:"NOT NULL DEFAULT 1" gorm:"not null;default:1"`
|
||||||
|
|
||||||
Created time.Time `xorm:"-" json:"-"`
|
Created time.Time `xorm:"-" json:"-" gorm:"-"`
|
||||||
CreatedUnix int64
|
CreatedUnix int64
|
||||||
Updated time.Time `xorm:"-" json:"-"` // Note: Updated must below Created for AfterSet.
|
Updated time.Time `xorm:"-" json:"-" gorm:"-"` // Note: Updated must below Created for AfterSet.
|
||||||
UpdatedUnix int64
|
UpdatedUnix int64
|
||||||
HasRecentActivity bool `xorm:"-" json:"-"`
|
HasRecentActivity bool `xorm:"-" json:"-" gorm:"-"`
|
||||||
HasUsed bool `xorm:"-" json:"-"`
|
HasUsed bool `xorm:"-" json:"-" gorm:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k *PublicKey) BeforeInsert() {
|
func (k *PublicKey) BeforeInsert() {
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/gogs/git-module"
|
"github.com/gogs/git-module"
|
||||||
|
|
||||||
"gogs.io/gogs/internal/conf"
|
"gogs.io/gogs/internal/conf"
|
||||||
"gogs.io/gogs/internal/db/errors"
|
|
||||||
"gogs.io/gogs/internal/repoutil"
|
"gogs.io/gogs/internal/repoutil"
|
||||||
"gogs.io/gogs/internal/userutil"
|
"gogs.io/gogs/internal/userutil"
|
||||||
)
|
)
|
||||||
@ -203,17 +202,6 @@ func DeleteInactivateUsers() (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserByKeyID(keyID int64) (*User, error) {
|
|
||||||
user := new(User)
|
|
||||||
has, err := x.SQL("SELECT a.* FROM `user` AS a, public_key AS b WHERE a.id = b.owner_id AND b.id=?", keyID).Get(user)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
} else if !has {
|
|
||||||
return nil, errors.UserNotKeyOwner{KeyID: keyID}
|
|
||||||
}
|
|
||||||
return user, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func getUserByID(e Engine, id int64) (*User, error) {
|
func getUserByID(e Engine, id int64) (*User, error) {
|
||||||
u := new(User)
|
u := new(User)
|
||||||
has, err := e.ID(id).Get(u)
|
has, err := e.ID(id).Get(u)
|
||||||
@ -225,20 +213,6 @@ func getUserByID(e Engine, id int64) (*User, error) {
|
|||||||
return u, nil
|
return u, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAssigneeByID returns the user with read access of repository by given ID.
|
|
||||||
func GetAssigneeByID(repo *Repository, userID int64) (*User, error) {
|
|
||||||
ctx := context.TODO()
|
|
||||||
if !Perms.Authorize(ctx, userID, repo.ID, AccessModeRead,
|
|
||||||
AccessModeOptions{
|
|
||||||
OwnerID: repo.OwnerID,
|
|
||||||
Private: repo.IsPrivate,
|
|
||||||
},
|
|
||||||
) {
|
|
||||||
return nil, ErrUserNotExist{args: map[string]interface{}{"userID": userID}}
|
|
||||||
}
|
|
||||||
return Users.GetByID(ctx, userID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUserEmailsByNames returns a list of e-mails corresponds to names.
|
// GetUserEmailsByNames returns a list of e-mails corresponds to names.
|
||||||
func GetUserEmailsByNames(names []string) []string {
|
func GetUserEmailsByNames(names []string) []string {
|
||||||
mails := make([]string, 0, len(names))
|
mails := make([]string, 0, len(names))
|
||||||
|
@ -70,6 +70,9 @@ type UsersStore interface {
|
|||||||
// GetByUsername returns the user with given username. It returns
|
// GetByUsername returns the user with given username. It returns
|
||||||
// ErrUserNotExist when not found.
|
// ErrUserNotExist when not found.
|
||||||
GetByUsername(ctx context.Context, username string) (*User, error)
|
GetByUsername(ctx context.Context, username string) (*User, error)
|
||||||
|
// GetByKeyID returns the owner of given public key ID. It returns
|
||||||
|
// ErrUserNotExist when not found.
|
||||||
|
GetByKeyID(ctx context.Context, keyID int64) (*User, error)
|
||||||
// HasForkedRepository returns true if the user has forked given repository.
|
// HasForkedRepository returns true if the user has forked given repository.
|
||||||
HasForkedRepository(ctx context.Context, userID, repoID int64) bool
|
HasForkedRepository(ctx context.Context, userID, repoID int64) bool
|
||||||
// IsUsernameUsed returns true if the given username has been used other than
|
// IsUsernameUsed returns true if the given username has been used other than
|
||||||
@ -484,6 +487,22 @@ func (db *users) GetByUsername(ctx context.Context, username string) (*User, err
|
|||||||
return user, nil
|
return user, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *users) GetByKeyID(ctx context.Context, keyID int64) (*User, error) {
|
||||||
|
user := new(User)
|
||||||
|
err := db.WithContext(ctx).
|
||||||
|
Joins(dbutil.Quote("JOIN public_key ON public_key.owner_id = %s.id", "user")).
|
||||||
|
Where("public_key.id = ?", keyID).
|
||||||
|
First(user).
|
||||||
|
Error
|
||||||
|
if err != nil {
|
||||||
|
if err == gorm.ErrRecordNotFound {
|
||||||
|
return nil, ErrUserNotExist{args: errutil.Args{"keyID": keyID}}
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return user, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (db *users) HasForkedRepository(ctx context.Context, userID, repoID int64) bool {
|
func (db *users) HasForkedRepository(ctx context.Context, userID, repoID int64) bool {
|
||||||
var count int64
|
var count int64
|
||||||
db.WithContext(ctx).Model(new(Repository)).Where("owner_id = ? AND fork_id = ?", userID, repoID).Count(&count)
|
db.WithContext(ctx).Model(new(Repository)).Where("owner_id = ? AND fork_id = ?", userID, repoID).Count(&count)
|
||||||
|
@ -82,7 +82,7 @@ func TestUsers(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
tables := []interface{}{new(User), new(EmailAddress), new(Repository), new(Follow), new(PullRequest)}
|
tables := []interface{}{new(User), new(EmailAddress), new(Repository), new(Follow), new(PullRequest), new(PublicKey)}
|
||||||
db := &users{
|
db := &users{
|
||||||
DB: dbtest.NewDB(t, "users", tables...),
|
DB: dbtest.NewDB(t, "users", tables...),
|
||||||
}
|
}
|
||||||
@ -99,6 +99,7 @@ func TestUsers(t *testing.T) {
|
|||||||
{"GetByEmail", usersGetByEmail},
|
{"GetByEmail", usersGetByEmail},
|
||||||
{"GetByID", usersGetByID},
|
{"GetByID", usersGetByID},
|
||||||
{"GetByUsername", usersGetByUsername},
|
{"GetByUsername", usersGetByUsername},
|
||||||
|
{"GetByKeyID", usersGetByKeyID},
|
||||||
{"HasForkedRepository", usersHasForkedRepository},
|
{"HasForkedRepository", usersHasForkedRepository},
|
||||||
{"IsUsernameUsed", usersIsUsernameUsed},
|
{"IsUsernameUsed", usersIsUsernameUsed},
|
||||||
{"List", usersList},
|
{"List", usersList},
|
||||||
@ -553,6 +554,33 @@ func usersGetByUsername(t *testing.T, db *users) {
|
|||||||
assert.Equal(t, wantErr, err)
|
assert.Equal(t, wantErr, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func usersGetByKeyID(t *testing.T, db *users) {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
alice, err := db.Create(ctx, "alice", "alice@exmaple.com", CreateUserOptions{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// TODO: Use PublicKeys.Create to replace SQL hack when the method is available.
|
||||||
|
publicKey := &PublicKey{
|
||||||
|
OwnerID: alice.ID,
|
||||||
|
Name: "test-key",
|
||||||
|
Fingerprint: "12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53",
|
||||||
|
Content: "test-key-content",
|
||||||
|
CreatedUnix: db.NowFunc().Unix(),
|
||||||
|
UpdatedUnix: db.NowFunc().Unix(),
|
||||||
|
}
|
||||||
|
err = db.WithContext(ctx).Create(publicKey).Error
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
user, err := db.GetByKeyID(ctx, publicKey.ID)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, alice.Name, user.Name)
|
||||||
|
|
||||||
|
_, err = db.GetByKeyID(ctx, publicKey.ID+1)
|
||||||
|
wantErr := ErrUserNotExist{args: errutil.Args{"keyID": publicKey.ID + 1}}
|
||||||
|
assert.Equal(t, wantErr, err)
|
||||||
|
}
|
||||||
|
|
||||||
func usersHasForkedRepository(t *testing.T, db *users) {
|
func usersHasForkedRepository(t *testing.T, db *users) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
@ -2313,6 +2313,9 @@ type MockUsersStore struct {
|
|||||||
// GetByIDFunc is an instance of a mock function object controlling the
|
// GetByIDFunc is an instance of a mock function object controlling the
|
||||||
// behavior of the method GetByID.
|
// behavior of the method GetByID.
|
||||||
GetByIDFunc *UsersStoreGetByIDFunc
|
GetByIDFunc *UsersStoreGetByIDFunc
|
||||||
|
// GetByKeyIDFunc is an instance of a mock function object controlling
|
||||||
|
// the behavior of the method GetByKeyID.
|
||||||
|
GetByKeyIDFunc *UsersStoreGetByKeyIDFunc
|
||||||
// GetByUsernameFunc is an instance of a mock function object
|
// GetByUsernameFunc is an instance of a mock function object
|
||||||
// controlling the behavior of the method GetByUsername.
|
// controlling the behavior of the method GetByUsername.
|
||||||
GetByUsernameFunc *UsersStoreGetByUsernameFunc
|
GetByUsernameFunc *UsersStoreGetByUsernameFunc
|
||||||
@ -2378,6 +2381,11 @@ func NewMockUsersStore() *MockUsersStore {
|
|||||||
return
|
return
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
GetByKeyIDFunc: &UsersStoreGetByKeyIDFunc{
|
||||||
|
defaultHook: func(context.Context, int64) (r0 *db.User, r1 error) {
|
||||||
|
return
|
||||||
|
},
|
||||||
|
},
|
||||||
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
||||||
defaultHook: func(context.Context, string) (r0 *db.User, r1 error) {
|
defaultHook: func(context.Context, string) (r0 *db.User, r1 error) {
|
||||||
return
|
return
|
||||||
@ -2460,6 +2468,11 @@ func NewStrictMockUsersStore() *MockUsersStore {
|
|||||||
panic("unexpected invocation of MockUsersStore.GetByID")
|
panic("unexpected invocation of MockUsersStore.GetByID")
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
GetByKeyIDFunc: &UsersStoreGetByKeyIDFunc{
|
||||||
|
defaultHook: func(context.Context, int64) (*db.User, error) {
|
||||||
|
panic("unexpected invocation of MockUsersStore.GetByKeyID")
|
||||||
|
},
|
||||||
|
},
|
||||||
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
||||||
defaultHook: func(context.Context, string) (*db.User, error) {
|
defaultHook: func(context.Context, string) (*db.User, error) {
|
||||||
panic("unexpected invocation of MockUsersStore.GetByUsername")
|
panic("unexpected invocation of MockUsersStore.GetByUsername")
|
||||||
@ -2528,6 +2541,9 @@ func NewMockUsersStoreFrom(i db.UsersStore) *MockUsersStore {
|
|||||||
GetByIDFunc: &UsersStoreGetByIDFunc{
|
GetByIDFunc: &UsersStoreGetByIDFunc{
|
||||||
defaultHook: i.GetByID,
|
defaultHook: i.GetByID,
|
||||||
},
|
},
|
||||||
|
GetByKeyIDFunc: &UsersStoreGetByKeyIDFunc{
|
||||||
|
defaultHook: i.GetByKeyID,
|
||||||
|
},
|
||||||
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
GetByUsernameFunc: &UsersStoreGetByUsernameFunc{
|
||||||
defaultHook: i.GetByUsername,
|
defaultHook: i.GetByUsername,
|
||||||
},
|
},
|
||||||
@ -3313,6 +3329,114 @@ func (c UsersStoreGetByIDFuncCall) Results() []interface{} {
|
|||||||
return []interface{}{c.Result0, c.Result1}
|
return []interface{}{c.Result0, c.Result1}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UsersStoreGetByKeyIDFunc describes the behavior when the GetByKeyID
|
||||||
|
// method of the parent MockUsersStore instance is invoked.
|
||||||
|
type UsersStoreGetByKeyIDFunc struct {
|
||||||
|
defaultHook func(context.Context, int64) (*db.User, error)
|
||||||
|
hooks []func(context.Context, int64) (*db.User, error)
|
||||||
|
history []UsersStoreGetByKeyIDFuncCall
|
||||||
|
mutex sync.Mutex
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetByKeyID delegates to the next hook function in the queue and stores
|
||||||
|
// the parameter and result values of this invocation.
|
||||||
|
func (m *MockUsersStore) GetByKeyID(v0 context.Context, v1 int64) (*db.User, error) {
|
||||||
|
r0, r1 := m.GetByKeyIDFunc.nextHook()(v0, v1)
|
||||||
|
m.GetByKeyIDFunc.appendCall(UsersStoreGetByKeyIDFuncCall{v0, v1, r0, r1})
|
||||||
|
return r0, r1
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDefaultHook sets function that is called when the GetByKeyID method of
|
||||||
|
// the parent MockUsersStore instance is invoked and the hook queue is
|
||||||
|
// empty.
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) SetDefaultHook(hook func(context.Context, int64) (*db.User, error)) {
|
||||||
|
f.defaultHook = hook
|
||||||
|
}
|
||||||
|
|
||||||
|
// PushHook adds a function to the end of hook queue. Each invocation of the
|
||||||
|
// GetByKeyID method of the parent MockUsersStore instance invokes the hook
|
||||||
|
// at the front of the queue and discards it. After the queue is empty, the
|
||||||
|
// default hook function is invoked for any future action.
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) PushHook(hook func(context.Context, int64) (*db.User, error)) {
|
||||||
|
f.mutex.Lock()
|
||||||
|
f.hooks = append(f.hooks, hook)
|
||||||
|
f.mutex.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDefaultReturn calls SetDefaultHook with a function that returns the
|
||||||
|
// given values.
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) SetDefaultReturn(r0 *db.User, r1 error) {
|
||||||
|
f.SetDefaultHook(func(context.Context, int64) (*db.User, error) {
|
||||||
|
return r0, r1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// PushReturn calls PushHook with a function that returns the given values.
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) PushReturn(r0 *db.User, r1 error) {
|
||||||
|
f.PushHook(func(context.Context, int64) (*db.User, error) {
|
||||||
|
return r0, r1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) nextHook() func(context.Context, int64) (*db.User, error) {
|
||||||
|
f.mutex.Lock()
|
||||||
|
defer f.mutex.Unlock()
|
||||||
|
|
||||||
|
if len(f.hooks) == 0 {
|
||||||
|
return f.defaultHook
|
||||||
|
}
|
||||||
|
|
||||||
|
hook := f.hooks[0]
|
||||||
|
f.hooks = f.hooks[1:]
|
||||||
|
return hook
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) appendCall(r0 UsersStoreGetByKeyIDFuncCall) {
|
||||||
|
f.mutex.Lock()
|
||||||
|
f.history = append(f.history, r0)
|
||||||
|
f.mutex.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// History returns a sequence of UsersStoreGetByKeyIDFuncCall objects
|
||||||
|
// describing the invocations of this function.
|
||||||
|
func (f *UsersStoreGetByKeyIDFunc) History() []UsersStoreGetByKeyIDFuncCall {
|
||||||
|
f.mutex.Lock()
|
||||||
|
history := make([]UsersStoreGetByKeyIDFuncCall, len(f.history))
|
||||||
|
copy(history, f.history)
|
||||||
|
f.mutex.Unlock()
|
||||||
|
|
||||||
|
return history
|
||||||
|
}
|
||||||
|
|
||||||
|
// UsersStoreGetByKeyIDFuncCall is an object that describes an invocation of
|
||||||
|
// method GetByKeyID on an instance of MockUsersStore.
|
||||||
|
type UsersStoreGetByKeyIDFuncCall struct {
|
||||||
|
// Arg0 is the value of the 1st argument passed to this method
|
||||||
|
// invocation.
|
||||||
|
Arg0 context.Context
|
||||||
|
// Arg1 is the value of the 2nd argument passed to this method
|
||||||
|
// invocation.
|
||||||
|
Arg1 int64
|
||||||
|
// Result0 is the value of the 1st result returned from this method
|
||||||
|
// invocation.
|
||||||
|
Result0 *db.User
|
||||||
|
// Result1 is the value of the 2nd result returned from this method
|
||||||
|
// invocation.
|
||||||
|
Result1 error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Args returns an interface slice containing the arguments of this
|
||||||
|
// invocation.
|
||||||
|
func (c UsersStoreGetByKeyIDFuncCall) Args() []interface{} {
|
||||||
|
return []interface{}{c.Arg0, c.Arg1}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Results returns an interface slice containing the results of this
|
||||||
|
// invocation.
|
||||||
|
func (c UsersStoreGetByKeyIDFuncCall) Results() []interface{} {
|
||||||
|
return []interface{}{c.Result0, c.Result1}
|
||||||
|
}
|
||||||
|
|
||||||
// UsersStoreGetByUsernameFunc describes the behavior when the GetByUsername
|
// UsersStoreGetByUsernameFunc describes the behavior when the GetByUsername
|
||||||
// method of the parent MockUsersStore instance is invoked.
|
// method of the parent MockUsersStore instance is invoked.
|
||||||
type UsersStoreGetByUsernameFunc struct {
|
type UsersStoreGetByUsernameFunc struct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user