mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Implement Report database model and utility functions (#1310)
* implement report database model * implement report cache + config changes * implement report database functions * report uri / regex functions * update envparsing test * remove unnecessary uri index * remove unused function + cache lookup * process error when storing report
This commit is contained in:
24
internal/cache/gts.go
vendored
24
internal/cache/gts.go
vendored
@@ -57,6 +57,9 @@ type GTSCaches interface {
|
||||
// Notification provides access to the gtsmodel Notification database cache.
|
||||
Notification() *result.Cache[*gtsmodel.Notification]
|
||||
|
||||
// Report provides access to the gtsmodel Report database cache.
|
||||
Report() *result.Cache[*gtsmodel.Report]
|
||||
|
||||
// Status provides access to the gtsmodel Status database cache.
|
||||
Status() *result.Cache[*gtsmodel.Status]
|
||||
|
||||
@@ -80,6 +83,7 @@ type gtsCaches struct {
|
||||
emojiCategory *result.Cache[*gtsmodel.EmojiCategory]
|
||||
mention *result.Cache[*gtsmodel.Mention]
|
||||
notification *result.Cache[*gtsmodel.Notification]
|
||||
report *result.Cache[*gtsmodel.Report]
|
||||
status *result.Cache[*gtsmodel.Status]
|
||||
tombstone *result.Cache[*gtsmodel.Tombstone]
|
||||
user *result.Cache[*gtsmodel.User]
|
||||
@@ -93,6 +97,7 @@ func (c *gtsCaches) Init() {
|
||||
c.initEmojiCategory()
|
||||
c.initMention()
|
||||
c.initNotification()
|
||||
c.initReport()
|
||||
c.initStatus()
|
||||
c.initTombstone()
|
||||
c.initUser()
|
||||
@@ -120,6 +125,9 @@ func (c *gtsCaches) Start() {
|
||||
tryUntil("starting gtsmodel.Notification cache", 5, func() bool {
|
||||
return c.notification.Start(config.GetCacheGTSNotificationSweepFreq())
|
||||
})
|
||||
tryUntil("starting gtsmodel.Report cache", 5, func() bool {
|
||||
return c.report.Start(config.GetCacheGTSReportSweepFreq())
|
||||
})
|
||||
tryUntil("starting gtsmodel.Status cache", 5, func() bool {
|
||||
return c.status.Start(config.GetCacheGTSStatusSweepFreq())
|
||||
})
|
||||
@@ -139,6 +147,7 @@ func (c *gtsCaches) Stop() {
|
||||
tryUntil("stopping gtsmodel.EmojiCategory cache", 5, c.emojiCategory.Stop)
|
||||
tryUntil("stopping gtsmodel.Mention cache", 5, c.mention.Stop)
|
||||
tryUntil("stopping gtsmodel.Notification cache", 5, c.notification.Stop)
|
||||
tryUntil("stopping gtsmodel.Report cache", 5, c.report.Stop)
|
||||
tryUntil("stopping gtsmodel.Status cache", 5, c.status.Stop)
|
||||
tryUntil("stopping gtsmodel.Tombstone cache", 5, c.tombstone.Stop)
|
||||
tryUntil("stopping gtsmodel.User cache", 5, c.user.Stop)
|
||||
@@ -172,6 +181,10 @@ func (c *gtsCaches) Notification() *result.Cache[*gtsmodel.Notification] {
|
||||
return c.notification
|
||||
}
|
||||
|
||||
func (c *gtsCaches) Report() *result.Cache[*gtsmodel.Report] {
|
||||
return c.report
|
||||
}
|
||||
|
||||
func (c *gtsCaches) Status() *result.Cache[*gtsmodel.Status] {
|
||||
return c.status
|
||||
}
|
||||
@@ -267,6 +280,17 @@ func (c *gtsCaches) initNotification() {
|
||||
c.notification.SetTTL(config.GetCacheGTSNotificationTTL(), true)
|
||||
}
|
||||
|
||||
func (c *gtsCaches) initReport() {
|
||||
c.report = result.New([]result.Lookup{
|
||||
{Name: "ID"},
|
||||
}, func(r1 *gtsmodel.Report) *gtsmodel.Report {
|
||||
r2 := new(gtsmodel.Report)
|
||||
*r2 = *r1
|
||||
return r2
|
||||
}, config.GetCacheGTSReportMaxSize())
|
||||
c.report.SetTTL(config.GetCacheGTSReportTTL(), true)
|
||||
}
|
||||
|
||||
func (c *gtsCaches) initStatus() {
|
||||
c.status = result.New([]result.Lookup{
|
||||
{Name: "ID"},
|
||||
|
Reference in New Issue
Block a user