More data delete endpoints (#363)

This commit is contained in:
Dominic Wong
2022-02-03 17:32:08 +00:00
committed by GitHub
parent ba77f7b2f4
commit 0663f196d5
9 changed files with 144 additions and 14 deletions

View File

@@ -21,6 +21,8 @@ import (
"github.com/micro/micro/v3/service/logger"
"github.com/micro/micro/v3/service/store"
img "github.com/micro/services/image/proto"
pauth "github.com/micro/services/pkg/auth"
adminpb "github.com/micro/services/pkg/service/proto"
"github.com/micro/services/pkg/tenant"
)
@@ -320,3 +322,32 @@ func (e *Image) Delete(ctx context.Context, request *img.DeleteRequest, response
}
return nil
}
func (e *Image) DeleteData(ctx context.Context, request *adminpb.DeleteDataRequest, response *adminpb.DeleteDataResponse) error {
method := "admin.DeleteData"
_, err := pauth.VerifyMicroAdmin(ctx, method)
if err != nil {
return err
}
if len(request.TenantId) < 10 { // deliberate length check so we don't delete all the things
return merrors.BadRequest(method, "Missing tenant ID")
}
path := fmt.Sprintf("%v/%v", pathPrefix, request.TenantId)
keys, err := store.DefaultBlobStore.List(store.BlobListPrefix(path))
if err != nil {
return err
}
for _, key := range keys {
err = store.DefaultBlobStore.Delete(key)
if err != nil {
return err
}
}
logger.Infof("Deleted %d keys for %s", len(keys), request.TenantId)
return nil
}