bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/database/ent/meta_create.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/sqlgraph"
    12  	"entgo.io/ent/schema/field"
    13  	"bitbucket.org/Aishee/synsec/pkg/database/ent/alert"
    14  	"bitbucket.org/Aishee/synsec/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  // SetOwnerID sets the "owner" edge to the Alert entity by ID.
    65  func (mc *MetaCreate) SetOwnerID(id int) *MetaCreate {
    66  	mc.mutation.SetOwnerID(id)
    67  	return mc
    68  }
    69  
    70  // SetNillableOwnerID sets the "owner" edge to the Alert entity by ID if the given value is not nil.
    71  func (mc *MetaCreate) SetNillableOwnerID(id *int) *MetaCreate {
    72  	if id != nil {
    73  		mc = mc.SetOwnerID(*id)
    74  	}
    75  	return mc
    76  }
    77  
    78  // SetOwner sets the "owner" edge to the Alert entity.
    79  func (mc *MetaCreate) SetOwner(a *Alert) *MetaCreate {
    80  	return mc.SetOwnerID(a.ID)
    81  }
    82  
    83  // Mutation returns the MetaMutation object of the builder.
    84  func (mc *MetaCreate) Mutation() *MetaMutation {
    85  	return mc.mutation
    86  }
    87  
    88  // Save creates the Meta in the database.
    89  func (mc *MetaCreate) Save(ctx context.Context) (*Meta, error) {
    90  	var (
    91  		err  error
    92  		node *Meta
    93  	)
    94  	mc.defaults()
    95  	if len(mc.hooks) == 0 {
    96  		if err = mc.check(); err != nil {
    97  			return nil, err
    98  		}
    99  		node, err = mc.sqlSave(ctx)
   100  	} else {
   101  		var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
   102  			mutation, ok := m.(*MetaMutation)
   103  			if !ok {
   104  				return nil, fmt.Errorf("unexpected mutation type %T", m)
   105  			}
   106  			if err = mc.check(); err != nil {
   107  				return nil, err
   108  			}
   109  			mc.mutation = mutation
   110  			node, err = mc.sqlSave(ctx)
   111  			mutation.done = true
   112  			return node, err
   113  		})
   114  		for i := len(mc.hooks) - 1; i >= 0; i-- {
   115  			mut = mc.hooks[i](mut)
   116  		}
   117  		if _, err := mut.Mutate(ctx, mc.mutation); err != nil {
   118  			return nil, err
   119  		}
   120  	}
   121  	return node, err
   122  }
   123  
   124  // SaveX calls Save and panics if Save returns an error.
   125  func (mc *MetaCreate) SaveX(ctx context.Context) *Meta {
   126  	v, err := mc.Save(ctx)
   127  	if err != nil {
   128  		panic(err)
   129  	}
   130  	return v
   131  }
   132  
   133  // defaults sets the default values of the builder before save.
   134  func (mc *MetaCreate) defaults() {
   135  	if _, ok := mc.mutation.CreatedAt(); !ok {
   136  		v := meta.DefaultCreatedAt()
   137  		mc.mutation.SetCreatedAt(v)
   138  	}
   139  	if _, ok := mc.mutation.UpdatedAt(); !ok {
   140  		v := meta.DefaultUpdatedAt()
   141  		mc.mutation.SetUpdatedAt(v)
   142  	}
   143  }
   144  
   145  // check runs all checks and user-defined validators on the builder.
   146  func (mc *MetaCreate) check() error {
   147  	if _, ok := mc.mutation.CreatedAt(); !ok {
   148  		return &ValidationError{Name: "created_at", err: errors.New("ent: missing required field \"created_at\"")}
   149  	}
   150  	if _, ok := mc.mutation.UpdatedAt(); !ok {
   151  		return &ValidationError{Name: "updated_at", err: errors.New("ent: missing required field \"updated_at\"")}
   152  	}
   153  	if _, ok := mc.mutation.Key(); !ok {
   154  		return &ValidationError{Name: "key", err: errors.New("ent: missing required field \"key\"")}
   155  	}
   156  	if _, ok := mc.mutation.Value(); !ok {
   157  		return &ValidationError{Name: "value", err: errors.New("ent: missing required field \"value\"")}
   158  	}
   159  	if v, ok := mc.mutation.Value(); ok {
   160  		if err := meta.ValueValidator(v); err != nil {
   161  			return &ValidationError{Name: "value", err: fmt.Errorf("ent: validator failed for field \"value\": %w", err)}
   162  		}
   163  	}
   164  	return nil
   165  }
   166  
   167  func (mc *MetaCreate) sqlSave(ctx context.Context) (*Meta, error) {
   168  	_node, _spec := mc.createSpec()
   169  	if err := sqlgraph.CreateNode(ctx, mc.driver, _spec); err != nil {
   170  		if cerr, ok := isSQLConstraintError(err); ok {
   171  			err = cerr
   172  		}
   173  		return nil, err
   174  	}
   175  	id := _spec.ID.Value.(int64)
   176  	_node.ID = int(id)
   177  	return _node, nil
   178  }
   179  
   180  func (mc *MetaCreate) createSpec() (*Meta, *sqlgraph.CreateSpec) {
   181  	var (
   182  		_node = &Meta{config: mc.config}
   183  		_spec = &sqlgraph.CreateSpec{
   184  			Table: meta.Table,
   185  			ID: &sqlgraph.FieldSpec{
   186  				Type:   field.TypeInt,
   187  				Column: meta.FieldID,
   188  			},
   189  		}
   190  	)
   191  	if value, ok := mc.mutation.CreatedAt(); ok {
   192  		_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
   193  			Type:   field.TypeTime,
   194  			Value:  value,
   195  			Column: meta.FieldCreatedAt,
   196  		})
   197  		_node.CreatedAt = value
   198  	}
   199  	if value, ok := mc.mutation.UpdatedAt(); ok {
   200  		_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
   201  			Type:   field.TypeTime,
   202  			Value:  value,
   203  			Column: meta.FieldUpdatedAt,
   204  		})
   205  		_node.UpdatedAt = value
   206  	}
   207  	if value, ok := mc.mutation.Key(); ok {
   208  		_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
   209  			Type:   field.TypeString,
   210  			Value:  value,
   211  			Column: meta.FieldKey,
   212  		})
   213  		_node.Key = value
   214  	}
   215  	if value, ok := mc.mutation.Value(); ok {
   216  		_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
   217  			Type:   field.TypeString,
   218  			Value:  value,
   219  			Column: meta.FieldValue,
   220  		})
   221  		_node.Value = value
   222  	}
   223  	if nodes := mc.mutation.OwnerIDs(); len(nodes) > 0 {
   224  		edge := &sqlgraph.EdgeSpec{
   225  			Rel:     sqlgraph.M2O,
   226  			Inverse: true,
   227  			Table:   meta.OwnerTable,
   228  			Columns: []string{meta.OwnerColumn},
   229  			Bidi:    false,
   230  			Target: &sqlgraph.EdgeTarget{
   231  				IDSpec: &sqlgraph.FieldSpec{
   232  					Type:   field.TypeInt,
   233  					Column: alert.FieldID,
   234  				},
   235  			},
   236  		}
   237  		for _, k := range nodes {
   238  			edge.Target.Nodes = append(edge.Target.Nodes, k)
   239  		}
   240  		_node.alert_metas = &nodes[0]
   241  		_spec.Edges = append(_spec.Edges, edge)
   242  	}
   243  	return _node, _spec
   244  }
   245  
   246  // MetaCreateBulk is the builder for creating many Meta entities in bulk.
   247  type MetaCreateBulk struct {
   248  	config
   249  	builders []*MetaCreate
   250  }
   251  
   252  // Save creates the Meta entities in the database.
   253  func (mcb *MetaCreateBulk) Save(ctx context.Context) ([]*Meta, error) {
   254  	specs := make([]*sqlgraph.CreateSpec, len(mcb.builders))
   255  	nodes := make([]*Meta, len(mcb.builders))
   256  	mutators := make([]Mutator, len(mcb.builders))
   257  	for i := range mcb.builders {
   258  		func(i int, root context.Context) {
   259  			builder := mcb.builders[i]
   260  			builder.defaults()
   261  			var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
   262  				mutation, ok := m.(*MetaMutation)
   263  				if !ok {
   264  					return nil, fmt.Errorf("unexpected mutation type %T", m)
   265  				}
   266  				if err := builder.check(); err != nil {
   267  					return nil, err
   268  				}
   269  				builder.mutation = mutation
   270  				nodes[i], specs[i] = builder.createSpec()
   271  				var err error
   272  				if i < len(mutators)-1 {
   273  					_, err = mutators[i+1].Mutate(root, mcb.builders[i+1].mutation)
   274  				} else {
   275  					// Invoke the actual operation on the latest mutation in the chain.
   276  					if err = sqlgraph.BatchCreate(ctx, mcb.driver, &sqlgraph.BatchCreateSpec{Nodes: specs}); err != nil {
   277  						if cerr, ok := isSQLConstraintError(err); ok {
   278  							err = cerr
   279  						}
   280  					}
   281  				}
   282  				mutation.done = true
   283  				if err != nil {
   284  					return nil, err
   285  				}
   286  				id := specs[i].ID.Value.(int64)
   287  				nodes[i].ID = int(id)
   288  				return nodes[i], nil
   289  			})
   290  			for i := len(builder.hooks) - 1; i >= 0; i-- {
   291  				mut = builder.hooks[i](mut)
   292  			}
   293  			mutators[i] = mut
   294  		}(i, ctx)
   295  	}
   296  	if len(mutators) > 0 {
   297  		if _, err := mutators[0].Mutate(ctx, mcb.builders[0].mutation); err != nil {
   298  			return nil, err
   299  		}
   300  	}
   301  	return nodes, nil
   302  }
   303  
   304  // SaveX is like Save, but panics if an error occurs.
   305  func (mcb *MetaCreateBulk) SaveX(ctx context.Context) []*Meta {
   306  	v, err := mcb.Save(ctx)
   307  	if err != nil {
   308  		panic(err)
   309  	}
   310  	return v
   311  }