controller.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package v1
  2. import (
  3. "context"
  4. middlewares "github.com/crowdsecurity/crowdsec/pkg/apiserver/middlewares/v1"
  5. "github.com/crowdsecurity/crowdsec/pkg/csconfig"
  6. "github.com/crowdsecurity/crowdsec/pkg/csplugin"
  7. "github.com/crowdsecurity/crowdsec/pkg/database"
  8. "github.com/crowdsecurity/crowdsec/pkg/models"
  9. )
  10. type Controller struct {
  11. Ectx context.Context
  12. DBClient *database.Client
  13. APIKeyHeader string
  14. Middlewares *middlewares.Middlewares
  15. Profiles []*csconfig.ProfileCfg
  16. CAPIChan chan []*models.Alert
  17. PluginChannel chan csplugin.ProfileAlert
  18. }
  19. func New(dbClient *database.Client, ctx context.Context, profiles []*csconfig.ProfileCfg, capiChan chan []*models.Alert, pluginChannel chan csplugin.ProfileAlert) (*Controller, error) {
  20. var err error
  21. v1 := &Controller{
  22. Ectx: ctx,
  23. DBClient: dbClient,
  24. APIKeyHeader: middlewares.APIKeyHeader,
  25. Profiles: profiles,
  26. CAPIChan: capiChan,
  27. PluginChannel: pluginChannel,
  28. }
  29. v1.Middlewares, err = middlewares.NewMiddlewares(dbClient)
  30. if err != nil {
  31. return v1, err
  32. }
  33. return v1, nil
  34. }