Files
zitadel/backend/v3/storage/database/repository/user_machine.go

65 lines
2.0 KiB
Go
Raw Normal View History

2025-05-08 07:42:53 +02:00
package repository
2025-04-29 06:03:47 +02:00
2025-05-06 07:18:11 +02:00
import (
"context"
2025-04-29 06:03:47 +02:00
2025-05-06 07:18:11 +02:00
"github.com/zitadel/zitadel/backend/v3/domain"
"github.com/zitadel/zitadel/backend/v3/storage/database"
)
2025-04-29 06:03:47 +02:00
type userMachine struct {
*user
}
2025-05-06 07:18:11 +02:00
var _ domain.MachineRepository = (*userMachine)(nil)
// -------------------------------------------------------------
// repository
// -------------------------------------------------------------
2025-04-29 06:03:47 +02:00
2025-05-06 07:18:11 +02:00
// Update implements [domain.MachineRepository].
func (m userMachine) Update(ctx context.Context, condition database.Condition, changes ...database.Change) (err error) {
2025-04-30 09:30:48 +02:00
m.builder.WriteString("UPDATE user_machines SET ")
2025-05-06 07:18:11 +02:00
database.Changes(changes).Write(&m.builder)
2025-04-30 09:30:48 +02:00
m.writeCondition(condition)
m.writeReturning()
2025-05-06 07:18:11 +02:00
return m.client.Exec(ctx, m.builder.String(), m.builder.Args()...)
2025-04-29 06:03:47 +02:00
}
2025-05-06 07:18:11 +02:00
// -------------------------------------------------------------
// changes
// -------------------------------------------------------------
// SetDescription implements [domain.machineChanges].
func (m userMachine) SetDescription(description string) database.Change {
return database.NewChange(m.DescriptionColumn(), description)
2025-04-29 06:03:47 +02:00
}
2025-05-06 07:18:11 +02:00
// -------------------------------------------------------------
// conditions
// -------------------------------------------------------------
// DescriptionCondition implements [domain.machineConditions].
func (m userMachine) DescriptionCondition(op database.TextOperation, description string) database.Condition {
return database.NewTextCondition(m.DescriptionColumn(), op, description)
2025-04-29 06:03:47 +02:00
}
2025-05-06 07:18:11 +02:00
// -------------------------------------------------------------
// columns
// -------------------------------------------------------------
// DescriptionColumn implements [domain.machineColumns].
func (m userMachine) DescriptionColumn() database.Column {
return database.NewColumn("description")
2025-04-29 06:03:47 +02:00
}
2025-04-30 09:30:48 +02:00
2025-05-06 07:18:11 +02:00
func (m userMachine) columns() database.Columns {
2025-04-30 09:30:48 +02:00
return append(m.user.columns(), m.DescriptionColumn())
}
func (m *userMachine) writeReturning() {
m.builder.WriteString(" RETURNING ")
2025-05-06 07:18:11 +02:00
m.columns().Write(&m.builder)
2025-04-30 09:30:48 +02:00
}