signal.go 892 B

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