github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/setting_update.go (about)

     1  // Code generated by entc, DO NOT EDIT.
     2  
     3  package ent
     4  
     5  import (
     6  	"context"
     7  	"errors"
     8  	"fmt"
     9  	"time"
    10  
    11  	"entgo.io/ent/dialect/sql"
    12  	"entgo.io/ent/dialect/sql/sqlgraph"
    13  	"entgo.io/ent/schema/field"
    14  	"github.com/ngocphuongnb/tetua/packages/entrepository/ent/predicate"
    15  	"github.com/ngocphuongnb/tetua/packages/entrepository/ent/setting"
    16  )
    17  
    18  // SettingUpdate is the builder for updating Setting entities.
    19  type SettingUpdate struct {
    20  	config
    21  	hooks    []Hook
    22  	mutation *SettingMutation
    23  }
    24  
    25  // Where appends a list predicates to the SettingUpdate builder.
    26  func (su *SettingUpdate) Where(ps ...predicate.Setting) *SettingUpdate {
    27  	su.mutation.Where(ps...)
    28  	return su
    29  }
    30  
    31  // SetUpdatedAt sets the "updated_at" field.
    32  func (su *SettingUpdate) SetUpdatedAt(t time.Time) *SettingUpdate {
    33  	su.mutation.SetUpdatedAt(t)
    34  	return su
    35  }
    36  
    37  // SetDeletedAt sets the "deleted_at" field.
    38  func (su *SettingUpdate) SetDeletedAt(t time.Time) *SettingUpdate {
    39  	su.mutation.SetDeletedAt(t)
    40  	return su
    41  }
    42  
    43  // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil.
    44  func (su *SettingUpdate) SetNillableDeletedAt(t *time.Time) *SettingUpdate {
    45  	if t != nil {
    46  		su.SetDeletedAt(*t)
    47  	}
    48  	return su
    49  }
    50  
    51  // ClearDeletedAt clears the value of the "deleted_at" field.
    52  func (su *SettingUpdate) ClearDeletedAt() *SettingUpdate {
    53  	su.mutation.ClearDeletedAt()
    54  	return su
    55  }
    56  
    57  // SetName sets the "name" field.
    58  func (su *SettingUpdate) SetName(s string) *SettingUpdate {
    59  	su.mutation.SetName(s)
    60  	return su
    61  }
    62  
    63  // SetValue sets the "value" field.
    64  func (su *SettingUpdate) SetValue(s string) *SettingUpdate {
    65  	su.mutation.SetValue(s)
    66  	return su
    67  }
    68  
    69  // SetNillableValue sets the "value" field if the given value is not nil.
    70  func (su *SettingUpdate) SetNillableValue(s *string) *SettingUpdate {
    71  	if s != nil {
    72  		su.SetValue(*s)
    73  	}
    74  	return su
    75  }
    76  
    77  // ClearValue clears the value of the "value" field.
    78  func (su *SettingUpdate) ClearValue() *SettingUpdate {
    79  	su.mutation.ClearValue()
    80  	return su
    81  }
    82  
    83  // SetType sets the "type" field.
    84  func (su *SettingUpdate) SetType(s string) *SettingUpdate {
    85  	su.mutation.SetType(s)
    86  	return su
    87  }
    88  
    89  // SetNillableType sets the "type" field if the given value is not nil.
    90  func (su *SettingUpdate) SetNillableType(s *string) *SettingUpdate {
    91  	if s != nil {
    92  		su.SetType(*s)
    93  	}
    94  	return su
    95  }
    96  
    97  // ClearType clears the value of the "type" field.
    98  func (su *SettingUpdate) ClearType() *SettingUpdate {
    99  	su.mutation.ClearType()
   100  	return su
   101  }
   102  
   103  // Mutation returns the SettingMutation object of the builder.
   104  func (su *SettingUpdate) Mutation() *SettingMutation {
   105  	return su.mutation
   106  }
   107  
   108  // Save executes the query and returns the number of nodes affected by the update operation.
   109  func (su *SettingUpdate) Save(ctx context.Context) (int, error) {
   110  	var (
   111  		err      error
   112  		affected int
   113  	)
   114  	su.defaults()
   115  	if len(su.hooks) == 0 {
   116  		affected, err = su.sqlSave(ctx)
   117  	} else {
   118  		var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
   119  			mutation, ok := m.(*SettingMutation)
   120  			if !ok {
   121  				return nil, fmt.Errorf("unexpected mutation type %T", m)
   122  			}
   123  			su.mutation = mutation
   124  			affected, err = su.sqlSave(ctx)
   125  			mutation.done = true
   126  			return affected, err
   127  		})
   128  		for i := len(su.hooks) - 1; i >= 0; i-- {
   129  			if su.hooks[i] == nil {
   130  				return 0, fmt.Errorf("ent: uninitialized hook (forgotten import ent/runtime?)")
   131  			}
   132  			mut = su.hooks[i](mut)
   133  		}
   134  		if _, err := mut.Mutate(ctx, su.mutation); err != nil {
   135  			return 0, err
   136  		}
   137  	}
   138  	return affected, err
   139  }
   140  
   141  // SaveX is like Save, but panics if an error occurs.
   142  func (su *SettingUpdate) SaveX(ctx context.Context) int {
   143  	affected, err := su.Save(ctx)
   144  	if err != nil {
   145  		panic(err)
   146  	}
   147  	return affected
   148  }
   149  
   150  // Exec executes the query.
   151  func (su *SettingUpdate) Exec(ctx context.Context) error {
   152  	_, err := su.Save(ctx)
   153  	return err
   154  }
   155  
   156  // ExecX is like Exec, but panics if an error occurs.
   157  func (su *SettingUpdate) ExecX(ctx context.Context) {
   158  	if err := su.Exec(ctx); err != nil {
   159  		panic(err)
   160  	}
   161  }
   162  
   163  // defaults sets the default values of the builder before save.
   164  func (su *SettingUpdate) defaults() {
   165  	if _, ok := su.mutation.UpdatedAt(); !ok {
   166  		v := setting.UpdateDefaultUpdatedAt()
   167  		su.mutation.SetUpdatedAt(v)
   168  	}
   169  }
   170  
   171  func (su *SettingUpdate) sqlSave(ctx context.Context) (n int, err error) {
   172  	_spec := &sqlgraph.UpdateSpec{
   173  		Node: &sqlgraph.NodeSpec{
   174  			Table:   setting.Table,
   175  			Columns: setting.Columns,
   176  			ID: &sqlgraph.FieldSpec{
   177  				Type:   field.TypeInt,
   178  				Column: setting.FieldID,
   179  			},
   180  		},
   181  	}
   182  	if ps := su.mutation.predicates; len(ps) > 0 {
   183  		_spec.Predicate = func(selector *sql.Selector) {
   184  			for i := range ps {
   185  				ps[i](selector)
   186  			}
   187  		}
   188  	}
   189  	if value, ok := su.mutation.UpdatedAt(); ok {
   190  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   191  			Type:   field.TypeTime,
   192  			Value:  value,
   193  			Column: setting.FieldUpdatedAt,
   194  		})
   195  	}
   196  	if value, ok := su.mutation.DeletedAt(); ok {
   197  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   198  			Type:   field.TypeTime,
   199  			Value:  value,
   200  			Column: setting.FieldDeletedAt,
   201  		})
   202  	}
   203  	if su.mutation.DeletedAtCleared() {
   204  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   205  			Type:   field.TypeTime,
   206  			Column: setting.FieldDeletedAt,
   207  		})
   208  	}
   209  	if value, ok := su.mutation.Name(); ok {
   210  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   211  			Type:   field.TypeString,
   212  			Value:  value,
   213  			Column: setting.FieldName,
   214  		})
   215  	}
   216  	if value, ok := su.mutation.Value(); ok {
   217  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   218  			Type:   field.TypeString,
   219  			Value:  value,
   220  			Column: setting.FieldValue,
   221  		})
   222  	}
   223  	if su.mutation.ValueCleared() {
   224  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   225  			Type:   field.TypeString,
   226  			Column: setting.FieldValue,
   227  		})
   228  	}
   229  	if value, ok := su.mutation.GetType(); ok {
   230  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   231  			Type:   field.TypeString,
   232  			Value:  value,
   233  			Column: setting.FieldType,
   234  		})
   235  	}
   236  	if su.mutation.TypeCleared() {
   237  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   238  			Type:   field.TypeString,
   239  			Column: setting.FieldType,
   240  		})
   241  	}
   242  	if n, err = sqlgraph.UpdateNodes(ctx, su.driver, _spec); err != nil {
   243  		if _, ok := err.(*sqlgraph.NotFoundError); ok {
   244  			err = &NotFoundError{setting.Label}
   245  		} else if sqlgraph.IsConstraintError(err) {
   246  			err = &ConstraintError{err.Error(), err}
   247  		}
   248  		return 0, err
   249  	}
   250  	return n, nil
   251  }
   252  
   253  // SettingUpdateOne is the builder for updating a single Setting entity.
   254  type SettingUpdateOne struct {
   255  	config
   256  	fields   []string
   257  	hooks    []Hook
   258  	mutation *SettingMutation
   259  }
   260  
   261  // SetUpdatedAt sets the "updated_at" field.
   262  func (suo *SettingUpdateOne) SetUpdatedAt(t time.Time) *SettingUpdateOne {
   263  	suo.mutation.SetUpdatedAt(t)
   264  	return suo
   265  }
   266  
   267  // SetDeletedAt sets the "deleted_at" field.
   268  func (suo *SettingUpdateOne) SetDeletedAt(t time.Time) *SettingUpdateOne {
   269  	suo.mutation.SetDeletedAt(t)
   270  	return suo
   271  }
   272  
   273  // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil.
   274  func (suo *SettingUpdateOne) SetNillableDeletedAt(t *time.Time) *SettingUpdateOne {
   275  	if t != nil {
   276  		suo.SetDeletedAt(*t)
   277  	}
   278  	return suo
   279  }
   280  
   281  // ClearDeletedAt clears the value of the "deleted_at" field.
   282  func (suo *SettingUpdateOne) ClearDeletedAt() *SettingUpdateOne {
   283  	suo.mutation.ClearDeletedAt()
   284  	return suo
   285  }
   286  
   287  // SetName sets the "name" field.
   288  func (suo *SettingUpdateOne) SetName(s string) *SettingUpdateOne {
   289  	suo.mutation.SetName(s)
   290  	return suo
   291  }
   292  
   293  // SetValue sets the "value" field.
   294  func (suo *SettingUpdateOne) SetValue(s string) *SettingUpdateOne {
   295  	suo.mutation.SetValue(s)
   296  	return suo
   297  }
   298  
   299  // SetNillableValue sets the "value" field if the given value is not nil.
   300  func (suo *SettingUpdateOne) SetNillableValue(s *string) *SettingUpdateOne {
   301  	if s != nil {
   302  		suo.SetValue(*s)
   303  	}
   304  	return suo
   305  }
   306  
   307  // ClearValue clears the value of the "value" field.
   308  func (suo *SettingUpdateOne) ClearValue() *SettingUpdateOne {
   309  	suo.mutation.ClearValue()
   310  	return suo
   311  }
   312  
   313  // SetType sets the "type" field.
   314  func (suo *SettingUpdateOne) SetType(s string) *SettingUpdateOne {
   315  	suo.mutation.SetType(s)
   316  	return suo
   317  }
   318  
   319  // SetNillableType sets the "type" field if the given value is not nil.
   320  func (suo *SettingUpdateOne) SetNillableType(s *string) *SettingUpdateOne {
   321  	if s != nil {
   322  		suo.SetType(*s)
   323  	}
   324  	return suo
   325  }
   326  
   327  // ClearType clears the value of the "type" field.
   328  func (suo *SettingUpdateOne) ClearType() *SettingUpdateOne {
   329  	suo.mutation.ClearType()
   330  	return suo
   331  }
   332  
   333  // Mutation returns the SettingMutation object of the builder.
   334  func (suo *SettingUpdateOne) Mutation() *SettingMutation {
   335  	return suo.mutation
   336  }
   337  
   338  // Select allows selecting one or more fields (columns) of the returned entity.
   339  // The default is selecting all fields defined in the entity schema.
   340  func (suo *SettingUpdateOne) Select(field string, fields ...string) *SettingUpdateOne {
   341  	suo.fields = append([]string{field}, fields...)
   342  	return suo
   343  }
   344  
   345  // Save executes the query and returns the updated Setting entity.
   346  func (suo *SettingUpdateOne) Save(ctx context.Context) (*Setting, error) {
   347  	var (
   348  		err  error
   349  		node *Setting
   350  	)
   351  	suo.defaults()
   352  	if len(suo.hooks) == 0 {
   353  		node, err = suo.sqlSave(ctx)
   354  	} else {
   355  		var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
   356  			mutation, ok := m.(*SettingMutation)
   357  			if !ok {
   358  				return nil, fmt.Errorf("unexpected mutation type %T", m)
   359  			}
   360  			suo.mutation = mutation
   361  			node, err = suo.sqlSave(ctx)
   362  			mutation.done = true
   363  			return node, err
   364  		})
   365  		for i := len(suo.hooks) - 1; i >= 0; i-- {
   366  			if suo.hooks[i] == nil {
   367  				return nil, fmt.Errorf("ent: uninitialized hook (forgotten import ent/runtime?)")
   368  			}
   369  			mut = suo.hooks[i](mut)
   370  		}
   371  		if _, err := mut.Mutate(ctx, suo.mutation); err != nil {
   372  			return nil, err
   373  		}
   374  	}
   375  	return node, err
   376  }
   377  
   378  // SaveX is like Save, but panics if an error occurs.
   379  func (suo *SettingUpdateOne) SaveX(ctx context.Context) *Setting {
   380  	node, err := suo.Save(ctx)
   381  	if err != nil {
   382  		panic(err)
   383  	}
   384  	return node
   385  }
   386  
   387  // Exec executes the query on the entity.
   388  func (suo *SettingUpdateOne) Exec(ctx context.Context) error {
   389  	_, err := suo.Save(ctx)
   390  	return err
   391  }
   392  
   393  // ExecX is like Exec, but panics if an error occurs.
   394  func (suo *SettingUpdateOne) ExecX(ctx context.Context) {
   395  	if err := suo.Exec(ctx); err != nil {
   396  		panic(err)
   397  	}
   398  }
   399  
   400  // defaults sets the default values of the builder before save.
   401  func (suo *SettingUpdateOne) defaults() {
   402  	if _, ok := suo.mutation.UpdatedAt(); !ok {
   403  		v := setting.UpdateDefaultUpdatedAt()
   404  		suo.mutation.SetUpdatedAt(v)
   405  	}
   406  }
   407  
   408  func (suo *SettingUpdateOne) sqlSave(ctx context.Context) (_node *Setting, err error) {
   409  	_spec := &sqlgraph.UpdateSpec{
   410  		Node: &sqlgraph.NodeSpec{
   411  			Table:   setting.Table,
   412  			Columns: setting.Columns,
   413  			ID: &sqlgraph.FieldSpec{
   414  				Type:   field.TypeInt,
   415  				Column: setting.FieldID,
   416  			},
   417  		},
   418  	}
   419  	id, ok := suo.mutation.ID()
   420  	if !ok {
   421  		return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Setting.id" for update`)}
   422  	}
   423  	_spec.Node.ID.Value = id
   424  	if fields := suo.fields; len(fields) > 0 {
   425  		_spec.Node.Columns = make([]string, 0, len(fields))
   426  		_spec.Node.Columns = append(_spec.Node.Columns, setting.FieldID)
   427  		for _, f := range fields {
   428  			if !setting.ValidColumn(f) {
   429  				return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)}
   430  			}
   431  			if f != setting.FieldID {
   432  				_spec.Node.Columns = append(_spec.Node.Columns, f)
   433  			}
   434  		}
   435  	}
   436  	if ps := suo.mutation.predicates; len(ps) > 0 {
   437  		_spec.Predicate = func(selector *sql.Selector) {
   438  			for i := range ps {
   439  				ps[i](selector)
   440  			}
   441  		}
   442  	}
   443  	if value, ok := suo.mutation.UpdatedAt(); ok {
   444  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   445  			Type:   field.TypeTime,
   446  			Value:  value,
   447  			Column: setting.FieldUpdatedAt,
   448  		})
   449  	}
   450  	if value, ok := suo.mutation.DeletedAt(); ok {
   451  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   452  			Type:   field.TypeTime,
   453  			Value:  value,
   454  			Column: setting.FieldDeletedAt,
   455  		})
   456  	}
   457  	if suo.mutation.DeletedAtCleared() {
   458  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   459  			Type:   field.TypeTime,
   460  			Column: setting.FieldDeletedAt,
   461  		})
   462  	}
   463  	if value, ok := suo.mutation.Name(); ok {
   464  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   465  			Type:   field.TypeString,
   466  			Value:  value,
   467  			Column: setting.FieldName,
   468  		})
   469  	}
   470  	if value, ok := suo.mutation.Value(); ok {
   471  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   472  			Type:   field.TypeString,
   473  			Value:  value,
   474  			Column: setting.FieldValue,
   475  		})
   476  	}
   477  	if suo.mutation.ValueCleared() {
   478  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   479  			Type:   field.TypeString,
   480  			Column: setting.FieldValue,
   481  		})
   482  	}
   483  	if value, ok := suo.mutation.GetType(); ok {
   484  		_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
   485  			Type:   field.TypeString,
   486  			Value:  value,
   487  			Column: setting.FieldType,
   488  		})
   489  	}
   490  	if suo.mutation.TypeCleared() {
   491  		_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
   492  			Type:   field.TypeString,
   493  			Column: setting.FieldType,
   494  		})
   495  	}
   496  	_node = &Setting{config: suo.config}
   497  	_spec.Assign = _node.assignValues
   498  	_spec.ScanValues = _node.scanValues
   499  	if err = sqlgraph.UpdateNode(ctx, suo.driver, _spec); err != nil {
   500  		if _, ok := err.(*sqlgraph.NotFoundError); ok {
   501  			err = &NotFoundError{setting.Label}
   502  		} else if sqlgraph.IsConstraintError(err) {
   503  			err = &ConstraintError{err.Error(), err}
   504  		}
   505  		return nil, err
   506  	}
   507  	return _node, nil
   508  }