github.com/crowdsecurity/crowdsec@v1.6.1/pkg/apiclient/decisions_sync_service.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 DecisionDeleteService service 14 15 // DecisionDeleteService purposely reuses AddSignalsRequestItemDecisions model 16 func (d *DecisionDeleteService) Add(ctx context.Context, deletedDecisions *models.DecisionsDeleteRequest) (interface{}, *Response, error) { 17 u := fmt.Sprintf("%s/decisions/delete", d.client.URLPrefix) 18 19 req, err := d.client.NewRequest(http.MethodPost, u, &deletedDecisions) 20 if err != nil { 21 return nil, nil, fmt.Errorf("while building request: %w", err) 22 } 23 24 var response interface{} 25 26 resp, err := d.client.Do(ctx, req, &response) 27 if err != nil { 28 return nil, resp, fmt.Errorf("while performing request: %w", err) 29 } 30 31 if resp.Response.StatusCode != http.StatusOK { 32 log.Warnf("Decisions delete response: http %s", resp.Response.Status) 33 } else { 34 log.Debugf("Decisions delete response: http %s", resp.Response.Status) 35 } 36 37 return &response, resp, nil 38 }