feat: Add DeleteInstance endpoint (#9452)

This commit is contained in:
Marco Ardizzone
2025-04-24 11:56:58 +02:00
parent ceaa73734d
commit 606439a172
3 changed files with 245 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package instance
import (
"context"
"strings"
"github.com/zitadel/zitadel/internal/api/grpc/object/v2"
"github.com/zitadel/zitadel/internal/zerrors"
"github.com/zitadel/zitadel/pkg/grpc/instance/v2"
)
func (s *Server) DeleteInstance(ctx context.Context, request *instance.DeleteInstanceRequest) (*instance.DeleteInstanceResponse, error) {
instanceID := strings.TrimSpace(request.GetInstanceId())
if instanceID == "" {
return nil, zerrors.ThrowInvalidArgument(nil, "instance_id", "instance id must not be empty")
}
obj, err := s.command.RemoveInstance(ctx, instanceID)
if err != nil {
return nil, err
}
return &instance.DeleteInstanceResponse{
Details: object.DomainToDetailsPb(obj),
}, nil
}

View File

@@ -0,0 +1,55 @@
package instance
import (
"google.golang.org/grpc"
"github.com/zitadel/zitadel/internal/api/authz"
"github.com/zitadel/zitadel/internal/api/grpc/server"
"github.com/zitadel/zitadel/internal/command"
"github.com/zitadel/zitadel/internal/domain"
"github.com/zitadel/zitadel/internal/query"
"github.com/zitadel/zitadel/pkg/grpc/instance/v2"
)
var _ instance.InstanceServiceServer = (*Server)(nil)
type Server struct {
instance.UnimplementedInstanceServiceServer
command *command.Commands
query *query.Queries
checkPermission domain.PermissionCheck
}
type Config struct{}
func CreateServer(
command *command.Commands,
query *query.Queries,
checkPermission domain.PermissionCheck,
) *Server {
return &Server{
command: command,
query: query,
checkPermission: checkPermission,
}
}
func (s *Server) RegisterServer(grpcServer *grpc.Server) {
instance.RegisterInstanceServiceServer(grpcServer, s)
}
func (s *Server) AppName() string {
return instance.InstanceService_ServiceDesc.ServiceName
}
func (s *Server) MethodPrefix() string {
return instance.InstanceService_ServiceDesc.ServiceName
}
func (s *Server) AuthMethods() authz.MethodMapping {
return instance.InstanceService_AuthMethods
}
func (s *Server) RegisterGateway() server.RegisterGatewayFunc {
return instance.RegisterInstanceServiceHandler
}