// Code generated by ent, DO NOT EDIT. package ent import ( "bj_power_mes/ent/predicate" "bj_power_mes/ent/stepdata" "context" "errors" "fmt" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" ) // StepDataUpdate is the builder for updating StepData entities. type StepDataUpdate struct { config hooks []Hook mutation *StepDataMutation modifiers []func(*sql.UpdateBuilder) } // Where appends a list predicates to the StepDataUpdate builder. func (_u *StepDataUpdate) Where(ps ...predicate.StepData) *StepDataUpdate { _u.mutation.Where(ps...) return _u } // SetSn sets the "sn" field. func (_u *StepDataUpdate) SetSn(v string) *StepDataUpdate { _u.mutation.SetSn(v) return _u } // SetNillableSn sets the "sn" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableSn(v *string) *StepDataUpdate { if v != nil { _u.SetSn(*v) } return _u } // SetProcessId sets the "processId" field. func (_u *StepDataUpdate) SetProcessId(v int) *StepDataUpdate { _u.mutation.ResetProcessId() _u.mutation.SetProcessId(v) return _u } // SetNillableProcessId sets the "processId" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableProcessId(v *int) *StepDataUpdate { if v != nil { _u.SetProcessId(*v) } return _u } // AddProcessId adds value to the "processId" field. func (_u *StepDataUpdate) AddProcessId(v int) *StepDataUpdate { _u.mutation.AddProcessId(v) return _u } // ClearProcessId clears the value of the "processId" field. func (_u *StepDataUpdate) ClearProcessId() *StepDataUpdate { _u.mutation.ClearProcessId() return _u } // SetStepId sets the "stepId" field. func (_u *StepDataUpdate) SetStepId(v int) *StepDataUpdate { _u.mutation.ResetStepId() _u.mutation.SetStepId(v) return _u } // SetNillableStepId sets the "stepId" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableStepId(v *int) *StepDataUpdate { if v != nil { _u.SetStepId(*v) } return _u } // AddStepId adds value to the "stepId" field. func (_u *StepDataUpdate) AddStepId(v int) *StepDataUpdate { _u.mutation.AddStepId(v) return _u } // SetStepName sets the "stepName" field. func (_u *StepDataUpdate) SetStepName(v string) *StepDataUpdate { _u.mutation.SetStepName(v) return _u } // SetNillableStepName sets the "stepName" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableStepName(v *string) *StepDataUpdate { if v != nil { _u.SetStepName(*v) } return _u } // SetCriterionId sets the "criterionId" field. func (_u *StepDataUpdate) SetCriterionId(v int) *StepDataUpdate { _u.mutation.ResetCriterionId() _u.mutation.SetCriterionId(v) return _u } // SetNillableCriterionId sets the "criterionId" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableCriterionId(v *int) *StepDataUpdate { if v != nil { _u.SetCriterionId(*v) } return _u } // AddCriterionId adds value to the "criterionId" field. func (_u *StepDataUpdate) AddCriterionId(v int) *StepDataUpdate { _u.mutation.AddCriterionId(v) return _u } // ClearCriterionId clears the value of the "criterionId" field. func (_u *StepDataUpdate) ClearCriterionId() *StepDataUpdate { _u.mutation.ClearCriterionId() return _u } // SetCriterionName sets the "criterionName" field. func (_u *StepDataUpdate) SetCriterionName(v string) *StepDataUpdate { _u.mutation.SetCriterionName(v) return _u } // SetNillableCriterionName sets the "criterionName" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableCriterionName(v *string) *StepDataUpdate { if v != nil { _u.SetCriterionName(*v) } return _u } // SetCriterionLogic sets the "criterionLogic" field. func (_u *StepDataUpdate) SetCriterionLogic(v string) *StepDataUpdate { _u.mutation.SetCriterionLogic(v) return _u } // SetNillableCriterionLogic sets the "criterionLogic" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableCriterionLogic(v *string) *StepDataUpdate { if v != nil { _u.SetCriterionLogic(*v) } return _u } // SetValue sets the "value" field. func (_u *StepDataUpdate) SetValue(v float64) *StepDataUpdate { _u.mutation.ResetValue() _u.mutation.SetValue(v) return _u } // SetNillableValue sets the "value" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableValue(v *float64) *StepDataUpdate { if v != nil { _u.SetValue(*v) } return _u } // AddValue adds value to the "value" field. func (_u *StepDataUpdate) AddValue(v float64) *StepDataUpdate { _u.mutation.AddValue(v) return _u } // SetValueText sets the "valueText" field. func (_u *StepDataUpdate) SetValueText(v string) *StepDataUpdate { _u.mutation.SetValueText(v) return _u } // SetNillableValueText sets the "valueText" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableValueText(v *string) *StepDataUpdate { if v != nil { _u.SetValueText(*v) } return _u } // SetIsOK sets the "isOK" field. func (_u *StepDataUpdate) SetIsOK(v bool) *StepDataUpdate { _u.mutation.SetIsOK(v) return _u } // SetNillableIsOK sets the "isOK" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableIsOK(v *bool) *StepDataUpdate { if v != nil { _u.SetIsOK(*v) } return _u } // SetOperator sets the "operator" field. func (_u *StepDataUpdate) SetOperator(v string) *StepDataUpdate { _u.mutation.SetOperator(v) return _u } // SetNillableOperator sets the "operator" field if the given value is not nil. func (_u *StepDataUpdate) SetNillableOperator(v *string) *StepDataUpdate { if v != nil { _u.SetOperator(*v) } return _u } // Mutation returns the StepDataMutation object of the builder. func (_u *StepDataUpdate) Mutation() *StepDataMutation { return _u.mutation } // Save executes the query and returns the number of nodes affected by the update operation. func (_u *StepDataUpdate) Save(ctx context.Context) (int, error) { return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *StepDataUpdate) SaveX(ctx context.Context) int { affected, err := _u.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (_u *StepDataUpdate) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *StepDataUpdate) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // check runs all checks and user-defined validators on the builder. func (_u *StepDataUpdate) check() error { if v, ok := _u.mutation.Sn(); ok { if err := stepdata.SnValidator(v); err != nil { return &ValidationError{Name: "sn", err: fmt.Errorf(`ent: validator failed for field "StepData.sn": %w`, err)} } } if v, ok := _u.mutation.StepName(); ok { if err := stepdata.StepNameValidator(v); err != nil { return &ValidationError{Name: "stepName", err: fmt.Errorf(`ent: validator failed for field "StepData.stepName": %w`, err)} } } if v, ok := _u.mutation.CriterionName(); ok { if err := stepdata.CriterionNameValidator(v); err != nil { return &ValidationError{Name: "criterionName", err: fmt.Errorf(`ent: validator failed for field "StepData.criterionName": %w`, err)} } } if v, ok := _u.mutation.CriterionLogic(); ok { if err := stepdata.CriterionLogicValidator(v); err != nil { return &ValidationError{Name: "criterionLogic", err: fmt.Errorf(`ent: validator failed for field "StepData.criterionLogic": %w`, err)} } } if v, ok := _u.mutation.ValueText(); ok { if err := stepdata.ValueTextValidator(v); err != nil { return &ValidationError{Name: "valueText", err: fmt.Errorf(`ent: validator failed for field "StepData.valueText": %w`, err)} } } if v, ok := _u.mutation.Operator(); ok { if err := stepdata.OperatorValidator(v); err != nil { return &ValidationError{Name: "operator", err: fmt.Errorf(`ent: validator failed for field "StepData.operator": %w`, err)} } } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *StepDataUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *StepDataUpdate { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *StepDataUpdate) sqlSave(ctx context.Context) (_node int, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(stepdata.Table, stepdata.Columns, sqlgraph.NewFieldSpec(stepdata.FieldID, field.TypeInt)) if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.Sn(); ok { _spec.SetField(stepdata.FieldSn, field.TypeString, value) } if value, ok := _u.mutation.ProcessId(); ok { _spec.SetField(stepdata.FieldProcessId, field.TypeInt, value) } if value, ok := _u.mutation.AddedProcessId(); ok { _spec.AddField(stepdata.FieldProcessId, field.TypeInt, value) } if _u.mutation.ProcessIdCleared() { _spec.ClearField(stepdata.FieldProcessId, field.TypeInt) } if value, ok := _u.mutation.StepId(); ok { _spec.SetField(stepdata.FieldStepId, field.TypeInt, value) } if value, ok := _u.mutation.AddedStepId(); ok { _spec.AddField(stepdata.FieldStepId, field.TypeInt, value) } if value, ok := _u.mutation.StepName(); ok { _spec.SetField(stepdata.FieldStepName, field.TypeString, value) } if value, ok := _u.mutation.CriterionId(); ok { _spec.SetField(stepdata.FieldCriterionId, field.TypeInt, value) } if value, ok := _u.mutation.AddedCriterionId(); ok { _spec.AddField(stepdata.FieldCriterionId, field.TypeInt, value) } if _u.mutation.CriterionIdCleared() { _spec.ClearField(stepdata.FieldCriterionId, field.TypeInt) } if value, ok := _u.mutation.CriterionName(); ok { _spec.SetField(stepdata.FieldCriterionName, field.TypeString, value) } if value, ok := _u.mutation.CriterionLogic(); ok { _spec.SetField(stepdata.FieldCriterionLogic, field.TypeString, value) } if value, ok := _u.mutation.Value(); ok { _spec.SetField(stepdata.FieldValue, field.TypeFloat64, value) } if value, ok := _u.mutation.AddedValue(); ok { _spec.AddField(stepdata.FieldValue, field.TypeFloat64, value) } if value, ok := _u.mutation.ValueText(); ok { _spec.SetField(stepdata.FieldValueText, field.TypeString, value) } if value, ok := _u.mutation.IsOK(); ok { _spec.SetField(stepdata.FieldIsOK, field.TypeBool, value) } if value, ok := _u.mutation.Operator(); ok { _spec.SetField(stepdata.FieldOperator, field.TypeString, value) } _spec.AddModifiers(_u.modifiers...) if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{stepdata.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } _u.mutation.done = true return _node, nil } // StepDataUpdateOne is the builder for updating a single StepData entity. type StepDataUpdateOne struct { config fields []string hooks []Hook mutation *StepDataMutation modifiers []func(*sql.UpdateBuilder) } // SetSn sets the "sn" field. func (_u *StepDataUpdateOne) SetSn(v string) *StepDataUpdateOne { _u.mutation.SetSn(v) return _u } // SetNillableSn sets the "sn" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableSn(v *string) *StepDataUpdateOne { if v != nil { _u.SetSn(*v) } return _u } // SetProcessId sets the "processId" field. func (_u *StepDataUpdateOne) SetProcessId(v int) *StepDataUpdateOne { _u.mutation.ResetProcessId() _u.mutation.SetProcessId(v) return _u } // SetNillableProcessId sets the "processId" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableProcessId(v *int) *StepDataUpdateOne { if v != nil { _u.SetProcessId(*v) } return _u } // AddProcessId adds value to the "processId" field. func (_u *StepDataUpdateOne) AddProcessId(v int) *StepDataUpdateOne { _u.mutation.AddProcessId(v) return _u } // ClearProcessId clears the value of the "processId" field. func (_u *StepDataUpdateOne) ClearProcessId() *StepDataUpdateOne { _u.mutation.ClearProcessId() return _u } // SetStepId sets the "stepId" field. func (_u *StepDataUpdateOne) SetStepId(v int) *StepDataUpdateOne { _u.mutation.ResetStepId() _u.mutation.SetStepId(v) return _u } // SetNillableStepId sets the "stepId" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableStepId(v *int) *StepDataUpdateOne { if v != nil { _u.SetStepId(*v) } return _u } // AddStepId adds value to the "stepId" field. func (_u *StepDataUpdateOne) AddStepId(v int) *StepDataUpdateOne { _u.mutation.AddStepId(v) return _u } // SetStepName sets the "stepName" field. func (_u *StepDataUpdateOne) SetStepName(v string) *StepDataUpdateOne { _u.mutation.SetStepName(v) return _u } // SetNillableStepName sets the "stepName" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableStepName(v *string) *StepDataUpdateOne { if v != nil { _u.SetStepName(*v) } return _u } // SetCriterionId sets the "criterionId" field. func (_u *StepDataUpdateOne) SetCriterionId(v int) *StepDataUpdateOne { _u.mutation.ResetCriterionId() _u.mutation.SetCriterionId(v) return _u } // SetNillableCriterionId sets the "criterionId" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableCriterionId(v *int) *StepDataUpdateOne { if v != nil { _u.SetCriterionId(*v) } return _u } // AddCriterionId adds value to the "criterionId" field. func (_u *StepDataUpdateOne) AddCriterionId(v int) *StepDataUpdateOne { _u.mutation.AddCriterionId(v) return _u } // ClearCriterionId clears the value of the "criterionId" field. func (_u *StepDataUpdateOne) ClearCriterionId() *StepDataUpdateOne { _u.mutation.ClearCriterionId() return _u } // SetCriterionName sets the "criterionName" field. func (_u *StepDataUpdateOne) SetCriterionName(v string) *StepDataUpdateOne { _u.mutation.SetCriterionName(v) return _u } // SetNillableCriterionName sets the "criterionName" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableCriterionName(v *string) *StepDataUpdateOne { if v != nil { _u.SetCriterionName(*v) } return _u } // SetCriterionLogic sets the "criterionLogic" field. func (_u *StepDataUpdateOne) SetCriterionLogic(v string) *StepDataUpdateOne { _u.mutation.SetCriterionLogic(v) return _u } // SetNillableCriterionLogic sets the "criterionLogic" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableCriterionLogic(v *string) *StepDataUpdateOne { if v != nil { _u.SetCriterionLogic(*v) } return _u } // SetValue sets the "value" field. func (_u *StepDataUpdateOne) SetValue(v float64) *StepDataUpdateOne { _u.mutation.ResetValue() _u.mutation.SetValue(v) return _u } // SetNillableValue sets the "value" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableValue(v *float64) *StepDataUpdateOne { if v != nil { _u.SetValue(*v) } return _u } // AddValue adds value to the "value" field. func (_u *StepDataUpdateOne) AddValue(v float64) *StepDataUpdateOne { _u.mutation.AddValue(v) return _u } // SetValueText sets the "valueText" field. func (_u *StepDataUpdateOne) SetValueText(v string) *StepDataUpdateOne { _u.mutation.SetValueText(v) return _u } // SetNillableValueText sets the "valueText" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableValueText(v *string) *StepDataUpdateOne { if v != nil { _u.SetValueText(*v) } return _u } // SetIsOK sets the "isOK" field. func (_u *StepDataUpdateOne) SetIsOK(v bool) *StepDataUpdateOne { _u.mutation.SetIsOK(v) return _u } // SetNillableIsOK sets the "isOK" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableIsOK(v *bool) *StepDataUpdateOne { if v != nil { _u.SetIsOK(*v) } return _u } // SetOperator sets the "operator" field. func (_u *StepDataUpdateOne) SetOperator(v string) *StepDataUpdateOne { _u.mutation.SetOperator(v) return _u } // SetNillableOperator sets the "operator" field if the given value is not nil. func (_u *StepDataUpdateOne) SetNillableOperator(v *string) *StepDataUpdateOne { if v != nil { _u.SetOperator(*v) } return _u } // Mutation returns the StepDataMutation object of the builder. func (_u *StepDataUpdateOne) Mutation() *StepDataMutation { return _u.mutation } // Where appends a list predicates to the StepDataUpdate builder. func (_u *StepDataUpdateOne) Where(ps ...predicate.StepData) *StepDataUpdateOne { _u.mutation.Where(ps...) return _u } // Select allows selecting one or more fields (columns) of the returned entity. // The default is selecting all fields defined in the entity schema. func (_u *StepDataUpdateOne) Select(field string, fields ...string) *StepDataUpdateOne { _u.fields = append([]string{field}, fields...) return _u } // Save executes the query and returns the updated StepData entity. func (_u *StepDataUpdateOne) Save(ctx context.Context) (*StepData, error) { return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *StepDataUpdateOne) SaveX(ctx context.Context) *StepData { node, err := _u.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (_u *StepDataUpdateOne) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *StepDataUpdateOne) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // check runs all checks and user-defined validators on the builder. func (_u *StepDataUpdateOne) check() error { if v, ok := _u.mutation.Sn(); ok { if err := stepdata.SnValidator(v); err != nil { return &ValidationError{Name: "sn", err: fmt.Errorf(`ent: validator failed for field "StepData.sn": %w`, err)} } } if v, ok := _u.mutation.StepName(); ok { if err := stepdata.StepNameValidator(v); err != nil { return &ValidationError{Name: "stepName", err: fmt.Errorf(`ent: validator failed for field "StepData.stepName": %w`, err)} } } if v, ok := _u.mutation.CriterionName(); ok { if err := stepdata.CriterionNameValidator(v); err != nil { return &ValidationError{Name: "criterionName", err: fmt.Errorf(`ent: validator failed for field "StepData.criterionName": %w`, err)} } } if v, ok := _u.mutation.CriterionLogic(); ok { if err := stepdata.CriterionLogicValidator(v); err != nil { return &ValidationError{Name: "criterionLogic", err: fmt.Errorf(`ent: validator failed for field "StepData.criterionLogic": %w`, err)} } } if v, ok := _u.mutation.ValueText(); ok { if err := stepdata.ValueTextValidator(v); err != nil { return &ValidationError{Name: "valueText", err: fmt.Errorf(`ent: validator failed for field "StepData.valueText": %w`, err)} } } if v, ok := _u.mutation.Operator(); ok { if err := stepdata.OperatorValidator(v); err != nil { return &ValidationError{Name: "operator", err: fmt.Errorf(`ent: validator failed for field "StepData.operator": %w`, err)} } } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *StepDataUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *StepDataUpdateOne { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *StepDataUpdateOne) sqlSave(ctx context.Context) (_node *StepData, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(stepdata.Table, stepdata.Columns, sqlgraph.NewFieldSpec(stepdata.FieldID, field.TypeInt)) id, ok := _u.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "StepData.id" for update`)} } _spec.Node.ID.Value = id if fields := _u.fields; len(fields) > 0 { _spec.Node.Columns = make([]string, 0, len(fields)) _spec.Node.Columns = append(_spec.Node.Columns, stepdata.FieldID) for _, f := range fields { if !stepdata.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != stepdata.FieldID { _spec.Node.Columns = append(_spec.Node.Columns, f) } } } if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.Sn(); ok { _spec.SetField(stepdata.FieldSn, field.TypeString, value) } if value, ok := _u.mutation.ProcessId(); ok { _spec.SetField(stepdata.FieldProcessId, field.TypeInt, value) } if value, ok := _u.mutation.AddedProcessId(); ok { _spec.AddField(stepdata.FieldProcessId, field.TypeInt, value) } if _u.mutation.ProcessIdCleared() { _spec.ClearField(stepdata.FieldProcessId, field.TypeInt) } if value, ok := _u.mutation.StepId(); ok { _spec.SetField(stepdata.FieldStepId, field.TypeInt, value) } if value, ok := _u.mutation.AddedStepId(); ok { _spec.AddField(stepdata.FieldStepId, field.TypeInt, value) } if value, ok := _u.mutation.StepName(); ok { _spec.SetField(stepdata.FieldStepName, field.TypeString, value) } if value, ok := _u.mutation.CriterionId(); ok { _spec.SetField(stepdata.FieldCriterionId, field.TypeInt, value) } if value, ok := _u.mutation.AddedCriterionId(); ok { _spec.AddField(stepdata.FieldCriterionId, field.TypeInt, value) } if _u.mutation.CriterionIdCleared() { _spec.ClearField(stepdata.FieldCriterionId, field.TypeInt) } if value, ok := _u.mutation.CriterionName(); ok { _spec.SetField(stepdata.FieldCriterionName, field.TypeString, value) } if value, ok := _u.mutation.CriterionLogic(); ok { _spec.SetField(stepdata.FieldCriterionLogic, field.TypeString, value) } if value, ok := _u.mutation.Value(); ok { _spec.SetField(stepdata.FieldValue, field.TypeFloat64, value) } if value, ok := _u.mutation.AddedValue(); ok { _spec.AddField(stepdata.FieldValue, field.TypeFloat64, value) } if value, ok := _u.mutation.ValueText(); ok { _spec.SetField(stepdata.FieldValueText, field.TypeString, value) } if value, ok := _u.mutation.IsOK(); ok { _spec.SetField(stepdata.FieldIsOK, field.TypeBool, value) } if value, ok := _u.mutation.Operator(); ok { _spec.SetField(stepdata.FieldOperator, field.TypeString, value) } _spec.AddModifiers(_u.modifiers...) _node = &StepData{config: _u.config} _spec.Assign = _node.assignValues _spec.ScanValues = _node.scanValues if err = sqlgraph.UpdateNode(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{stepdata.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } _u.mutation.done = true return _node, nil }