Initial commit: Open sourcing all of the Maple Open Technologies code.

This commit is contained in:
Bartlomiej Mika 2025-12-02 14:33:08 -05:00
commit 755d54a99d
2010 changed files with 448675 additions and 0 deletions

View file

@ -0,0 +1,65 @@
package tasks
import (
"context"
"time"
"go.uber.org/zap"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/ipanonymization"
)
// IPAnonymizationTask implements scheduler.Task for IP address anonymization
type IPAnonymizationTask struct {
service ipanonymization.AnonymizeOldIPsService
config *config.Config
logger *zap.Logger
}
// ProvideIPAnonymizationTask creates a new IP anonymization task for Wire DI
func ProvideIPAnonymizationTask(
service ipanonymization.AnonymizeOldIPsService,
cfg *config.Config,
logger *zap.Logger,
) *IPAnonymizationTask {
return &IPAnonymizationTask{
service: service,
config: cfg,
logger: logger.Named("IPAnonymizationTask"),
}
}
// Name returns the task name
func (t *IPAnonymizationTask) Name() string {
return "IP Anonymization"
}
// Schedule returns the cron schedule for this task
func (t *IPAnonymizationTask) Schedule() string {
return t.config.Security.IPAnonymizationSchedule
}
// Execute runs the IP anonymization process
func (t *IPAnonymizationTask) Execute(ctx context.Context) error {
if !t.config.Security.IPAnonymizationEnabled {
t.logger.Debug("IP anonymization is disabled")
return nil
}
startTime := time.Now()
t.logger.Info("Starting IP anonymization task")
// Run the anonymization process via the service
if err := t.service.Execute(ctx); err != nil {
t.logger.Error("IP anonymization task failed",
zap.Error(err),
zap.Duration("duration", time.Since(startTime)))
return err
}
t.logger.Info("IP anonymization task completed successfully",
zap.Duration("duration", time.Since(startTime)))
return nil
}