mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-25 22:09:15 +02:00
37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package feed
|
|
|
|
import (
|
|
"database/sql"
|
|
"github.com/pocketbase/dbx"
|
|
"github.com/pocketbase/pocketbase/daos"
|
|
database "htwkalender/service/db"
|
|
localTime "htwkalender/service/functions/time"
|
|
"log/slog"
|
|
)
|
|
|
|
func ClearFeeds(db *daos.Dao, months int, clock localTime.Clock) {
|
|
feeds, err := database.GetAllFeeds(db)
|
|
if err != nil {
|
|
slog.Error("CleanFeeds: failed to get all feeds", err)
|
|
return
|
|
}
|
|
for _, feed := range feeds {
|
|
// if retrieved time is older than a half year delete feed
|
|
now := clock.Now()
|
|
feedRetrievedTime := feed.Retrieved.Time()
|
|
timeShift := now.AddDate(0, -months, 0)
|
|
|
|
if feedRetrievedTime.Before(timeShift) {
|
|
// delete feed
|
|
var sqlResult sql.Result
|
|
sqlResult, err = db.DB().Delete("feeds", dbx.NewExp("id = {:id}", dbx.Params{"id": feed.GetId()})).Execute()
|
|
if err != nil {
|
|
slog.Error("CleanFeeds: delete feed "+feed.GetId()+" failed", err)
|
|
slog.Error("SQL Result: ", sqlResult)
|
|
} else {
|
|
slog.Info("CleanFeeds: delete feed " + feed.GetId() + " successful")
|
|
}
|
|
}
|
|
}
|
|
}
|