github.com/crowdsecurity/crowdsec@v1.6.1/pkg/database/ent/lock_create.go (about)

     1  // Code generated by ent, 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/sqlgraph"
    12  	"entgo.io/ent/schema/field"
    13  	"github.com/crowdsecurity/crowdsec/pkg/database/ent/lock"
    14  )
    15  
    16  // LockCreate is the builder for creating a Lock entity.
    17  type LockCreate struct {
    18  	config
    19  	mutation *LockMutation
    20  	hooks    []Hook
    21  }
    22  
    23  // SetName sets the "name" field.
    24  func (lc *LockCreate) SetName(s string) *LockCreate {
    25  	lc.mutation.SetName(s)
    26  	return lc
    27  }
    28  
    29  // SetCreatedAt sets the "created_at" field.
    30  func (lc *LockCreate) SetCreatedAt(t time.Time) *LockCreate {
    31  	lc.mutation.SetCreatedAt(t)
    32  	return lc
    33  }
    34  
    35  // SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
    36  func (lc *LockCreate) SetNillableCreatedAt(t *time.Time) *LockCreate {
    37  	if t != nil {
    38  		lc.SetCreatedAt(*t)
    39  	}
    40  	return lc
    41  }
    42  
    43  // Mutation returns the LockMutation object of the builder.
    44  func (lc *LockCreate) Mutation() *LockMutation {
    45  	return lc.mutation
    46  }
    47  
    48  // Save creates the Lock in the database.
    49  func (lc *LockCreate) Save(ctx context.Context) (*Lock, error) {
    50  	lc.defaults()
    51  	return withHooks(ctx, lc.sqlSave, lc.mutation, lc.hooks)
    52  }
    53  
    54  // SaveX calls Save and panics if Save returns an error.
    55  func (lc *LockCreate) SaveX(ctx context.Context) *Lock {
    56  	v, err := lc.Save(ctx)
    57  	if err != nil {
    58  		panic(err)
    59  	}
    60  	return v
    61  }
    62  
    63  // Exec executes the query.
    64  func (lc *LockCreate) Exec(ctx context.Context) error {
    65  	_, err := lc.Save(ctx)
    66  	return err
    67  }
    68  
    69  // ExecX is like Exec, but panics if an error occurs.
    70  func (lc *LockCreate) ExecX(ctx context.Context) {
    71  	if err := lc.Exec(ctx); err != nil {
    72  		panic(err)
    73  	}
    74  }
    75  
    76  // defaults sets the default values of the builder before save.
    77  func (lc *LockCreate) defaults() {
    78  	if _, ok := lc.mutation.CreatedAt(); !ok {
    79  		v := lock.DefaultCreatedAt()
    80  		lc.mutation.SetCreatedAt(v)
    81  	}
    82  }
    83  
    84  // check runs all checks and user-defined validators on the builder.
    85  func (lc *LockCreate) check() error {
    86  	if _, ok := lc.mutation.Name(); !ok {
    87  		return &ValidationError{Name: "name", err: errors.New(`ent: missing required field "Lock.name"`)}
    88  	}
    89  	if _, ok := lc.mutation.CreatedAt(); !ok {
    90  		return &ValidationError{Name: "created_at", err: errors.New(`ent: missing required field "Lock.created_at"`)}
    91  	}
    92  	return nil
    93  }
    94  
    95  func (lc *LockCreate) sqlSave(ctx context.Context) (*Lock, error) {
    96  	if err := lc.check(); err != nil {
    97  		return nil, err
    98  	}
    99  	_node, _spec := lc.createSpec()
   100  	if err := sqlgraph.CreateNode(ctx, lc.driver, _spec); err != nil {
   101  		if sqlgraph.IsConstraintError(err) {
   102  			err = &ConstraintError{msg: err.Error(), wrap: err}
   103  		}
   104  		return nil, err
   105  	}
   106  	id := _spec.ID.Value.(int64)
   107  	_node.ID = int(id)
   108  	lc.mutation.id = &_node.ID
   109  	lc.mutation.done = true
   110  	return _node, nil
   111  }
   112  
   113  func (lc *LockCreate) createSpec() (*Lock, *sqlgraph.CreateSpec) {
   114  	var (
   115  		_node = &Lock{config: lc.config}
   116  		_spec = sqlgraph.NewCreateSpec(lock.Table, sqlgraph.NewFieldSpec(lock.FieldID, field.TypeInt))
   117  	)
   118  	if value, ok := lc.mutation.Name(); ok {
   119  		_spec.SetField(lock.FieldName, field.TypeString, value)
   120  		_node.Name = value
   121  	}
   122  	if value, ok := lc.mutation.CreatedAt(); ok {
   123  		_spec.SetField(lock.FieldCreatedAt, field.TypeTime, value)
   124  		_node.CreatedAt = value
   125  	}
   126  	return _node, _spec
   127  }
   128  
   129  // LockCreateBulk is the builder for creating many Lock entities in bulk.
   130  type LockCreateBulk struct {
   131  	config
   132  	err      error
   133  	builders []*LockCreate
   134  }
   135  
   136  // Save creates the Lock entities in the database.
   137  func (lcb *LockCreateBulk) Save(ctx context.Context) ([]*Lock, error) {
   138  	if lcb.err != nil {
   139  		return nil, lcb.err
   140  	}
   141  	specs := make([]*sqlgraph.CreateSpec, len(lcb.builders))
   142  	nodes := make([]*Lock, len(lcb.builders))
   143  	mutators := make([]Mutator, len(lcb.builders))
   144  	for i := range lcb.builders {
   145  		func(i int, root context.Context) {
   146  			builder := lcb.builders[i]
   147  			builder.defaults()
   148  			var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
   149  				mutation, ok := m.(*LockMutation)
   150  				if !ok {
   151  					return nil, fmt.Errorf("unexpected mutation type %T", m)
   152  				}
   153  				if err := builder.check(); err != nil {
   154  					return nil, err
   155  				}
   156  				builder.mutation = mutation
   157  				var err error
   158  				nodes[i], specs[i] = builder.createSpec()
   159  				if i < len(mutators)-1 {
   160  					_, err = mutators[i+1].Mutate(root, lcb.builders[i+1].mutation)
   161  				} else {
   162  					spec := &sqlgraph.BatchCreateSpec{Nodes: specs}
   163  					// Invoke the actual operation on the latest mutation in the chain.
   164  					if err = sqlgraph.BatchCreate(ctx, lcb.driver, spec); err != nil {
   165  						if sqlgraph.IsConstraintError(err) {
   166  							err = &ConstraintError{msg: err.Error(), wrap: err}
   167  						}
   168  					}
   169  				}
   170  				if err != nil {
   171  					return nil, err
   172  				}
   173  				mutation.id = &nodes[i].ID
   174  				if specs[i].ID.Value != nil {
   175  					id := specs[i].ID.Value.(int64)
   176  					nodes[i].ID = int(id)
   177  				}
   178  				mutation.done = true
   179  				return nodes[i], nil
   180  			})
   181  			for i := len(builder.hooks) - 1; i >= 0; i-- {
   182  				mut = builder.hooks[i](mut)
   183  			}
   184  			mutators[i] = mut
   185  		}(i, ctx)
   186  	}
   187  	if len(mutators) > 0 {
   188  		if _, err := mutators[0].Mutate(ctx, lcb.builders[0].mutation); err != nil {
   189  			return nil, err
   190  		}
   191  	}
   192  	return nodes, nil
   193  }
   194  
   195  // SaveX is like Save, but panics if an error occurs.
   196  func (lcb *LockCreateBulk) SaveX(ctx context.Context) []*Lock {
   197  	v, err := lcb.Save(ctx)
   198  	if err != nil {
   199  		panic(err)
   200  	}
   201  	return v
   202  }
   203  
   204  // Exec executes the query.
   205  func (lcb *LockCreateBulk) Exec(ctx context.Context) error {
   206  	_, err := lcb.Save(ctx)
   207  	return err
   208  }
   209  
   210  // ExecX is like Exec, but panics if an error occurs.
   211  func (lcb *LockCreateBulk) ExecX(ctx context.Context) {
   212  	if err := lcb.Exec(ctx); err != nil {
   213  		panic(err)
   214  	}
   215  }