signal.go 871 B

12345678910111213141516171819202122232425262728293031323334
  1. package apiclient
  2. import (
  3. "context"
  4. "fmt"
  5. log "github.com/sirupsen/logrus"
  6. "github.com/crowdsecurity/crowdsec/pkg/models"
  7. "github.com/pkg/errors"
  8. )
  9. type SignalService service
  10. func (s *SignalService) Add(ctx context.Context, signals *models.AddSignalsRequest) (interface{}, *Response, error) {
  11. var response interface{}
  12. u := fmt.Sprintf("%s/signals", s.client.URLPrefix)
  13. req, err := s.client.NewRequest("POST", u, &signals)
  14. if err != nil {
  15. return nil, nil, errors.Wrap(err, "while building request")
  16. }
  17. resp, err := s.client.Do(ctx, req, &response)
  18. if err != nil {
  19. return nil, resp, errors.Wrap(err, "while performing request")
  20. }
  21. if resp.Response.StatusCode != 200 {
  22. log.Warnf("Signal push response : http %s", resp.Response.Status)
  23. } else {
  24. log.Debugf("Signal push response : http %s", resp.Response.Status)
  25. }
  26. return &response, resp, nil
  27. }