set revision header when key not exists (#105)
diff --git a/server/resource/v1/common.go b/server/resource/v1/common.go
index 9787cc7..2a5678c 100644
--- a/server/resource/v1/common.go
+++ b/server/resource/v1/common.go
@@ -238,17 +238,18 @@
if status != "" {
opts = append(opts, service.WithStatus(status))
}
- kv, err := service.KVService.List(rctx.Ctx, domain.(string), project, opts...)
+ rev, err := service.RevisionService.GetRevision(rctx.Ctx, domain.(string))
if err != nil {
- if err == service.ErrKeyNotExists {
- WriteErrResponse(rctx, http.StatusNotFound, err.Error(), common.ContentTypeText)
- return
- }
WriteErrResponse(rctx, http.StatusInternalServerError, err.Error(), common.ContentTypeText)
return
}
- rev, err := service.RevisionService.GetRevision(rctx.Ctx, domain.(string))
+ kv, err := service.KVService.List(rctx.Ctx, domain.(string), project, opts...)
if err != nil {
+ if err == service.ErrKeyNotExists {
+ rctx.ReadResponseWriter().Header().Set(common.HeaderRevision, strconv.FormatInt(rev, 10))
+ WriteErrResponse(rctx, http.StatusNotFound, err.Error(), common.ContentTypeText)
+ return
+ }
WriteErrResponse(rctx, http.StatusInternalServerError, err.Error(), common.ContentTypeText)
return
}