Skip to content

Commit 9bd6625

Browse files
committed
fix: address second round of PR #224 review feedback
- Include qualified name in findPublishedRestService NotFound error - Propagate backend errors in CREATE OR REPLACE REST service lookup - Distinguish backend errors from not-found in import/export mapping describe and drop
1 parent cad1053 commit 9bd6625

3 files changed

Lines changed: 24 additions & 6 deletions

File tree

mdl/executor/cmd_export_mappings.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ func (e *Executor) describeExportMapping(name ast.QualifiedName) error {
8484

8585
em, err := e.reader.GetExportMappingByQualifiedName(name.Module, name.Name)
8686
if err != nil {
87-
return mdlerrors.NewNotFoundMsg("export mapping", name.String(), err.Error())
87+
return mdlerrors.NewBackend("get export mapping "+name.String(), err)
88+
}
89+
if em == nil {
90+
return mdlerrors.NewNotFound("export mapping", name.String())
8891
}
8992

9093
if em.Documentation != "" {
@@ -363,7 +366,10 @@ func (e *Executor) execDropExportMapping(s *ast.DropExportMappingStmt) error {
363366

364367
em, err := e.reader.GetExportMappingByQualifiedName(s.Name.Module, s.Name.Name)
365368
if err != nil {
366-
return mdlerrors.NewNotFoundMsg("export mapping", s.Name.String(), err.Error())
369+
return mdlerrors.NewBackend("get export mapping "+s.Name.String(), err)
370+
}
371+
if em == nil {
372+
return mdlerrors.NewNotFound("export mapping", s.Name.String())
367373
}
368374

369375
if err := e.writer.DeleteExportMapping(em.ID); err != nil {

mdl/executor/cmd_import_mappings.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ func (e *Executor) describeImportMapping(name ast.QualifiedName) error {
8484

8585
im, err := e.reader.GetImportMappingByQualifiedName(name.Module, name.Name)
8686
if err != nil {
87-
return mdlerrors.NewNotFoundMsg("import mapping", name.String(), err.Error())
87+
return mdlerrors.NewBackend("get import mapping "+name.String(), err)
88+
}
89+
if im == nil {
90+
return mdlerrors.NewNotFound("import mapping", name.String())
8891
}
8992

9093
if im.Documentation != "" {
@@ -377,7 +380,10 @@ func (e *Executor) execDropImportMapping(s *ast.DropImportMappingStmt) error {
377380

378381
im, err := e.reader.GetImportMappingByQualifiedName(s.Name.Module, s.Name.Name)
379382
if err != nil {
380-
return mdlerrors.NewNotFoundMsg("import mapping", s.Name.String(), err.Error())
383+
return mdlerrors.NewBackend("get import mapping "+s.Name.String(), err)
384+
}
385+
if im == nil {
386+
return mdlerrors.NewNotFound("import mapping", s.Name.String())
381387
}
382388

383389
if err := e.writer.DeleteImportMapping(im.ID); err != nil {

mdl/executor/cmd_published_rest.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package executor
44

55
import (
6+
"errors"
67
"fmt"
78
"sort"
89
"strings"
@@ -171,7 +172,7 @@ func (e *Executor) findPublishedRestService(moduleName, name string) (*model.Pub
171172
return svc, nil
172173
}
173174
}
174-
return nil, mdlerrors.NewNotFoundMsg("published REST service", "", "not found")
175+
return nil, mdlerrors.NewNotFound("published REST service", moduleName+"."+name)
175176
}
176177

177178
// execCreatePublishedRestService creates a new published REST service.
@@ -188,7 +189,12 @@ func (e *Executor) execCreatePublishedRestService(s *ast.CreatePublishedRestServ
188189

189190
// Handle CREATE OR REPLACE — delete existing if found
190191
if s.CreateOrReplace {
191-
if existing, _ := e.findPublishedRestService(s.Name.Module, s.Name.Name); existing != nil {
192+
existing, findErr := e.findPublishedRestService(s.Name.Module, s.Name.Name)
193+
var nfe *mdlerrors.NotFoundError
194+
if findErr != nil && !errors.As(findErr, &nfe) {
195+
return mdlerrors.NewBackend("find existing service", findErr)
196+
}
197+
if existing != nil {
192198
if err := e.writer.DeletePublishedRestService(existing.ID); err != nil {
193199
return mdlerrors.NewBackend("replace existing service", err)
194200
}

0 commit comments

Comments
 (0)