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