main pico / pkg / apps / pastes / cron.go
Antonio Mika  ·  2026-10-10
 1package pastes
 2
 3import (
 4	"time"
 5)
 6
 7func deleteExpiredPosts(cfg *Config, dbpool DB) error {
 8	cfg.Logger.Info("checking for expired posts")
 9	posts, err := dbpool.FindExpiredPosts(cfg.Space)
10	if err != nil {
11		return err
12	}
13
14	postIds := []string{}
15	for _, post := range posts {
16		postIds = append(postIds, post.ID)
17	}
18
19	cfg.Logger.Info("deleting expired posts", "len", len(postIds))
20	err = dbpool.RemovePosts(postIds)
21	if err != nil {
22		return err
23	}
24
25	return nil
26}
27
28func CronDeleteExpiredPosts(cfg *Config, dbpool DB) {
29	for {
30		err := deleteExpiredPosts(cfg, dbpool)
31		if err != nil {
32			cfg.Logger.Error(err.Error())
33		}
34		time.Sleep(12 * time.Hour)
35	}
36}