feat(db): delete copaing 48 hours after soft delete

This commit is contained in:
Anhgelus Morhtuuzh 2025-03-10 21:24:24 +01:00
parent 698292db49
commit 8e157f56d6
Signed by: anhgelus
GPG key ID: CAD341EFA92DDDE5
4 changed files with 23 additions and 6 deletions

View file

@ -1,11 +1,11 @@
FROM golang:1.22-alpine
FROM docker.io/golang:1.22-alpine
WORKDIR /app
COPY . .
RUN apk add git
COPY . .
RUN go mod tidy && go build -o app .
ENV TOKEN=""

View file

@ -9,7 +9,7 @@ services:
- redis
- postgres
redis:
image: redis:alpine
image: docker.io/redis:alpine
postgres:
image: postgres:alpine
env_file:

View file

@ -19,8 +19,8 @@ var (
Version = gokord.Version{
Major: 2,
Minor: 3,
Patch: 4,
} // git version: 0.3.4 (it's the v2 of the bot)
Patch: 5,
} // git version: 0.3.5 (it's the v2 of the bot)
)
func init() {

View file

@ -204,6 +204,23 @@ func (c *Copaing) Reset() {
gokord.DB.Where("guild_id = ? AND discord_id = ?", c.GuildID, c.DiscordID).Delete(c)
}
func (c *Copaing) AfterDelete(db *gorm.DB) error {
id := c.ID
dID := c.DiscordID
gID := c.GuildID
utils.NewTimer(48*time.Hour, func(stop chan struct{}) {
if err := db.Unscoped().Where("id = ?", id).Delete(c).Error; err != nil {
utils.SendAlert(
"xp/member.go - Removing copaing from database", err.Error(),
"discord_id", dID,
"guild_id", gID,
)
}
stop <- struct{}{}
})
return nil
}
func getRedisClient() (*redis.Client, error) {
if redisClient == nil {
var err error