mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-19 06:02:52 +00:00
# Which Problems Are Solved This PR implements the endpoints listed in https://github.com/zitadel/zitadel/issues/10444 . # How the Problems Are Solved The implementation follows the same pattern as the Instance one. The `Add` and `Remove` are implementing the `Commander` interface, while `List` Domains endpoints are implementing the `Querier` interace. The PR adds also some forgotten calls to the relational logic for the Instance API. The commits are identifiable by the label `instance:` prepended to them. This is the complete list: bafce01b0 , 6fe7257ab , e27bc9c34 , 8133ede73 , fde667953 , a3e1135ed , ee1a6f9c1 # Additional Context - Closes #10444 --------- Co-authored-by: Elio Bischof <[email protected]> Co-authored-by: Lebogang Phoshoko <[email protected]> Co-authored-by: Wim Van Laer <[email protected]> Co-authored-by: Max Peintner <[email protected]> Co-authored-by: Gayathri Vijayan <[email protected]>
192 lines
6.8 KiB
Go
192 lines
6.8 KiB
Go
package convert
|
|
|
|
import (
|
|
"google.golang.org/protobuf/types/known/timestamppb"
|
|
|
|
"github.com/zitadel/zitadel/backend/v3/domain"
|
|
filter_v2 "github.com/zitadel/zitadel/pkg/grpc/filter/v2"
|
|
instance_v2 "github.com/zitadel/zitadel/pkg/grpc/instance/v2"
|
|
instance_v2beta "github.com/zitadel/zitadel/pkg/grpc/instance/v2beta"
|
|
)
|
|
|
|
/*
|
|
* Domain Model to GRPC v2Beta
|
|
*/
|
|
|
|
func DomainInstanceDomainListModelToGRPCBetaResponse(dms []*domain.InstanceDomain) []*instance_v2beta.Domain {
|
|
toReturn := make([]*instance_v2beta.Domain, len(dms))
|
|
for i, domain := range dms {
|
|
isGenerated := domain.IsGenerated != nil && *domain.IsGenerated
|
|
isPrimary := domain.IsPrimary != nil && *domain.IsPrimary
|
|
toReturn[i] = &instance_v2beta.Domain{
|
|
InstanceId: domain.InstanceID,
|
|
CreationDate: timestamppb.New(domain.CreatedAt),
|
|
Domain: domain.Domain,
|
|
Primary: isPrimary,
|
|
Generated: isGenerated,
|
|
}
|
|
}
|
|
|
|
return toReturn
|
|
}
|
|
|
|
func TrustedDomainInstanceDomainListModelToGRPCBetaResponse(dms []*domain.InstanceDomain) []*instance_v2beta.TrustedDomain {
|
|
toReturn := make([]*instance_v2beta.TrustedDomain, len(dms))
|
|
for i, domain := range dms {
|
|
toReturn[i] = &instance_v2beta.TrustedDomain{
|
|
InstanceId: domain.InstanceID,
|
|
CreationDate: timestamppb.New(domain.CreatedAt),
|
|
Domain: domain.Domain,
|
|
}
|
|
}
|
|
|
|
return toReturn
|
|
}
|
|
|
|
/*
|
|
* Domain Model to GRPC v2
|
|
*/
|
|
|
|
func DomainInstanceDomainListModelToGRPCResponse(dms []*domain.InstanceDomain) []*instance_v2.CustomDomain {
|
|
toReturn := make([]*instance_v2.CustomDomain, len(dms))
|
|
for i, domain := range dms {
|
|
isGenerated := domain.IsGenerated != nil && *domain.IsGenerated
|
|
isPrimary := domain.IsPrimary != nil && *domain.IsPrimary
|
|
toReturn[i] = &instance_v2.CustomDomain{
|
|
InstanceId: domain.InstanceID,
|
|
CreationDate: timestamppb.New(domain.CreatedAt),
|
|
Domain: domain.Domain,
|
|
Primary: isPrimary,
|
|
Generated: isGenerated,
|
|
}
|
|
}
|
|
|
|
return toReturn
|
|
}
|
|
|
|
func TrustedDomainInstanceDomainListModelToGRPCResponse(dms []*domain.InstanceDomain) []*instance_v2.TrustedDomain {
|
|
toReturn := make([]*instance_v2.TrustedDomain, len(dms))
|
|
for i, domain := range dms {
|
|
toReturn[i] = &instance_v2.TrustedDomain{
|
|
InstanceId: domain.InstanceID,
|
|
CreationDate: timestamppb.New(domain.CreatedAt),
|
|
Domain: domain.Domain,
|
|
}
|
|
}
|
|
|
|
return toReturn
|
|
}
|
|
|
|
/*
|
|
* GRPC v2Beta Requests to GRPC v2
|
|
*/
|
|
|
|
func ListCustomDomainsBetaRequestToV2Request(in *instance_v2beta.ListCustomDomainsRequest) *instance_v2.ListCustomDomainsRequest {
|
|
return &instance_v2.ListCustomDomainsRequest{
|
|
InstanceId: in.GetInstanceId(),
|
|
Pagination: &filter_v2.PaginationRequest{
|
|
Offset: in.GetPagination().GetOffset(),
|
|
Limit: in.GetPagination().GetLimit(),
|
|
Asc: in.GetPagination().GetAsc(),
|
|
},
|
|
SortingColumn: listCustomDomainsBetaSortingColToV2Request(in.GetSortingColumn()),
|
|
Filters: listCustomDomainsQueriesToV2Request(in.GetQueries()),
|
|
}
|
|
}
|
|
|
|
func listCustomDomainsBetaSortingColToV2Request(domainFieldName instance_v2beta.DomainFieldName) instance_v2.DomainFieldName {
|
|
switch domainFieldName {
|
|
case instance_v2beta.DomainFieldName_DOMAIN_FIELD_NAME_CREATION_DATE:
|
|
return instance_v2.DomainFieldName_DOMAIN_FIELD_NAME_CREATION_DATE
|
|
case instance_v2beta.DomainFieldName_DOMAIN_FIELD_NAME_DOMAIN:
|
|
return instance_v2.DomainFieldName_DOMAIN_FIELD_NAME_DOMAIN
|
|
case instance_v2beta.DomainFieldName_DOMAIN_FIELD_NAME_GENERATED:
|
|
return instance_v2.DomainFieldName_DOMAIN_FIELD_NAME_GENERATED
|
|
case instance_v2beta.DomainFieldName_DOMAIN_FIELD_NAME_PRIMARY:
|
|
return instance_v2.DomainFieldName_DOMAIN_FIELD_NAME_PRIMARY
|
|
case instance_v2beta.DomainFieldName_DOMAIN_FIELD_NAME_UNSPECIFIED:
|
|
fallthrough
|
|
default:
|
|
return instance_v2.DomainFieldName_DOMAIN_FIELD_NAME_UNSPECIFIED
|
|
}
|
|
}
|
|
|
|
func listCustomDomainsQueriesToV2Request(domainSearchQuery []*instance_v2beta.DomainSearchQuery) []*instance_v2.CustomDomainFilter {
|
|
toReturn := make([]*instance_v2.CustomDomainFilter, len(domainSearchQuery))
|
|
|
|
for i, query := range domainSearchQuery {
|
|
switch assertedType := query.GetQuery().(type) {
|
|
case *instance_v2beta.DomainSearchQuery_DomainQuery:
|
|
filter := &instance_v2.CustomDomainFilter_DomainFilter{
|
|
DomainFilter: &instance_v2.DomainFilter{
|
|
Domain: assertedType.DomainQuery.GetDomain(),
|
|
Method: assertedType.DomainQuery.GetMethod(),
|
|
},
|
|
}
|
|
toReturn[i] = &instance_v2.CustomDomainFilter{
|
|
Filter: filter,
|
|
}
|
|
case *instance_v2beta.DomainSearchQuery_GeneratedQuery:
|
|
filter := &instance_v2.CustomDomainFilter_GeneratedFilter{
|
|
GeneratedFilter: assertedType.GeneratedQuery.GetGenerated(),
|
|
}
|
|
toReturn[i] = &instance_v2.CustomDomainFilter{
|
|
Filter: filter,
|
|
}
|
|
case *instance_v2beta.DomainSearchQuery_PrimaryQuery:
|
|
filter := &instance_v2.CustomDomainFilter_PrimaryFilter{
|
|
PrimaryFilter: assertedType.PrimaryQuery.GetPrimary(),
|
|
}
|
|
toReturn[i] = &instance_v2.CustomDomainFilter{
|
|
Filter: filter,
|
|
}
|
|
}
|
|
}
|
|
return toReturn
|
|
}
|
|
|
|
func ListTrustedDomainsBetaRequestToV2Request(in *instance_v2beta.ListTrustedDomainsRequest) *instance_v2.ListTrustedDomainsRequest {
|
|
return &instance_v2.ListTrustedDomainsRequest{
|
|
InstanceId: in.GetInstanceId(),
|
|
Pagination: &filter_v2.PaginationRequest{
|
|
Offset: in.GetPagination().GetOffset(),
|
|
Limit: in.GetPagination().GetLimit(),
|
|
Asc: in.GetPagination().GetAsc(),
|
|
},
|
|
SortingColumn: listTrustedDomainsBetaSortingColToV2Request(in.GetSortingColumn()),
|
|
Filters: listTrustedDomainsQueriesToV2Request(in.GetQueries()),
|
|
}
|
|
}
|
|
|
|
func listTrustedDomainsBetaSortingColToV2Request(domainFieldName instance_v2beta.TrustedDomainFieldName) instance_v2.TrustedDomainFieldName {
|
|
switch domainFieldName {
|
|
case instance_v2beta.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_CREATION_DATE:
|
|
return instance_v2.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_CREATION_DATE
|
|
case instance_v2beta.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_DOMAIN:
|
|
return instance_v2.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_DOMAIN
|
|
case instance_v2beta.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_UNSPECIFIED:
|
|
fallthrough
|
|
default:
|
|
return instance_v2.TrustedDomainFieldName_TRUSTED_DOMAIN_FIELD_NAME_UNSPECIFIED
|
|
}
|
|
}
|
|
|
|
func listTrustedDomainsQueriesToV2Request(domainSearchQuery []*instance_v2beta.TrustedDomainSearchQuery) []*instance_v2.TrustedDomainFilter {
|
|
toReturn := make([]*instance_v2.TrustedDomainFilter, len(domainSearchQuery))
|
|
|
|
for i, query := range domainSearchQuery {
|
|
if assertedType, ok := query.GetQuery().(*instance_v2beta.TrustedDomainSearchQuery_DomainQuery); ok {
|
|
filter := &instance_v2.TrustedDomainFilter_DomainFilter{
|
|
DomainFilter: &instance_v2.DomainFilter{
|
|
Domain: assertedType.DomainQuery.GetDomain(),
|
|
Method: assertedType.DomainQuery.GetMethod(),
|
|
},
|
|
}
|
|
toReturn[i] = &instance_v2.TrustedDomainFilter{
|
|
Filter: filter,
|
|
}
|
|
}
|
|
}
|
|
return toReturn
|
|
}
|