entc/gen: make generated client to implement the ent.Mutator interface (#3161)

This commit is contained in:
Ariel Mashraki
2022-12-09 21:18:25 +02:00
committed by GitHub
parent 3f4916ff8b
commit d0c5afa705
85 changed files with 3522 additions and 22 deletions

View File

@@ -141,6 +141,20 @@ func (c *Client) Use(hooks ...Hook) {
c.User.Use(hooks...)
}
// Mutate implements the ent.Mutator interface.
func (c *Client) Mutate(ctx context.Context, m Mutation) (Value, error) {
switch m := m.(type) {
case *TaskMutation:
return c.Task.mutate(ctx, m)
case *TeamMutation:
return c.Team.mutate(ctx, m)
case *UserMutation:
return c.User.mutate(ctx, m)
default:
return nil, fmt.Errorf("ent: unknown mutation type %T", m)
}
}
// TaskClient is a client for the Task schema.
type TaskClient struct {
config
@@ -264,6 +278,21 @@ func (c *TaskClient) Hooks() []Hook {
return append(hooks[:len(hooks):len(hooks)], task.Hooks[:]...)
}
func (c *TaskClient) mutate(ctx context.Context, m *TaskMutation) (Value, error) {
switch m.Op() {
case OpCreate:
return (&TaskCreate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdate:
return (&TaskUpdate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdateOne:
return (&TaskUpdateOne{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpDelete, OpDeleteOne:
return (&TaskDelete{config: c.config, hooks: c.Hooks(), mutation: m}).Exec(ctx)
default:
return nil, fmt.Errorf("ent: unknown Task mutation op: %q", m.Op())
}
}
// TeamClient is a client for the Team schema.
type TeamClient struct {
config
@@ -387,6 +416,21 @@ func (c *TeamClient) Hooks() []Hook {
return append(hooks[:len(hooks):len(hooks)], team.Hooks[:]...)
}
func (c *TeamClient) mutate(ctx context.Context, m *TeamMutation) (Value, error) {
switch m.Op() {
case OpCreate:
return (&TeamCreate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdate:
return (&TeamUpdate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdateOne:
return (&TeamUpdateOne{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpDelete, OpDeleteOne:
return (&TeamDelete{config: c.config, hooks: c.Hooks(), mutation: m}).Exec(ctx)
default:
return nil, fmt.Errorf("ent: unknown Team mutation op: %q", m.Op())
}
}
// UserClient is a client for the User schema.
type UserClient struct {
config
@@ -509,3 +553,18 @@ func (c *UserClient) Hooks() []Hook {
hooks := c.hooks.User
return append(hooks[:len(hooks):len(hooks)], user.Hooks[:]...)
}
func (c *UserClient) mutate(ctx context.Context, m *UserMutation) (Value, error) {
switch m.Op() {
case OpCreate:
return (&UserCreate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdate:
return (&UserUpdate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpUpdateOne:
return (&UserUpdateOne{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx)
case OpDelete, OpDeleteOne:
return (&UserDelete{config: c.config, hooks: c.Hooks(), mutation: m}).Exec(ctx)
default:
return nil, fmt.Errorf("ent: unknown User mutation op: %q", m.Op())
}
}

View File

@@ -427,6 +427,11 @@ func (m *TaskMutation) Op() Op {
return m.op
}
// SetOp allows setting the mutation operation.
func (m *TaskMutation) SetOp(op Op) {
m.op = op
}
// Type returns the node type of this mutation (Task).
func (m *TaskMutation) Type() string {
return m.typ
@@ -972,6 +977,11 @@ func (m *TeamMutation) Op() Op {
return m.op
}
// SetOp allows setting the mutation operation.
func (m *TeamMutation) SetOp(op Op) {
m.op = op
}
// Type returns the node type of this mutation (Team).
func (m *TeamMutation) Type() string {
return m.typ
@@ -1531,6 +1541,11 @@ func (m *UserMutation) Op() Op {
return m.op
}
// SetOp allows setting the mutation operation.
func (m *UserMutation) SetOp(op Op) {
m.op = op
}
// Type returns the node type of this mutation (User).
func (m *UserMutation) Type() string {
return m.typ