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 }