mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
@@ -8,6 +8,7 @@ package ent
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/facebook/ent/dialect/sql/sqlgraph"
|
||||
@@ -44,14 +45,15 @@ func (tc *TaskCreate) Mutation() *TaskMutation {
|
||||
|
||||
// Save creates the Task in the database.
|
||||
func (tc *TaskCreate) Save(ctx context.Context) (*Task, error) {
|
||||
if err := tc.preSave(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var (
|
||||
err error
|
||||
node *Task
|
||||
)
|
||||
tc.defaults()
|
||||
if len(tc.hooks) == 0 {
|
||||
if err = tc.check(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
node, err = tc.sqlSave(ctx)
|
||||
} else {
|
||||
var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
|
||||
@@ -59,6 +61,9 @@ func (tc *TaskCreate) Save(ctx context.Context) (*Task, error) {
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unexpected mutation type %T", m)
|
||||
}
|
||||
if err = tc.check(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tc.mutation = mutation
|
||||
node, err = tc.sqlSave(ctx)
|
||||
mutation.done = true
|
||||
@@ -83,11 +88,19 @@ func (tc *TaskCreate) SaveX(ctx context.Context) *Task {
|
||||
return v
|
||||
}
|
||||
|
||||
func (tc *TaskCreate) preSave() error {
|
||||
// defaults sets the default values of the builder before save.
|
||||
func (tc *TaskCreate) defaults() {
|
||||
if _, ok := tc.mutation.Priority(); !ok {
|
||||
v := task.DefaultPriority
|
||||
tc.mutation.SetPriority(v)
|
||||
}
|
||||
}
|
||||
|
||||
// check runs all checks and user-defined validators on the builder.
|
||||
func (tc *TaskCreate) check() error {
|
||||
if _, ok := tc.mutation.Priority(); !ok {
|
||||
return &ValidationError{Name: "priority", err: errors.New("ent: missing required field \"priority\"")}
|
||||
}
|
||||
if v, ok := tc.mutation.Priority(); ok {
|
||||
if err := task.PriorityValidator(int(v)); err != nil {
|
||||
return &ValidationError{Name: "priority", err: fmt.Errorf("ent: validator failed for field \"priority\": %w", err)}
|
||||
@@ -145,14 +158,15 @@ func (tcb *TaskCreateBulk) Save(ctx context.Context) ([]*Task, error) {
|
||||
for i := range tcb.builders {
|
||||
func(i int, root context.Context) {
|
||||
builder := tcb.builders[i]
|
||||
builder.defaults()
|
||||
var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
|
||||
if err := builder.preSave(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mutation, ok := m.(*TaskMutation)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unexpected mutation type %T", m)
|
||||
}
|
||||
if err := builder.check(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
builder.mutation = mutation
|
||||
nodes[i], specs[i] = builder.createSpec()
|
||||
var err error
|
||||
|
||||
Reference in New Issue
Block a user