| |
|
|
| package db |
|
|
| import ( |
| "context" |
| "errors" |
| "fmt" |
| "sync" |
| "time" |
|
|
| "entgo.io/ent" |
| "entgo.io/ent/dialect/sql" |
| "github.com/openmeterio/openmeter/pkg/framework/entutils/testutils/ent1/db/example1" |
| "github.com/openmeterio/openmeter/pkg/framework/entutils/testutils/ent1/db/predicate" |
| ) |
|
|
| const ( |
| |
| OpCreate = ent.OpCreate |
| OpDelete = ent.OpDelete |
| OpDeleteOne = ent.OpDeleteOne |
| OpUpdate = ent.OpUpdate |
| OpUpdateOne = ent.OpUpdateOne |
|
|
| |
| TypeExample1 = "Example1" |
| ) |
|
|
| |
| type Example1Mutation struct { |
| config |
| op Op |
| typ string |
| id *string |
| created_at *time.Time |
| updated_at *time.Time |
| deleted_at *time.Time |
| example_value_1 *string |
| clearedFields map[string]struct{} |
| done bool |
| oldValue func(context.Context) (*Example1, error) |
| predicates []predicate.Example1 |
| } |
|
|
| var _ ent.Mutation = (*Example1Mutation)(nil) |
|
|
| |
| type example1Option func(*Example1Mutation) |
|
|
| |
| func newExample1Mutation(c config, op Op, opts ...example1Option) *Example1Mutation { |
| m := &Example1Mutation{ |
| config: c, |
| op: op, |
| typ: TypeExample1, |
| clearedFields: make(map[string]struct{}), |
| } |
| for _, opt := range opts { |
| opt(m) |
| } |
| return m |
| } |
|
|
| |
| func withExample1ID(id string) example1Option { |
| return func(m *Example1Mutation) { |
| var ( |
| err error |
| once sync.Once |
| value *Example1 |
| ) |
| m.oldValue = func(ctx context.Context) (*Example1, error) { |
| once.Do(func() { |
| if m.done { |
| err = errors.New("querying old values post mutation is not allowed") |
| } else { |
| value, err = m.Client().Example1.Get(ctx, id) |
| } |
| }) |
| return value, err |
| } |
| m.id = &id |
| } |
| } |
|
|
| |
| func withExample1(node *Example1) example1Option { |
| return func(m *Example1Mutation) { |
| m.oldValue = func(context.Context) (*Example1, error) { |
| return node, nil |
| } |
| m.id = &node.ID |
| } |
| } |
|
|
| |
| |
| func (m Example1Mutation) Client() *Client { |
| client := &Client{config: m.config} |
| client.init() |
| return client |
| } |
|
|
| |
| |
| func (m Example1Mutation) Tx() (*Tx, error) { |
| if _, ok := m.driver.(*txDriver); !ok { |
| return nil, errors.New("db: mutation is not running in a transaction") |
| } |
| tx := &Tx{config: m.config} |
| tx.init() |
| return tx, nil |
| } |
|
|
| |
| |
| func (m *Example1Mutation) SetID(id string) { |
| m.id = &id |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ID() (id string, exists bool) { |
| if m.id == nil { |
| return |
| } |
| return *m.id, true |
| } |
|
|
| |
| |
| |
| |
| func (m *Example1Mutation) IDs(ctx context.Context) ([]string, error) { |
| switch { |
| case m.op.Is(OpUpdateOne | OpDeleteOne): |
| id, exists := m.ID() |
| if exists { |
| return []string{id}, nil |
| } |
| fallthrough |
| case m.op.Is(OpUpdate | OpDelete): |
| return m.Client().Example1.Query().Where(m.predicates...).IDs(ctx) |
| default: |
| return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) |
| } |
| } |
|
|
| |
| func (m *Example1Mutation) SetCreatedAt(t time.Time) { |
| m.created_at = &t |
| } |
|
|
| |
| func (m *Example1Mutation) CreatedAt() (r time.Time, exists bool) { |
| v := m.created_at |
| if v == nil { |
| return |
| } |
| return *v, true |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) OldCreatedAt(ctx context.Context) (v time.Time, err error) { |
| if !m.op.Is(OpUpdateOne) { |
| return v, errors.New("OldCreatedAt is only allowed on UpdateOne operations") |
| } |
| if m.id == nil || m.oldValue == nil { |
| return v, errors.New("OldCreatedAt requires an ID field in the mutation") |
| } |
| oldValue, err := m.oldValue(ctx) |
| if err != nil { |
| return v, fmt.Errorf("querying old value for OldCreatedAt: %w", err) |
| } |
| return oldValue.CreatedAt, nil |
| } |
|
|
| |
| func (m *Example1Mutation) ResetCreatedAt() { |
| m.created_at = nil |
| } |
|
|
| |
| func (m *Example1Mutation) SetUpdatedAt(t time.Time) { |
| m.updated_at = &t |
| } |
|
|
| |
| func (m *Example1Mutation) UpdatedAt() (r time.Time, exists bool) { |
| v := m.updated_at |
| if v == nil { |
| return |
| } |
| return *v, true |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) OldUpdatedAt(ctx context.Context) (v time.Time, err error) { |
| if !m.op.Is(OpUpdateOne) { |
| return v, errors.New("OldUpdatedAt is only allowed on UpdateOne operations") |
| } |
| if m.id == nil || m.oldValue == nil { |
| return v, errors.New("OldUpdatedAt requires an ID field in the mutation") |
| } |
| oldValue, err := m.oldValue(ctx) |
| if err != nil { |
| return v, fmt.Errorf("querying old value for OldUpdatedAt: %w", err) |
| } |
| return oldValue.UpdatedAt, nil |
| } |
|
|
| |
| func (m *Example1Mutation) ResetUpdatedAt() { |
| m.updated_at = nil |
| } |
|
|
| |
| func (m *Example1Mutation) SetDeletedAt(t time.Time) { |
| m.deleted_at = &t |
| } |
|
|
| |
| func (m *Example1Mutation) DeletedAt() (r time.Time, exists bool) { |
| v := m.deleted_at |
| if v == nil { |
| return |
| } |
| return *v, true |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) OldDeletedAt(ctx context.Context) (v *time.Time, err error) { |
| if !m.op.Is(OpUpdateOne) { |
| return v, errors.New("OldDeletedAt is only allowed on UpdateOne operations") |
| } |
| if m.id == nil || m.oldValue == nil { |
| return v, errors.New("OldDeletedAt requires an ID field in the mutation") |
| } |
| oldValue, err := m.oldValue(ctx) |
| if err != nil { |
| return v, fmt.Errorf("querying old value for OldDeletedAt: %w", err) |
| } |
| return oldValue.DeletedAt, nil |
| } |
|
|
| |
| func (m *Example1Mutation) ClearDeletedAt() { |
| m.deleted_at = nil |
| m.clearedFields[example1.FieldDeletedAt] = struct{}{} |
| } |
|
|
| |
| func (m *Example1Mutation) DeletedAtCleared() bool { |
| _, ok := m.clearedFields[example1.FieldDeletedAt] |
| return ok |
| } |
|
|
| |
| func (m *Example1Mutation) ResetDeletedAt() { |
| m.deleted_at = nil |
| delete(m.clearedFields, example1.FieldDeletedAt) |
| } |
|
|
| |
| func (m *Example1Mutation) SetExampleValue1(s string) { |
| m.example_value_1 = &s |
| } |
|
|
| |
| func (m *Example1Mutation) ExampleValue1() (r string, exists bool) { |
| v := m.example_value_1 |
| if v == nil { |
| return |
| } |
| return *v, true |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) OldExampleValue1(ctx context.Context) (v string, err error) { |
| if !m.op.Is(OpUpdateOne) { |
| return v, errors.New("OldExampleValue1 is only allowed on UpdateOne operations") |
| } |
| if m.id == nil || m.oldValue == nil { |
| return v, errors.New("OldExampleValue1 requires an ID field in the mutation") |
| } |
| oldValue, err := m.oldValue(ctx) |
| if err != nil { |
| return v, fmt.Errorf("querying old value for OldExampleValue1: %w", err) |
| } |
| return oldValue.ExampleValue1, nil |
| } |
|
|
| |
| func (m *Example1Mutation) ResetExampleValue1() { |
| m.example_value_1 = nil |
| } |
|
|
| |
| func (m *Example1Mutation) Where(ps ...predicate.Example1) { |
| m.predicates = append(m.predicates, ps...) |
| } |
|
|
| |
| |
| func (m *Example1Mutation) WhereP(ps ...func(*sql.Selector)) { |
| p := make([]predicate.Example1, len(ps)) |
| for i := range ps { |
| p[i] = ps[i] |
| } |
| m.Where(p...) |
| } |
|
|
| |
| func (m *Example1Mutation) Op() Op { |
| return m.op |
| } |
|
|
| |
| func (m *Example1Mutation) SetOp(op Op) { |
| m.op = op |
| } |
|
|
| |
| func (m *Example1Mutation) Type() string { |
| return m.typ |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) Fields() []string { |
| fields := make([]string, 0, 4) |
| if m.created_at != nil { |
| fields = append(fields, example1.FieldCreatedAt) |
| } |
| if m.updated_at != nil { |
| fields = append(fields, example1.FieldUpdatedAt) |
| } |
| if m.deleted_at != nil { |
| fields = append(fields, example1.FieldDeletedAt) |
| } |
| if m.example_value_1 != nil { |
| fields = append(fields, example1.FieldExampleValue1) |
| } |
| return fields |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) Field(name string) (ent.Value, bool) { |
| switch name { |
| case example1.FieldCreatedAt: |
| return m.CreatedAt() |
| case example1.FieldUpdatedAt: |
| return m.UpdatedAt() |
| case example1.FieldDeletedAt: |
| return m.DeletedAt() |
| case example1.FieldExampleValue1: |
| return m.ExampleValue1() |
| } |
| return nil, false |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) OldField(ctx context.Context, name string) (ent.Value, error) { |
| switch name { |
| case example1.FieldCreatedAt: |
| return m.OldCreatedAt(ctx) |
| case example1.FieldUpdatedAt: |
| return m.OldUpdatedAt(ctx) |
| case example1.FieldDeletedAt: |
| return m.OldDeletedAt(ctx) |
| case example1.FieldExampleValue1: |
| return m.OldExampleValue1(ctx) |
| } |
| return nil, fmt.Errorf("unknown Example1 field %s", name) |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) SetField(name string, value ent.Value) error { |
| switch name { |
| case example1.FieldCreatedAt: |
| v, ok := value.(time.Time) |
| if !ok { |
| return fmt.Errorf("unexpected type %T for field %s", value, name) |
| } |
| m.SetCreatedAt(v) |
| return nil |
| case example1.FieldUpdatedAt: |
| v, ok := value.(time.Time) |
| if !ok { |
| return fmt.Errorf("unexpected type %T for field %s", value, name) |
| } |
| m.SetUpdatedAt(v) |
| return nil |
| case example1.FieldDeletedAt: |
| v, ok := value.(time.Time) |
| if !ok { |
| return fmt.Errorf("unexpected type %T for field %s", value, name) |
| } |
| m.SetDeletedAt(v) |
| return nil |
| case example1.FieldExampleValue1: |
| v, ok := value.(string) |
| if !ok { |
| return fmt.Errorf("unexpected type %T for field %s", value, name) |
| } |
| m.SetExampleValue1(v) |
| return nil |
| } |
| return fmt.Errorf("unknown Example1 field %s", name) |
| } |
|
|
| |
| |
| func (m *Example1Mutation) AddedFields() []string { |
| return nil |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) AddedField(name string) (ent.Value, bool) { |
| return nil, false |
| } |
|
|
| |
| |
| |
| func (m *Example1Mutation) AddField(name string, value ent.Value) error { |
| switch name { |
| } |
| return fmt.Errorf("unknown Example1 numeric field %s", name) |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ClearedFields() []string { |
| var fields []string |
| if m.FieldCleared(example1.FieldDeletedAt) { |
| fields = append(fields, example1.FieldDeletedAt) |
| } |
| return fields |
| } |
|
|
| |
| |
| func (m *Example1Mutation) FieldCleared(name string) bool { |
| _, ok := m.clearedFields[name] |
| return ok |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ClearField(name string) error { |
| switch name { |
| case example1.FieldDeletedAt: |
| m.ClearDeletedAt() |
| return nil |
| } |
| return fmt.Errorf("unknown Example1 nullable field %s", name) |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ResetField(name string) error { |
| switch name { |
| case example1.FieldCreatedAt: |
| m.ResetCreatedAt() |
| return nil |
| case example1.FieldUpdatedAt: |
| m.ResetUpdatedAt() |
| return nil |
| case example1.FieldDeletedAt: |
| m.ResetDeletedAt() |
| return nil |
| case example1.FieldExampleValue1: |
| m.ResetExampleValue1() |
| return nil |
| } |
| return fmt.Errorf("unknown Example1 field %s", name) |
| } |
|
|
| |
| func (m *Example1Mutation) AddedEdges() []string { |
| edges := make([]string, 0, 0) |
| return edges |
| } |
|
|
| |
| |
| func (m *Example1Mutation) AddedIDs(name string) []ent.Value { |
| return nil |
| } |
|
|
| |
| func (m *Example1Mutation) RemovedEdges() []string { |
| edges := make([]string, 0, 0) |
| return edges |
| } |
|
|
| |
| |
| func (m *Example1Mutation) RemovedIDs(name string) []ent.Value { |
| return nil |
| } |
|
|
| |
| func (m *Example1Mutation) ClearedEdges() []string { |
| edges := make([]string, 0, 0) |
| return edges |
| } |
|
|
| |
| |
| func (m *Example1Mutation) EdgeCleared(name string) bool { |
| return false |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ClearEdge(name string) error { |
| return fmt.Errorf("unknown Example1 unique edge %s", name) |
| } |
|
|
| |
| |
| func (m *Example1Mutation) ResetEdge(name string) error { |
| return fmt.Errorf("unknown Example1 edge %s", name) |
| } |
|
|