summaryrefslogtreecommitdiff
path: root/internal/db/pg/mention.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-08-25 15:34:33 +0200
committerLibravatar GitHub <noreply@github.com>2021-08-25 15:34:33 +0200
commit2dc9fc1626507bb54417fc4a1920b847cafb27a2 (patch)
tree4ddeac479b923db38090aac8bd9209f3646851c1 /internal/db/pg/mention.go
parentManually approves followers (#146) (diff)
downloadgotosocial-2dc9fc1626507bb54417fc4a1920b847cafb27a2.tar.xz
Pg to bun (#148)
* start moving to bun * changing more stuff * more * and yet more * tests passing * seems stable now * more big changes * small fix * little fixes
Diffstat (limited to 'internal/db/pg/mention.go')
-rw-r--r--internal/db/pg/mention.go108
1 files changed, 0 insertions, 108 deletions
diff --git a/internal/db/pg/mention.go b/internal/db/pg/mention.go
deleted file mode 100644
index b31f07b67..000000000
--- a/internal/db/pg/mention.go
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- GoToSocial
- Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package pg
-
-import (
- "context"
-
- "github.com/go-pg/pg/v10"
- "github.com/go-pg/pg/v10/orm"
- "github.com/sirupsen/logrus"
- "github.com/superseriousbusiness/gotosocial/internal/cache"
- "github.com/superseriousbusiness/gotosocial/internal/config"
- "github.com/superseriousbusiness/gotosocial/internal/db"
- "github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
-)
-
-type mentionDB struct {
- config *config.Config
- conn *pg.DB
- log *logrus.Logger
- cancel context.CancelFunc
- cache cache.Cache
-}
-
-func (m *mentionDB) cacheMention(id string, mention *gtsmodel.Mention) {
- if m.cache == nil {
- m.cache = cache.New()
- }
-
- if err := m.cache.Store(id, mention); err != nil {
- m.log.Panicf("mentionDB: error storing in cache: %s", err)
- }
-}
-
-func (m *mentionDB) mentionCached(id string) (*gtsmodel.Mention, bool) {
- if m.cache == nil {
- m.cache = cache.New()
- return nil, false
- }
-
- mI, err := m.cache.Fetch(id)
- if err != nil || mI == nil {
- return nil, false
- }
-
- mention, ok := mI.(*gtsmodel.Mention)
- if !ok {
- m.log.Panicf("mentionDB: cached interface with key %s was not a mention", id)
- }
-
- return mention, true
-}
-
-func (m *mentionDB) newMentionQ(i interface{}) *orm.Query {
- return m.conn.Model(i).
- Relation("Status").
- Relation("OriginAccount").
- Relation("TargetAccount")
-}
-
-func (m *mentionDB) GetMention(id string) (*gtsmodel.Mention, db.Error) {
- if mention, cached := m.mentionCached(id); cached {
- return mention, nil
- }
-
- mention := &gtsmodel.Mention{}
-
- q := m.newMentionQ(mention).
- Where("mention.id = ?", id)
-
- err := processErrorResponse(q.Select())
-
- if err == nil && mention != nil {
- m.cacheMention(id, mention)
- }
-
- return mention, err
-}
-
-func (m *mentionDB) GetMentions(ids []string) ([]*gtsmodel.Mention, db.Error) {
- mentions := []*gtsmodel.Mention{}
-
- for _, i := range ids {
- mention, err := m.GetMention(i)
- if err != nil {
- return nil, processErrorResponse(err)
- }
- mentions = append(mentions, mention)
- }
-
- return mentions, nil
-}