remove idcondition

This commit is contained in:
adlerhurst
2025-08-05 10:03:15 +02:00
parent e48c565ab6
commit 5a75e9d558
4 changed files with 63 additions and 68 deletions

View File

@@ -125,8 +125,10 @@ func NewActivateOrganizationCommand(instanceID, orgID string) *ActivateOrganizat
func (cmd *ActivateOrganizationCommand) Execute(ctx context.Context, opts *CommandOpts) (err error) {
repo := orgRepo(opts.DB)
_, err = repo.Update(ctx,
repo.IDCondition(cmd.OrgID),
cmd.InstanceID,
database.And(
repo.InstanceIDCondition(cmd.InstanceID),
repo.IDCondition(cmd.OrgID),
),
repo.SetState(OrgStateActive),
)
return err
@@ -160,8 +162,10 @@ func NewDeactivateOrganizationCommand(instanceID, orgID string) *DeactivateOrgan
func (cmd *DeactivateOrganizationCommand) Execute(ctx context.Context, opts *CommandOpts) (err error) {
repo := orgRepo(opts.DB)
_, err = repo.Update(ctx,
repo.IDCondition(cmd.OrgID),
cmd.InstanceID,
database.And(
repo.InstanceIDCondition(cmd.InstanceID),
repo.IDCondition(cmd.OrgID),
),
repo.SetState(OrgStateInactive),
)
return err
@@ -192,8 +196,10 @@ func NewDeleteOrganizationCommand(instanceID, orgID string) *DeleteOrganizationC
func (cmd *DeleteOrganizationCommand) Execute(ctx context.Context, opts *CommandOpts) (err error) {
repo := orgRepo(opts.DB)
_, err = repo.Delete(ctx,
repo.IDCondition(cmd.OrgID),
cmd.InstanceID,
database.And(
repo.InstanceIDCondition(cmd.InstanceID),
repo.IDCondition(cmd.OrgID),
),
)
return err
}
@@ -238,8 +244,10 @@ func (cmd *UpdateOrganizationCommand) Execute(ctx context.Context, opts *Command
}
_, err = cmd.repo.Update(ctx,
cmd.repo.IDCondition(cmd.OrgID),
cmd.InstanceID,
database.And(
cmd.repo.InstanceIDCondition(cmd.InstanceID),
cmd.repo.IDCondition(cmd.OrgID),
),
cmd.changes...,
)
return err

View File

@@ -16,8 +16,8 @@ type OrganizationRepository interface {
List(ctx context.Context, opts ...database.QueryOption) ([]*Organization, error)
Create(ctx context.Context, instance *Organization) error
Update(ctx context.Context, id OrgIdentifierCondition, instance_id string, changes ...database.Change) (int64, error)
Delete(ctx context.Context, id OrgIdentifierCondition, instance_id string) (int64, error)
Update(ctx context.Context, condition database.Condition, changes ...database.Change) (int64, error)
Delete(ctx context.Context, condition database.Condition) (int64, error)
// Domains returns the domain sub repository for the organization.
// If shouldLoad is true, the domains will be loaded from the database and written to the [Organization].Domains field.
@@ -25,13 +25,6 @@ type OrganizationRepository interface {
Domains(shouldLoad bool) OrganizationDomainRepository
}
// OrgIdentifierCondition is used to help specify a single Organization,
// it will either be used as the organization ID or organization name,
// as organizations can be identified either using (instanceID + ID) OR (instanceID + name)
type OrgIdentifierCondition interface {
database.Condition
}
// organizationColumns define all the columns of the instance table.
type organizationColumns interface {
// IDColumn returns the column for the id field.
@@ -57,9 +50,9 @@ type organizationColumns interface {
// organizationConditions define all the conditions for the instance table.
type organizationConditions interface {
// IDCondition returns an equal filter on the id field.
IDCondition(id string) OrgIdentifierCondition
IDCondition(id string) database.Condition
// NameCondition returns a filter on the name field.
NameCondition(name string) OrgIdentifierCondition
NameCondition(op database.TextOperation, name string) database.Condition
// InstanceIDCondition returns a filter on the instance id field.
InstanceIDCondition(instanceID string) database.Condition
// StateCondition returns a filter on the name field.