aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-03-10 21:24:24 +0100
committerAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-03-10 21:24:24 +0100
commit8e157f56d600fc11b2204f7033e56db7017d5574 (patch)
treef8092c47d79eb3cde351c269ab962125931af9fb
parent698292db49387bbc056b811c9fac5670bf8607e1 (diff)
feat(db): delete copaing 48 hours after soft delete
-rw-r--r--Dockerfile6
-rw-r--r--docker-compose.yml2
-rw-r--r--main.go4
-rw-r--r--xp/member.go17
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