fixup! fixup! fixup! fixup! feat(db): Adding identity_providers table for relational database

This commit is contained in:
Iraq Jaber
2025-07-22 08:55:33 +01:00
parent 95f18433ef
commit 0809686c94
5 changed files with 948 additions and 195 deletions

View File

@@ -106,5 +106,5 @@ type IDProviderRepository interface {
Create(ctx context.Context, idp *IdentityProvider) error
Update(ctx context.Context, id IDPIdentifierCondition, instnaceID string, orgID string, changes ...database.Change) (int64, error)
Delete(ctx context.Context, id IDPIdentifierCondition) (int64, error)
Delete(ctx context.Context, id IDPIdentifierCondition, instnaceID string, orgID string) (int64, error)
}

View File

@@ -137,6 +137,6 @@ const (
func writeBooleanOperation[T Boolean](builder *StatementBuilder, col Column, value T) {
col.Write(builder)
builder.WriteString(" IS ")
builder.WriteString(" = ")
builder.WriteArg(value)
}

View File

@@ -103,13 +103,17 @@ func (i *idProvider) Update(ctx context.Context, id domain.IDPIdentifierConditio
return i.client.Exec(ctx, stmt, builder.Args()...)
}
func (i *idProvider) Delete(ctx context.Context, id domain.IDPIdentifierCondition) (int64, error) {
func (i *idProvider) Delete(ctx context.Context, id domain.IDPIdentifierCondition, instnaceID string, orgID string) (int64, error) {
builder := database.StatementBuilder{}
builder.WriteString(`DELETE FROM zitadel.identity_providers`)
// conditions := []database.Condition{i.IDCondition(id)}
// writeCondition(&builder, database.And(conditions...))
conditions := []database.Condition{
id,
i.InstanceIDCondition(instnaceID),
i.OrgIDCondition(orgID),
}
writeCondition(&builder, database.And(conditions...))
return i.client.Exec(ctx, builder.String(), builder.Args()...)
}
@@ -191,7 +195,7 @@ func (i idProvider) IDCondition(id string) domain.IDPIdentifierCondition {
}
func (i idProvider) StateCondition(state domain.IDPState) database.Condition {
return database.NewTextCondition(i.OrgIDColumn(), database.TextOperationEqual, state.String())
return database.NewTextCondition(i.StateColumn(), database.TextOperationEqual, state.String())
}
func (i idProvider) NameCondition(name string) domain.IDPIdentifierCondition {

File diff suppressed because it is too large Load Diff

View File

@@ -810,8 +810,7 @@ func TestDeleteOrganization(t *testing.T) {
return test{
name: "happy path delete organization filter id",
testFunc: func(ctx context.Context, t *testing.T) {
organizations := make([]*domain.Organization, noOfOrganizations)
for i := range noOfOrganizations {
for range noOfOrganizations {
org := domain.Organization{
ID: organizationId,
@@ -824,7 +823,6 @@ func TestDeleteOrganization(t *testing.T) {
err := organizationRepo.Create(ctx, &org)
require.NoError(t, err)
organizations[i] = &org
}
},
orgIdentifierCondition: organizationRepo.IDCondition(organizationId),
@@ -838,8 +836,7 @@ func TestDeleteOrganization(t *testing.T) {
return test{
name: "happy path delete organization filter name",
testFunc: func(ctx context.Context, t *testing.T) {
organizations := make([]*domain.Organization, noOfOrganizations)
for i := range noOfOrganizations {
for range noOfOrganizations {
org := domain.Organization{
ID: gofakeit.Name(),
@@ -852,7 +849,6 @@ func TestDeleteOrganization(t *testing.T) {
err := organizationRepo.Create(ctx, &org)
require.NoError(t, err)
organizations[i] = &org
}
},
orgIdentifierCondition: organizationRepo.NameCondition(organizationName),
@@ -874,8 +870,7 @@ func TestDeleteOrganization(t *testing.T) {
name: "deleted already deleted organization",
testFunc: func(ctx context.Context, t *testing.T) {
noOfOrganizations := 1
organizations := make([]*domain.Organization, noOfOrganizations)
for i := range noOfOrganizations {
for range noOfOrganizations {
org := domain.Organization{
ID: gofakeit.Name(),
@@ -888,13 +883,12 @@ func TestDeleteOrganization(t *testing.T) {
err := organizationRepo.Create(ctx, &org)
require.NoError(t, err)
organizations[i] = &org
}
// delete organization
affectedRows, err := organizationRepo.Delete(ctx,
organizationRepo.NameCondition(organizationName),
organizations[0].InstanceID,
instanceId,
)
assert.Equal(t, int64(1), affectedRows)
require.NoError(t, err)