From 8e157f56d600fc11b2204f7033e56db7017d5574 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 10 Mar 2025 21:24:24 +0100 Subject: [PATCH] feat(db): delete copaing 48 hours after soft delete --- Dockerfile | 6 +++--- docker-compose.yml | 2 +- main.go | 4 ++-- xp/member.go | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index b56e430..f0e1660 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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="" diff --git a/docker-compose.yml b/docker-compose.yml index 974a273..e6b9b89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: - redis - postgres redis: - image: redis:alpine + image: docker.io/redis:alpine postgres: image: postgres:alpine env_file: diff --git a/main.go b/main.go index 000179c..4588f3b 100644 --- a/main.go +++ b/main.go @@ -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() { diff --git a/xp/member.go b/xp/member.go index 016eb5f..2f8d074 100644 --- a/xp/member.go +++ b/xp/member.go @@ -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