summaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2022-09-02 10:56:33 +0100
committerLibravatar GitHub <noreply@github.com>2022-09-02 11:56:33 +0200
commit614ab12733b991dbea9d1f7fa311a98072558727 (patch)
tree41780382cb71413566c8c87ce1ce0184c504253b /internal/db
parent[feature] Emojify spoiler and content in web templates (#785) (diff)
downloadgotosocial-614ab12733b991dbea9d1f7fa311a98072558727.tar.xz
[performance] use GetAccountByUsernameDomain() for local account lookups to rely on cache (#793)
Signed-off-by: kim <grufwub@gmail.com> Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/db')
-rw-r--r--internal/db/account.go3
-rw-r--r--internal/db/bundb/account.go17
2 files changed, 3 insertions, 17 deletions
diff --git a/internal/db/account.go b/internal/db/account.go
index 155bd666c..54e24784f 100644
--- a/internal/db/account.go
+++ b/internal/db/account.go
@@ -42,9 +42,6 @@ type Account interface {
// UpdateAccount updates one account by ID.
UpdateAccount(ctx context.Context, account *gtsmodel.Account) (*gtsmodel.Account, Error)
- // GetLocalAccountByUsername returns an account on this instance by its username.
- GetLocalAccountByUsername(ctx context.Context, username string) (*gtsmodel.Account, Error)
-
// GetAccountFaves fetches faves/likes created by the target accountID.
GetAccountFaves(ctx context.Context, accountID string) ([]*gtsmodel.StatusFave, Error)
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go
index f46143401..7bee375e3 100644
--- a/internal/db/bundb/account.go
+++ b/internal/db/bundb/account.go
@@ -91,11 +91,13 @@ func (a *accountDB) GetAccountByUsernameDomain(ctx context.Context, username str
return a.cache.GetByUsernameDomain(username, domain)
},
func(account *gtsmodel.Account) error {
- q := a.newAccountQ(account).Where("account.username = ?", username)
+ q := a.newAccountQ(account)
if domain != "" {
+ q = q.Where("account.username = ?", username)
q = q.Where("account.domain = ?", domain)
} else {
+ q = q.Where("account.username = ?", strings.ToLower(username))
q = q.Where("account.domain IS NULL")
}
@@ -217,19 +219,6 @@ func (a *accountDB) SetAccountHeaderOrAvatar(ctx context.Context, mediaAttachmen
return nil
}
-func (a *accountDB) GetLocalAccountByUsername(ctx context.Context, username string) (*gtsmodel.Account, db.Error) {
- account := new(gtsmodel.Account)
-
- q := a.newAccountQ(account).
- Where("username = ?", strings.ToLower(username)). // usernames on our instance will always be lowercase
- WhereGroup(" AND ", whereEmptyOrNull("domain"))
-
- if err := q.Scan(ctx); err != nil {
- return nil, a.conn.ProcessError(err)
- }
- return account, nil
-}
-
func (a *accountDB) GetAccountFaves(ctx context.Context, accountID string) ([]*gtsmodel.StatusFave, db.Error) {
faves := new([]*gtsmodel.StatusFave)