github.com/crowdsecurity/crowdsec@v1.6.1/pkg/database/ent/meta_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/alert" 14 "github.com/crowdsecurity/crowdsec/pkg/database/ent/meta" 15 ) 16 17 // MetaCreate is the builder for creating a Meta entity. 18 type MetaCreate struct { 19 config 20 mutation *MetaMutation 21 hooks []Hook 22 } 23 24 // SetCreatedAt sets the "created_at" field. 25 func (mc *MetaCreate) SetCreatedAt(t time.Time) *MetaCreate { 26 mc.mutation.SetCreatedAt(t) 27 return mc 28 } 29 30 // SetNillableCreatedAt sets the "created_at" field if the given value is not nil. 31 func (mc *MetaCreate) SetNillableCreatedAt(t *time.Time) *MetaCreate { 32 if t != nil { 33 mc.SetCreatedAt(*t) 34 } 35 return mc 36 } 37 38 // SetUpdatedAt sets the "updated_at" field. 39 func (mc *MetaCreate) SetUpdatedAt(t time.Time) *MetaCreate { 40 mc.mutation.SetUpdatedAt(t) 41 return mc 42 } 43 44 // SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil. 45 func (mc *MetaCreate) SetNillableUpdatedAt(t *time.Time) *MetaCreate { 46 if t != nil { 47 mc.SetUpdatedAt(*t) 48 } 49 return mc 50 } 51 52 // SetKey sets the "key" field. 53 func (mc *MetaCreate) SetKey(s string) *MetaCreate { 54 mc.mutation.SetKey(s) 55 return mc 56 } 57 58 // SetValue sets the "value" field. 59 func (mc *MetaCreate) SetValue(s string) *MetaCreate { 60 mc.mutation.SetValue(s) 61 return mc 62 } 63 64 // SetAlertMetas sets the "alert_metas" field. 65 func (mc *MetaCreate) SetAlertMetas(i int) *MetaCreate { 66 mc.mutation.SetAlertMetas(i) 67 return mc 68 } 69 70 // SetNillableAlertMetas sets the "alert_metas" field if the given value is not nil. 71 func (mc *MetaCreate) SetNillableAlertMetas(i *int) *MetaCreate { 72 if i != nil { 73 mc.SetAlertMetas(*i) 74 } 75 return mc 76 } 77 78 // SetOwnerID sets the "owner" edge to the Alert entity by ID. 79 func (mc *MetaCreate) SetOwnerID(id int) *MetaCreate { 80 mc.mutation.SetOwnerID(id) 81 return mc 82 } 83 84 // SetNillableOwnerID sets the "owner" edge to the Alert entity by ID if the given value is not nil. 85 func (mc *MetaCreate) SetNillableOwnerID(id *int) *MetaCreate { 86 if id != nil { 87 mc = mc.SetOwnerID(*id) 88 } 89 return mc 90 } 91 92 // SetOwner sets the "owner" edge to the Alert entity. 93 func (mc *MetaCreate) SetOwner(a *Alert) *MetaCreate { 94 return mc.SetOwnerID(a.ID) 95 } 96 97 // Mutation returns the MetaMutation object of the builder. 98 func (mc *MetaCreate) Mutation() *MetaMutation { 99 return mc.mutation 100 } 101 102 // Save creates the Meta in the database. 103 func (mc *MetaCreate) Save(ctx context.Context) (*Meta, error) { 104 mc.defaults() 105 return withHooks(ctx, mc.sqlSave, mc.mutation, mc.hooks) 106 } 107 108 // SaveX calls Save and panics if Save returns an error. 109 func (mc *MetaCreate) SaveX(ctx context.Context) *Meta { 110 v, err := mc.Save(ctx) 111 if err != nil { 112 panic(err) 113 } 114 return v 115 } 116 117 // Exec executes the query. 118 func (mc *MetaCreate) Exec(ctx context.Context) error { 119 _, err := mc.Save(ctx) 120 return err 121 } 122 123 // ExecX is like Exec, but panics if an error occurs. 124 func (mc *MetaCreate) ExecX(ctx context.Context) { 125 if err := mc.Exec(ctx); err != nil { 126 panic(err) 127 } 128 } 129 130 // defaults sets the default values of the builder before save. 131 func (mc *MetaCreate) defaults() { 132 if _, ok := mc.mutation.CreatedAt(); !ok { 133 v := meta.DefaultCreatedAt() 134 mc.mutation.SetCreatedAt(v) 135 } 136 if _, ok := mc.mutation.UpdatedAt(); !ok { 137 v := meta.DefaultUpdatedAt() 138 mc.mutation.SetUpdatedAt(v) 139 } 140 } 141 142 // check runs all checks and user-defined validators on the builder. 143 func (mc *MetaCreate) check() error { 144 if _, ok := mc.mutation.Key(); !ok { 145 return &ValidationError{Name: "key", err: errors.New(`ent: missing required field "Meta.key"`)} 146 } 147 if _, ok := mc.mutation.Value(); !ok { 148 return &ValidationError{Name: "value", err: errors.New(`ent: missing required field "Meta.value"`)} 149 } 150 if v, ok := mc.mutation.Value(); ok { 151 if err := meta.ValueValidator(v); err != nil { 152 return &ValidationError{Name: "value", err: fmt.Errorf(`ent: validator failed for field "Meta.value": %w`, err)} 153 } 154 } 155 return nil 156 } 157 158 func (mc *MetaCreate) sqlSave(ctx context.Context) (*Meta, error) { 159 if err := mc.check(); err != nil { 160 return nil, err 161 } 162 _node, _spec := mc.createSpec() 163 if err := sqlgraph.CreateNode(ctx, mc.driver, _spec); err != nil { 164 if sqlgraph.IsConstraintError(err) { 165 err = &ConstraintError{msg: err.Error(), wrap: err} 166 } 167 return nil, err 168 } 169 id := _spec.ID.Value.(int64) 170 _node.ID = int(id) 171 mc.mutation.id = &_node.ID 172 mc.mutation.done = true 173 return _node, nil 174 } 175 176 func (mc *MetaCreate) createSpec() (*Meta, *sqlgraph.CreateSpec) { 177 var ( 178 _node = &Meta{config: mc.config} 179 _spec = sqlgraph.NewCreateSpec(meta.Table, sqlgraph.NewFieldSpec(meta.FieldID, field.TypeInt)) 180 ) 181 if value, ok := mc.mutation.CreatedAt(); ok { 182 _spec.SetField(meta.FieldCreatedAt, field.TypeTime, value) 183 _node.CreatedAt = &value 184 } 185 if value, ok := mc.mutation.UpdatedAt(); ok { 186 _spec.SetField(meta.FieldUpdatedAt, field.TypeTime, value) 187 _node.UpdatedAt = &value 188 } 189 if value, ok := mc.mutation.Key(); ok { 190 _spec.SetField(meta.FieldKey, field.TypeString, value) 191 _node.Key = value 192 } 193 if value, ok := mc.mutation.Value(); ok { 194 _spec.SetField(meta.FieldValue, field.TypeString, value) 195 _node.Value = value 196 } 197 if nodes := mc.mutation.OwnerIDs(); len(nodes) > 0 { 198 edge := &sqlgraph.EdgeSpec{ 199 Rel: sqlgraph.M2O, 200 Inverse: true, 201 Table: meta.OwnerTable, 202 Columns: []string{meta.OwnerColumn}, 203 Bidi: false, 204 Target: &sqlgraph.EdgeTarget{ 205 IDSpec: sqlgraph.NewFieldSpec(alert.FieldID, field.TypeInt), 206 }, 207 } 208 for _, k := range nodes { 209 edge.Target.Nodes = append(edge.Target.Nodes, k) 210 } 211 _node.AlertMetas = nodes[0] 212 _spec.Edges = append(_spec.Edges, edge) 213 } 214 return _node, _spec 215 } 216 217 // MetaCreateBulk is the builder for creating many Meta entities in bulk. 218 type MetaCreateBulk struct { 219 config 220 err error 221 builders []*MetaCreate 222 } 223 224 // Save creates the Meta entities in the database. 225 func (mcb *MetaCreateBulk) Save(ctx context.Context) ([]*Meta, error) { 226 if mcb.err != nil { 227 return nil, mcb.err 228 } 229 specs := make([]*sqlgraph.CreateSpec, len(mcb.builders)) 230 nodes := make([]*Meta, len(mcb.builders)) 231 mutators := make([]Mutator, len(mcb.builders)) 232 for i := range mcb.builders { 233 func(i int, root context.Context) { 234 builder := mcb.builders[i] 235 builder.defaults() 236 var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { 237 mutation, ok := m.(*MetaMutation) 238 if !ok { 239 return nil, fmt.Errorf("unexpected mutation type %T", m) 240 } 241 if err := builder.check(); err != nil { 242 return nil, err 243 } 244 builder.mutation = mutation 245 var err error 246 nodes[i], specs[i] = builder.createSpec() 247 if i < len(mutators)-1 { 248 _, err = mutators[i+1].Mutate(root, mcb.builders[i+1].mutation) 249 } else { 250 spec := &sqlgraph.BatchCreateSpec{Nodes: specs} 251 // Invoke the actual operation on the latest mutation in the chain. 252 if err = sqlgraph.BatchCreate(ctx, mcb.driver, spec); err != nil { 253 if sqlgraph.IsConstraintError(err) { 254 err = &ConstraintError{msg: err.Error(), wrap: err} 255 } 256 } 257 } 258 if err != nil { 259 return nil, err 260 } 261 mutation.id = &nodes[i].ID 262 if specs[i].ID.Value != nil { 263 id := specs[i].ID.Value.(int64) 264 nodes[i].ID = int(id) 265 } 266 mutation.done = true 267 return nodes[i], nil 268 }) 269 for i := len(builder.hooks) - 1; i >= 0; i-- { 270 mut = builder.hooks[i](mut) 271 } 272 mutators[i] = mut 273 }(i, ctx) 274 } 275 if len(mutators) > 0 { 276 if _, err := mutators[0].Mutate(ctx, mcb.builders[0].mutation); err != nil { 277 return nil, err 278 } 279 } 280 return nodes, nil 281 } 282 283 // SaveX is like Save, but panics if an error occurs. 284 func (mcb *MetaCreateBulk) SaveX(ctx context.Context) []*Meta { 285 v, err := mcb.Save(ctx) 286 if err != nil { 287 panic(err) 288 } 289 return v 290 } 291 292 // Exec executes the query. 293 func (mcb *MetaCreateBulk) Exec(ctx context.Context) error { 294 _, err := mcb.Save(ctx) 295 return err 296 } 297 298 // ExecX is like Exec, but panics if an error occurs. 299 func (mcb *MetaCreateBulk) ExecX(ctx context.Context) { 300 if err := mcb.Exec(ctx); err != nil { 301 panic(err) 302 } 303 }