Initial commit: Open sourcing all of the Maple Open Technologies code.
This commit is contained in:
commit
755d54a99d
2010 changed files with 448675 additions and 0 deletions
|
|
@ -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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue