Skip to content

Commit a77b905

Browse files
fix: Correct code returned when deleting non-existent dataset
1 parent 46b5361 commit a77b905

File tree

3 files changed

+3
-11
lines changed

3 files changed

+3
-11
lines changed

api/dataset.go

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ import (
2020
)
2121

2222
var (
23-
// errors that should return a 204 status
24-
datasetsNoContent = map[error]bool{
25-
errs.ErrDeleteDatasetNotFound: true,
26-
}
27-
2823
// errors that should return a 400 status
2924
datasetsBadRequest = map[error]bool{
3025
errs.ErrAddUpdateDatasetBadRequest: true,
@@ -705,8 +700,8 @@ func (api *DatasetAPI) deleteDataset(w http.ResponseWriter, r *http.Request) {
705700
err = func() error {
706701
currentDataset, err := api.dataStore.Backend.GetDataset(ctx, datasetID)
707702
if err == errs.ErrDatasetNotFound {
708-
log.Info(ctx, "cannot delete dataset, it does not exist", logData)
709-
return errs.ErrDeleteDatasetNotFound
703+
log.Info(ctx, "cannot delete dataset that does not exist", logData)
704+
return err
710705
}
711706
if err != nil {
712707
log.Error(ctx, "failed to run query for existing dataset", err, logData)
@@ -828,8 +823,6 @@ func handleDatasetAPIErr(ctx context.Context, err error, w http.ResponseWriter,
828823
switch {
829824
case datasetsForbidden[err]:
830825
status = http.StatusForbidden
831-
case datasetsNoContent[err]:
832-
status = http.StatusNoContent
833826
case datasetsBadRequest[err], strings.HasPrefix(err.Error(), "invalid fields:"):
834827
status = http.StatusBadRequest
835828
case datasetsConflict[err]:

api/dataset_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3009,7 +3009,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) {
30093009
api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, authorisationMock, SearchContentUpdatedProducer{}, &cloudflareMocks.ClienterMock{}, &applicationMocks.AuditServiceMock{})
30103010
api.Router.ServeHTTP(w, r)
30113011

3012-
So(w.Code, ShouldEqual, http.StatusNoContent)
3012+
So(w.Code, ShouldEqual, http.StatusNotFound)
30133013
So(len(mockedDataStore.GetDatasetCalls()), ShouldEqual, 1)
30143014
So(len(mockedDataStore.GetEditionsCalls()), ShouldEqual, 0)
30153015
So(len(mockedDataStore.DeleteEditionCalls()), ShouldEqual, 0)

apierrors/errors.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ var (
2222
ErrAddUpdateDatasetBadRequest = errors.New("failed to parse json body")
2323
ErrConflictUpdatingInstance = errors.New("conflict updating instance resource")
2424
ErrDatasetNotFound = errors.New("dataset not found")
25-
ErrDeleteDatasetNotFound = errors.New("delete dataset not found")
2625
ErrDeletePublishedDatasetForbidden = errors.New("a published dataset cannot be deleted")
2726
ErrDeletePublishedVersionForbidden = errors.New("a published version cannot be deleted")
2827
ErrDimensionNodeNotFound = errors.New("dimension node not found")

0 commit comments

Comments
 (0)