mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
Delete data part 1 (#360)
This commit is contained in:
29
cache/handler/cache.go
vendored
29
cache/handler/cache.go
vendored
@@ -9,7 +9,10 @@ import (
|
||||
"github.com/micro/micro/v3/service/errors"
|
||||
log "github.com/micro/micro/v3/service/logger"
|
||||
pb "github.com/micro/services/cache/proto"
|
||||
pauth "github.com/micro/services/pkg/auth"
|
||||
"github.com/micro/services/pkg/cache"
|
||||
adminpb "github.com/micro/services/pkg/service/proto"
|
||||
"github.com/micro/services/pkg/tenant"
|
||||
)
|
||||
|
||||
type Cache struct{}
|
||||
@@ -133,3 +136,29 @@ func (c *Cache) ListKeys(ctx context.Context, req *pb.ListKeysRequest, rsp *pb.L
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Cache) 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) == 0 {
|
||||
return errors.BadRequest(method, "Missing tenant ID")
|
||||
}
|
||||
|
||||
split := strings.Split(request.TenantId, "/")
|
||||
tctx := tenant.NewContext(split[1], split[0], split[1])
|
||||
keys, err := cache.Context(tctx).ListKeys()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, k := range keys {
|
||||
if err := cache.Context(tctx).Delete(k); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
log.Infof("Deleted %d keys for %s", len(keys), request.TenantId)
|
||||
return nil
|
||||
}
|
||||
|
||||
5
cache/main.go
vendored
5
cache/main.go
vendored
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"github.com/micro/services/cache/handler"
|
||||
pb "github.com/micro/services/cache/proto"
|
||||
adminpb "github.com/micro/services/pkg/service/proto"
|
||||
"github.com/micro/services/pkg/tracing"
|
||||
|
||||
"github.com/micro/micro/v3/service"
|
||||
@@ -17,7 +18,9 @@ func main() {
|
||||
)
|
||||
|
||||
// Register handler
|
||||
pb.RegisterCacheHandler(srv.Server(), new(handler.Cache))
|
||||
c := new(handler.Cache)
|
||||
pb.RegisterCacheHandler(srv.Server(), c)
|
||||
adminpb.RegisterAdminHandler(srv.Server(), c)
|
||||
|
||||
traceCloser := tracing.SetupOpentracing("cache")
|
||||
defer traceCloser.Close()
|
||||
|
||||
Reference in New Issue
Block a user