2021-08-09 08:01:20 +02:00
|
|
|
package metadata
|
|
|
|
|
|
|
|
import (
|
2022-04-27 01:01:45 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/api/grpc/object"
|
|
|
|
"github.com/zitadel/zitadel/internal/query"
|
2023-12-08 16:30:55 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/zerrors"
|
2022-04-27 01:01:45 +02:00
|
|
|
meta_pb "github.com/zitadel/zitadel/pkg/grpc/metadata"
|
2021-08-09 08:01:20 +02:00
|
|
|
)
|
|
|
|
|
2022-09-20 15:32:09 +01:00
|
|
|
func UserMetadataListToPb(dataList []*query.UserMetadata) []*meta_pb.Metadata {
|
2021-08-09 08:01:20 +02:00
|
|
|
mds := make([]*meta_pb.Metadata, len(dataList))
|
|
|
|
for i, data := range dataList {
|
2022-09-20 15:32:09 +01:00
|
|
|
mds[i] = UserMetadataToPb(data)
|
2021-08-09 08:01:20 +02:00
|
|
|
}
|
|
|
|
return mds
|
|
|
|
}
|
|
|
|
|
2022-09-20 15:32:09 +01:00
|
|
|
func UserMetadataToPb(data *query.UserMetadata) *meta_pb.Metadata {
|
|
|
|
return &meta_pb.Metadata{
|
|
|
|
Key: data.Key,
|
|
|
|
Value: data.Value,
|
|
|
|
Details: object.ToViewDetailsPb(
|
|
|
|
data.Sequence,
|
|
|
|
data.CreationDate,
|
|
|
|
data.ChangeDate,
|
|
|
|
data.ResourceOwner,
|
|
|
|
),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgMetadataListToPb(dataList []*query.OrgMetadata) []*meta_pb.Metadata {
|
|
|
|
mds := make([]*meta_pb.Metadata, len(dataList))
|
|
|
|
for i, data := range dataList {
|
|
|
|
mds[i] = OrgMetadataToPb(data)
|
|
|
|
}
|
|
|
|
return mds
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgMetadataToPb(data *query.OrgMetadata) *meta_pb.Metadata {
|
2021-08-09 08:01:20 +02:00
|
|
|
return &meta_pb.Metadata{
|
|
|
|
Key: data.Key,
|
|
|
|
Value: data.Value,
|
|
|
|
Details: object.ToViewDetailsPb(
|
|
|
|
data.Sequence,
|
|
|
|
data.CreationDate,
|
|
|
|
data.ChangeDate,
|
|
|
|
data.ResourceOwner,
|
|
|
|
),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-20 15:40:25 +01:00
|
|
|
func MetadataQueriesToQuery(queries []*meta_pb.MetadataQuery) (_ []query.SearchQuery, err error) {
|
|
|
|
q := make([]query.SearchQuery, len(queries))
|
2021-08-09 08:01:20 +02:00
|
|
|
for i, query := range queries {
|
2022-01-20 15:40:25 +01:00
|
|
|
q[i], err = MetadataQueryToQuery(query)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-08-09 08:01:20 +02:00
|
|
|
}
|
2022-01-20 15:40:25 +01:00
|
|
|
return q, nil
|
2021-08-09 08:01:20 +02:00
|
|
|
}
|
|
|
|
|
2022-01-20 15:40:25 +01:00
|
|
|
func MetadataQueryToQuery(query *meta_pb.MetadataQuery) (query.SearchQuery, error) {
|
2021-08-09 08:01:20 +02:00
|
|
|
switch q := query.Query.(type) {
|
|
|
|
case *meta_pb.MetadataQuery_KeyQuery:
|
2022-01-20 15:40:25 +01:00
|
|
|
return MetadataKeyQueryToQuery(q.KeyQuery)
|
2021-08-09 08:01:20 +02:00
|
|
|
default:
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInvalidArgument(nil, "METAD-fdg23", "List.Query.Invalid")
|
2021-08-09 08:01:20 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-20 15:40:25 +01:00
|
|
|
func MetadataKeyQueryToQuery(q *meta_pb.MetadataKeyQuery) (query.SearchQuery, error) {
|
2023-07-07 15:48:41 +02:00
|
|
|
return query.NewOrgMetadataKeySearchQuery(q.Key, object.TextMethodToQuery(q.Method))
|
2021-08-09 08:01:20 +02:00
|
|
|
}
|