(stream string, req *StreamPurgeRequest, opts ...JSOpt)
| 1490 | } |
| 1491 | |
| 1492 | func (js *js) purgeStream(stream string, req *StreamPurgeRequest, opts ...JSOpt) error { |
| 1493 | o, cancel, err := getJSContextOpts(js.opts, opts...) |
| 1494 | if err != nil { |
| 1495 | return err |
| 1496 | } |
| 1497 | if cancel != nil { |
| 1498 | defer cancel() |
| 1499 | } |
| 1500 | |
| 1501 | var b []byte |
| 1502 | if req != nil { |
| 1503 | if b, err = json.Marshal(req); err != nil { |
| 1504 | return err |
| 1505 | } |
| 1506 | } |
| 1507 | |
| 1508 | psSubj := js.apiSubj(fmt.Sprintf(apiStreamPurgeT, stream)) |
| 1509 | r, err := js.apiRequestWithContext(o.ctx, psSubj, b) |
| 1510 | if err != nil { |
| 1511 | return err |
| 1512 | } |
| 1513 | var resp streamPurgeResponse |
| 1514 | if err := json.Unmarshal(r.Data, &resp); err != nil { |
| 1515 | return err |
| 1516 | } |
| 1517 | if resp.Error != nil { |
| 1518 | if errors.Is(resp.Error, ErrBadRequest) { |
| 1519 | return fmt.Errorf("%w: %s", ErrBadRequest, "invalid purge request body") |
| 1520 | } |
| 1521 | return resp.Error |
| 1522 | } |
| 1523 | return nil |
| 1524 | } |
| 1525 | |
| 1526 | // streamLister fetches pages of StreamInfo objects. This object is not safe |
| 1527 | // to use for multiple threads. |
no test coverage detected