mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 11:47:34 +00:00
chore(deps): upgrade all go modules (#6895)
* chore(deps): upgrade all go modules This change upgrades all go.mod dependecies. As well as Makefile tools. There where some imports that still used the old and deprecated `github.com/golang/protobuf/ptypes` package. These have been moved to the equivelant `google.golang.org/protobuf/types/known` package. The `internal/proto` package is removed as was only used once. With a simple refactor in the Validator it became completely obsolete. * fix validate unit test * cleanup merge * update otel --------- Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
structpb "github.com/golang/protobuf/ptypes/struct"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/errors"
|
||||
|
@@ -3,12 +3,11 @@ package server
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
structpb "github.com/golang/protobuf/ptypes/struct"
|
||||
"github.com/zitadel/logging"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/errors"
|
||||
"github.com/zitadel/zitadel/internal/proto"
|
||||
"github.com/zitadel/zitadel/internal/telemetry/tracing"
|
||||
)
|
||||
|
||||
@@ -22,24 +21,23 @@ func NewValidator(validations map[string]ValidationFunction) *Validator {
|
||||
return &Validator{validations: validations}
|
||||
}
|
||||
|
||||
func (v *Validator) Healthz(_ context.Context, e *empty.Empty) (*empty.Empty, error) {
|
||||
func (v *Validator) Healthz(_ context.Context, e *emptypb.Empty) (*emptypb.Empty, error) {
|
||||
return e, nil
|
||||
}
|
||||
|
||||
func (v *Validator) Ready(ctx context.Context, e *empty.Empty) (*empty.Empty, error) {
|
||||
func (v *Validator) Ready(ctx context.Context, e *emptypb.Empty) (*emptypb.Empty, error) {
|
||||
if len(validate(ctx, v.validations)) == 0 {
|
||||
return e, nil
|
||||
}
|
||||
return nil, errors.ThrowInternal(nil, "API-2jD9a", "not ready")
|
||||
}
|
||||
|
||||
func (v *Validator) Validate(ctx context.Context, _ *empty.Empty) (*structpb.Struct, error) {
|
||||
validations := validate(ctx, v.validations)
|
||||
return proto.ToPBStruct(validations)
|
||||
func (v *Validator) Validate(ctx context.Context, _ *emptypb.Empty) (*structpb.Struct, error) {
|
||||
return structpb.NewStruct(validate(ctx, v.validations))
|
||||
}
|
||||
|
||||
func validate(ctx context.Context, validations map[string]ValidationFunction) map[string]error {
|
||||
errors := make(map[string]error)
|
||||
func validate(ctx context.Context, validations map[string]ValidationFunction) map[string]any {
|
||||
errors := make(map[string]any)
|
||||
for id, validation := range validations {
|
||||
if err := validation(ctx); err != nil {
|
||||
logging.Log("API-vf823").WithError(err).WithField("traceID", tracing.TraceIDFromCtx(ctx)).Error("validation failed")
|
||||
|
@@ -5,7 +5,7 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/errors"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ func TestValidator_Healthz(t *testing.T) {
|
||||
validations map[string]ValidationFunction
|
||||
}
|
||||
type res struct {
|
||||
want *empty.Empty
|
||||
want *emptypb.Empty
|
||||
hasErr bool
|
||||
}
|
||||
tests := []struct {
|
||||
@@ -27,7 +27,7 @@ func TestValidator_Healthz(t *testing.T) {
|
||||
"ok",
|
||||
fields{},
|
||||
res{
|
||||
&empty.Empty{},
|
||||
&emptypb.Empty{},
|
||||
false,
|
||||
},
|
||||
},
|
||||
@@ -37,7 +37,7 @@ func TestValidator_Healthz(t *testing.T) {
|
||||
v := &Validator{
|
||||
validations: tt.fields.validations,
|
||||
}
|
||||
got, err := v.Healthz(nil, &empty.Empty{})
|
||||
got, err := v.Healthz(context.Background(), &emptypb.Empty{})
|
||||
if (err != nil) != tt.res.hasErr {
|
||||
t.Errorf("Healthz() error = %v, wantErr %v", err, tt.res.hasErr)
|
||||
return
|
||||
@@ -54,7 +54,7 @@ func TestValidator_Ready(t *testing.T) {
|
||||
validations map[string]ValidationFunction
|
||||
}
|
||||
type res struct {
|
||||
want *empty.Empty
|
||||
want *emptypb.Empty
|
||||
hasErr bool
|
||||
}
|
||||
tests := []struct {
|
||||
@@ -82,7 +82,7 @@ func TestValidator_Ready(t *testing.T) {
|
||||
},
|
||||
}},
|
||||
res{
|
||||
&empty.Empty{},
|
||||
&emptypb.Empty{},
|
||||
false,
|
||||
},
|
||||
},
|
||||
@@ -92,7 +92,7 @@ func TestValidator_Ready(t *testing.T) {
|
||||
v := &Validator{
|
||||
validations: tt.fields.validations,
|
||||
}
|
||||
got, err := v.Ready(context.Background(), &empty.Empty{})
|
||||
got, err := v.Ready(context.Background(), &emptypb.Empty{})
|
||||
if (err != nil) != tt.res.hasErr {
|
||||
t.Errorf("Ready() error = %v, wantErr %v", err, tt.res.hasErr)
|
||||
return
|
||||
@@ -109,7 +109,7 @@ func Test_validate(t *testing.T) {
|
||||
validations map[string]ValidationFunction
|
||||
}
|
||||
type res struct {
|
||||
want map[string]error
|
||||
want map[string]any
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -126,7 +126,7 @@ func Test_validate(t *testing.T) {
|
||||
},
|
||||
},
|
||||
res{
|
||||
map[string]error{},
|
||||
map[string]any{},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -142,7 +142,7 @@ func Test_validate(t *testing.T) {
|
||||
},
|
||||
},
|
||||
res{
|
||||
map[string]error{
|
||||
map[string]any{
|
||||
"error": errors.ThrowInternal(nil, "id", "message"),
|
||||
},
|
||||
},
|
||||
|
@@ -1,50 +0,0 @@
|
||||
package proto
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/golang/protobuf/jsonpb"
|
||||
pb_struct "github.com/golang/protobuf/ptypes/struct"
|
||||
|
||||
"github.com/zitadel/logging"
|
||||
)
|
||||
|
||||
var (
|
||||
marshaller = new(jsonpb.Marshaler)
|
||||
)
|
||||
|
||||
func MustToPBStruct(object interface{}) *pb_struct.Struct {
|
||||
s, err := ToPBStruct(object)
|
||||
logging.Log("PROTO-7Aa3t").OnError(err).Panic("unable to map object to pb-struct")
|
||||
return s
|
||||
}
|
||||
|
||||
func BytesToPBStruct(b []byte) (*pb_struct.Struct, error) {
|
||||
fields := new(pb_struct.Struct)
|
||||
err := jsonpb.Unmarshal(bytes.NewReader(b), fields)
|
||||
return fields, err
|
||||
}
|
||||
|
||||
func ToPBStruct(object interface{}) (*pb_struct.Struct, error) {
|
||||
marshalled, err := json.Marshal(object)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
fields := new(pb_struct.Struct)
|
||||
err = jsonpb.Unmarshal(bytes.NewReader(marshalled), fields)
|
||||
return fields, err
|
||||
}
|
||||
|
||||
func MustFromPBStruct(object interface{}, s *pb_struct.Struct) {
|
||||
err := FromPBStruct(object, s)
|
||||
logging.Log("PROTO-WeMYY").OnError(err).Panic("unable to map pb-struct into object")
|
||||
}
|
||||
|
||||
func FromPBStruct(object interface{}, s *pb_struct.Struct) error {
|
||||
jsonString, err := marshaller.MarshalToString(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return json.Unmarshal([]byte(jsonString), object)
|
||||
}
|
@@ -1,114 +0,0 @@
|
||||
package proto
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
pb_struct "github.com/golang/protobuf/ptypes/struct"
|
||||
)
|
||||
|
||||
func Test_ToPBStruct(t *testing.T) {
|
||||
type obj struct {
|
||||
AggregateID string
|
||||
Seq uint64
|
||||
}
|
||||
type args struct {
|
||||
obj obj
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
wantErr bool
|
||||
length int
|
||||
result obj
|
||||
}{
|
||||
{
|
||||
name: "to pb stuct",
|
||||
args: args{
|
||||
obj: obj{AggregateID: "AggregateID", Seq: 12345},
|
||||
},
|
||||
wantErr: false,
|
||||
length: 2,
|
||||
result: obj{AggregateID: "AggregateID", Seq: 12345},
|
||||
},
|
||||
{
|
||||
name: "empty struct",
|
||||
args: args{
|
||||
obj: obj{},
|
||||
},
|
||||
wantErr: false,
|
||||
length: 2,
|
||||
result: obj{AggregateID: "", Seq: 0},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
fields, err := ToPBStruct(tt.args.obj)
|
||||
if tt.wantErr && err == nil {
|
||||
t.Errorf("got wrong result, should get err: actual: %v ", err)
|
||||
}
|
||||
if !tt.wantErr && len(fields.Fields) != tt.length {
|
||||
t.Errorf("got wrong result length, expecting: %v, actual: %v ", tt.length, len(fields.Fields))
|
||||
}
|
||||
if !tt.wantErr && tt.result.AggregateID != fields.Fields["AggregateID"].GetStringValue() {
|
||||
t.Errorf("got wrong result, AggregateID should be same: expecting: %v, actual: %v ", tt.result.AggregateID, fields.Fields["AggregateID"].GetStringValue())
|
||||
}
|
||||
if !tt.wantErr && int(tt.result.Seq) != int(fields.Fields["Seq"].GetNumberValue()) {
|
||||
t.Errorf("got wrong result, Seq should be same: expecting: %v, actual: %v ", tt.result.Seq, fields.Fields["Seq"].GetStringValue())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_FromPBStruct(t *testing.T) {
|
||||
type obj struct {
|
||||
AggregateID string
|
||||
Seq uint64
|
||||
}
|
||||
type args struct {
|
||||
obj *obj
|
||||
fields *pb_struct.Struct
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
wantErr bool
|
||||
result obj
|
||||
}{
|
||||
{
|
||||
name: "from pb stuct",
|
||||
args: args{
|
||||
obj: &obj{},
|
||||
fields: &pb_struct.Struct{Fields: map[string]*pb_struct.Value{
|
||||
"AggregateID": &pb_struct.Value{Kind: &pb_struct.Value_StringValue{StringValue: "AggregateID"}},
|
||||
"Seq": &pb_struct.Value{Kind: &pb_struct.Value_NumberValue{NumberValue: 12345}},
|
||||
},
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
result: obj{AggregateID: "AggregateID", Seq: 12345},
|
||||
},
|
||||
{
|
||||
name: "no fields",
|
||||
args: args{
|
||||
obj: &obj{},
|
||||
fields: &pb_struct.Struct{Fields: map[string]*pb_struct.Value{}},
|
||||
},
|
||||
wantErr: false,
|
||||
result: obj{AggregateID: "", Seq: 0},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := FromPBStruct(tt.args.obj, tt.args.fields)
|
||||
if tt.wantErr && err == nil {
|
||||
t.Errorf("got wrong result, should get err: actual: %v ", err)
|
||||
}
|
||||
if !tt.wantErr && tt.result.AggregateID != tt.args.obj.AggregateID {
|
||||
t.Errorf("got wrong result, AggregateID should be same: expecting: %v, actual: %v ", tt.result.AggregateID, tt.args.obj.AggregateID)
|
||||
}
|
||||
if !tt.wantErr && int(tt.result.Seq) != int(tt.args.obj.Seq) {
|
||||
t.Errorf("got wrong result, Seq should be same: expecting: %v, actual: %v ", tt.result.Seq, tt.args.obj.Seq)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/golang/protobuf/ptypes/timestamp"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
type UserChanges struct {
|
||||
@@ -10,12 +10,12 @@ type UserChanges struct {
|
||||
}
|
||||
|
||||
type UserChange struct {
|
||||
ChangeDate *timestamp.Timestamp `json:"changeDate,omitempty"`
|
||||
EventType string `json:"eventType,omitempty"`
|
||||
Sequence uint64 `json:"sequence,omitempty"`
|
||||
ModifierID string `json:"modifierUser,omitempty"`
|
||||
ModifierName string `json:"-"`
|
||||
ModifierLoginName string `json:"-"`
|
||||
ModifierAvatarURL string `json:"-"`
|
||||
Data interface{} `json:"data,omitempty"`
|
||||
ChangeDate *timestamppb.Timestamp `json:"changeDate,omitempty"`
|
||||
EventType string `json:"eventType,omitempty"`
|
||||
Sequence uint64 `json:"sequence,omitempty"`
|
||||
ModifierID string `json:"modifierUser,omitempty"`
|
||||
ModifierName string `json:"-"`
|
||||
ModifierLoginName string `json:"-"`
|
||||
ModifierAvatarURL string `json:"-"`
|
||||
Data interface{} `json:"data,omitempty"`
|
||||
}
|
||||
|
Reference in New Issue
Block a user