mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-07 06:32:25 +00:00
feat: Add GetInstance endpoint (#9452)
This commit is contained in:
41
internal/api/grpc/instance/v2/converter.go
Normal file
41
internal/api/grpc/instance/v2/converter.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package instance
|
||||
|
||||
import (
|
||||
"github.com/zitadel/zitadel/cmd/build"
|
||||
"github.com/zitadel/zitadel/internal/api/grpc/object/v2"
|
||||
"github.com/zitadel/zitadel/internal/query"
|
||||
"github.com/zitadel/zitadel/pkg/grpc/instance/v2"
|
||||
)
|
||||
|
||||
func ToProtoObject(inst *query.Instance) *instance.Instance {
|
||||
return &instance.Instance{
|
||||
Id: inst.ID,
|
||||
Name: inst.Name,
|
||||
Domains: DomainsToPb(inst.Domains),
|
||||
Version: build.Version(),
|
||||
Details: object.ToViewDetailsPb(inst.Sequence, inst.CreationDate, inst.ChangeDate, inst.ID),
|
||||
}
|
||||
}
|
||||
|
||||
func DomainsToPb(domains []*query.InstanceDomain) []*instance.Domain {
|
||||
d := []*instance.Domain{}
|
||||
for _, dm := range domains {
|
||||
pbDomain := DomainToPb(dm)
|
||||
d = append(d, pbDomain)
|
||||
}
|
||||
return d
|
||||
}
|
||||
|
||||
func DomainToPb(d *query.InstanceDomain) *instance.Domain {
|
||||
return &instance.Domain{
|
||||
Domain: d.Domain,
|
||||
Primary: d.IsPrimary,
|
||||
Generated: d.IsGenerated,
|
||||
Details: object.ToViewDetailsPb(
|
||||
d.Sequence,
|
||||
d.CreationDate,
|
||||
d.ChangeDate,
|
||||
d.InstanceID,
|
||||
),
|
||||
}
|
||||
}
|
||||
19
internal/api/grpc/instance/v2/query.go
Normal file
19
internal/api/grpc/instance/v2/query.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package instance
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zitadel/zitadel/pkg/grpc/instance/v2"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
)
|
||||
|
||||
func (s *Server) GetInstance(ctx context.Context, _ *emptypb.Empty) (*instance.GetInstanceResponse, error) {
|
||||
inst, err := s.query.Instance(ctx, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &instance.GetInstanceResponse{
|
||||
Instance: ToProtoObject(inst),
|
||||
}, nil
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package object
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
|
||||
@@ -176,3 +177,22 @@ func MFAStateToPb(state domain.MFAState) user_pb.AuthFactorState {
|
||||
return user_pb.AuthFactorState_AUTH_FACTOR_STATE_UNSPECIFIED
|
||||
}
|
||||
}
|
||||
|
||||
func ToViewDetailsPb(
|
||||
sequence uint64,
|
||||
creationDate,
|
||||
changeDate time.Time,
|
||||
resourceOwner string,
|
||||
) *object.Details {
|
||||
details := &object.Details{
|
||||
Sequence: sequence,
|
||||
ResourceOwner: resourceOwner,
|
||||
}
|
||||
if !creationDate.IsZero() {
|
||||
details.CreationDate = timestamppb.New(creationDate)
|
||||
}
|
||||
if !changeDate.IsZero() {
|
||||
details.ChangeDate = timestamppb.New(changeDate)
|
||||
}
|
||||
return details
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user