// Code generated by ent, DO NOT EDIT.
package ent
import (
"context"
"errors"
"fmt"
"time"
"entgo.io/ent/dialect/sql/sqlgraph"
"entgo.io/ent/schema/field"
"github.com/safedep/vet/ent/reportdependencygraph"
)
// ReportDependencyGraphCreate is the builder for creating a ReportDependencyGraph entity.
type ReportDependencyGraphCreate struct {
config
mutation *ReportDependencyGraphMutation
hooks []Hook
}
// SetFromPackageID sets the "from_package_id" field.
func (rdgc *ReportDependencyGraphCreate) SetFromPackageID(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetFromPackageID(s)
return rdgc
}
// SetFromPackageName sets the "from_package_name" field.
func (rdgc *ReportDependencyGraphCreate) SetFromPackageName(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetFromPackageName(s)
return rdgc
}
// SetFromPackageVersion sets the "from_package_version" field.
func (rdgc *ReportDependencyGraphCreate) SetFromPackageVersion(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetFromPackageVersion(s)
return rdgc
}
// SetFromPackageEcosystem sets the "from_package_ecosystem" field.
func (rdgc *ReportDependencyGraphCreate) SetFromPackageEcosystem(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetFromPackageEcosystem(s)
return rdgc
}
// SetToPackageID sets the "to_package_id" field.
func (rdgc *ReportDependencyGraphCreate) SetToPackageID(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetToPackageID(s)
return rdgc
}
// SetToPackageName sets the "to_package_name" field.
func (rdgc *ReportDependencyGraphCreate) SetToPackageName(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetToPackageName(s)
return rdgc
}
// SetToPackageVersion sets the "to_package_version" field.
func (rdgc *ReportDependencyGraphCreate) SetToPackageVersion(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetToPackageVersion(s)
return rdgc
}
// SetToPackageEcosystem sets the "to_package_ecosystem" field.
func (rdgc *ReportDependencyGraphCreate) SetToPackageEcosystem(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetToPackageEcosystem(s)
return rdgc
}
// SetDependencyType sets the "dependency_type" field.
func (rdgc *ReportDependencyGraphCreate) SetDependencyType(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetDependencyType(s)
return rdgc
}
// SetNillableDependencyType sets the "dependency_type" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableDependencyType(s *string) *ReportDependencyGraphCreate {
if s != nil {
rdgc.SetDependencyType(*s)
}
return rdgc
}
// SetVersionConstraint sets the "version_constraint" field.
func (rdgc *ReportDependencyGraphCreate) SetVersionConstraint(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetVersionConstraint(s)
return rdgc
}
// SetNillableVersionConstraint sets the "version_constraint" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableVersionConstraint(s *string) *ReportDependencyGraphCreate {
if s != nil {
rdgc.SetVersionConstraint(*s)
}
return rdgc
}
// SetDepth sets the "depth" field.
func (rdgc *ReportDependencyGraphCreate) SetDepth(i int) *ReportDependencyGraphCreate {
rdgc.mutation.SetDepth(i)
return rdgc
}
// SetNillableDepth sets the "depth" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableDepth(i *int) *ReportDependencyGraphCreate {
if i != nil {
rdgc.SetDepth(*i)
}
return rdgc
}
// SetIsDirect sets the "is_direct" field.
func (rdgc *ReportDependencyGraphCreate) SetIsDirect(b bool) *ReportDependencyGraphCreate {
rdgc.mutation.SetIsDirect(b)
return rdgc
}
// SetNillableIsDirect sets the "is_direct" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableIsDirect(b *bool) *ReportDependencyGraphCreate {
if b != nil {
rdgc.SetIsDirect(*b)
}
return rdgc
}
// SetIsRootEdge sets the "is_root_edge" field.
func (rdgc *ReportDependencyGraphCreate) SetIsRootEdge(b bool) *ReportDependencyGraphCreate {
rdgc.mutation.SetIsRootEdge(b)
return rdgc
}
// SetNillableIsRootEdge sets the "is_root_edge" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableIsRootEdge(b *bool) *ReportDependencyGraphCreate {
if b != nil {
rdgc.SetIsRootEdge(*b)
}
return rdgc
}
// SetManifestID sets the "manifest_id" field.
func (rdgc *ReportDependencyGraphCreate) SetManifestID(s string) *ReportDependencyGraphCreate {
rdgc.mutation.SetManifestID(s)
return rdgc
}
// SetCreatedAt sets the "created_at" field.
func (rdgc *ReportDependencyGraphCreate) SetCreatedAt(t time.Time) *ReportDependencyGraphCreate {
rdgc.mutation.SetCreatedAt(t)
return rdgc
}
// SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableCreatedAt(t *time.Time) *ReportDependencyGraphCreate {
if t != nil {
rdgc.SetCreatedAt(*t)
}
return rdgc
}
// SetUpdatedAt sets the "updated_at" field.
func (rdgc *ReportDependencyGraphCreate) SetUpdatedAt(t time.Time) *ReportDependencyGraphCreate {
rdgc.mutation.SetUpdatedAt(t)
return rdgc
}
// SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil.
func (rdgc *ReportDependencyGraphCreate) SetNillableUpdatedAt(t *time.Time) *ReportDependencyGraphCreate {
if t != nil {
rdgc.SetUpdatedAt(*t)
}
return rdgc
}
// Mutation returns the ReportDependencyGraphMutation object of the builder.
func (rdgc *ReportDependencyGraphCreate) Mutation() *ReportDependencyGraphMutation {
return rdgc.mutation
}
// Save creates the ReportDependencyGraph in the database.
func (rdgc *ReportDependencyGraphCreate) Save(ctx context.Context) (*ReportDependencyGraph, error) {
rdgc.defaults()
return withHooks(ctx, rdgc.sqlSave, rdgc.mutation, rdgc.hooks)
}
// SaveX calls Save and panics if Save returns an error.
func (rdgc *ReportDependencyGraphCreate) SaveX(ctx context.Context) *ReportDependencyGraph {
v, err := rdgc.Save(ctx)
if err != nil {
panic(err)
}
return v
}
// Exec executes the query.
func (rdgc *ReportDependencyGraphCreate) Exec(ctx context.Context) error {
_, err := rdgc.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (rdgc *ReportDependencyGraphCreate) ExecX(ctx context.Context) {
if err := rdgc.Exec(ctx); err != nil {
panic(err)
}
}
// defaults sets the default values of the builder before save.
func (rdgc *ReportDependencyGraphCreate) defaults() {
if _, ok := rdgc.mutation.Depth(); !ok {
v := reportdependencygraph.DefaultDepth
rdgc.mutation.SetDepth(v)
}
if _, ok := rdgc.mutation.IsDirect(); !ok {
v := reportdependencygraph.DefaultIsDirect
rdgc.mutation.SetIsDirect(v)
}
if _, ok := rdgc.mutation.IsRootEdge(); !ok {
v := reportdependencygraph.DefaultIsRootEdge
rdgc.mutation.SetIsRootEdge(v)
}
}
// check runs all checks and user-defined validators on the builder.
func (rdgc *ReportDependencyGraphCreate) check() error {
if _, ok := rdgc.mutation.FromPackageID(); !ok {
return &ValidationError{Name: "from_package_id", err: errors.New(`ent: missing required field "ReportDependencyGraph.from_package_id"`)}
}
if v, ok := rdgc.mutation.FromPackageID(); ok {
if err := reportdependencygraph.FromPackageIDValidator(v); err != nil {
return &ValidationError{Name: "from_package_id", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.from_package_id": %w`, err)}
}
}
if _, ok := rdgc.mutation.FromPackageName(); !ok {
return &ValidationError{Name: "from_package_name", err: errors.New(`ent: missing required field "ReportDependencyGraph.from_package_name"`)}
}
if v, ok := rdgc.mutation.FromPackageName(); ok {
if err := reportdependencygraph.FromPackageNameValidator(v); err != nil {
return &ValidationError{Name: "from_package_name", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.from_package_name": %w`, err)}
}
}
if _, ok := rdgc.mutation.FromPackageVersion(); !ok {
return &ValidationError{Name: "from_package_version", err: errors.New(`ent: missing required field "ReportDependencyGraph.from_package_version"`)}
}
if v, ok := rdgc.mutation.FromPackageVersion(); ok {
if err := reportdependencygraph.FromPackageVersionValidator(v); err != nil {
return &ValidationError{Name: "from_package_version", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.from_package_version": %w`, err)}
}
}
if _, ok := rdgc.mutation.FromPackageEcosystem(); !ok {
return &ValidationError{Name: "from_package_ecosystem", err: errors.New(`ent: missing required field "ReportDependencyGraph.from_package_ecosystem"`)}
}
if v, ok := rdgc.mutation.FromPackageEcosystem(); ok {
if err := reportdependencygraph.FromPackageEcosystemValidator(v); err != nil {
return &ValidationError{Name: "from_package_ecosystem", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.from_package_ecosystem": %w`, err)}
}
}
if _, ok := rdgc.mutation.ToPackageID(); !ok {
return &ValidationError{Name: "to_package_id", err: errors.New(`ent: missing required field "ReportDependencyGraph.to_package_id"`)}
}
if v, ok := rdgc.mutation.ToPackageID(); ok {
if err := reportdependencygraph.ToPackageIDValidator(v); err != nil {
return &ValidationError{Name: "to_package_id", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.to_package_id": %w`, err)}
}
}
if _, ok := rdgc.mutation.ToPackageName(); !ok {
return &ValidationError{Name: "to_package_name", err: errors.New(`ent: missing required field "ReportDependencyGraph.to_package_name"`)}
}
if v, ok := rdgc.mutation.ToPackageName(); ok {
if err := reportdependencygraph.ToPackageNameValidator(v); err != nil {
return &ValidationError{Name: "to_package_name", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.to_package_name": %w`, err)}
}
}
if _, ok := rdgc.mutation.ToPackageVersion(); !ok {
return &ValidationError{Name: "to_package_version", err: errors.New(`ent: missing required field "ReportDependencyGraph.to_package_version"`)}
}
if v, ok := rdgc.mutation.ToPackageVersion(); ok {
if err := reportdependencygraph.ToPackageVersionValidator(v); err != nil {
return &ValidationError{Name: "to_package_version", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.to_package_version": %w`, err)}
}
}
if _, ok := rdgc.mutation.ToPackageEcosystem(); !ok {
return &ValidationError{Name: "to_package_ecosystem", err: errors.New(`ent: missing required field "ReportDependencyGraph.to_package_ecosystem"`)}
}
if v, ok := rdgc.mutation.ToPackageEcosystem(); ok {
if err := reportdependencygraph.ToPackageEcosystemValidator(v); err != nil {
return &ValidationError{Name: "to_package_ecosystem", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.to_package_ecosystem": %w`, err)}
}
}
if _, ok := rdgc.mutation.Depth(); !ok {
return &ValidationError{Name: "depth", err: errors.New(`ent: missing required field "ReportDependencyGraph.depth"`)}
}
if _, ok := rdgc.mutation.IsDirect(); !ok {
return &ValidationError{Name: "is_direct", err: errors.New(`ent: missing required field "ReportDependencyGraph.is_direct"`)}
}
if _, ok := rdgc.mutation.IsRootEdge(); !ok {
return &ValidationError{Name: "is_root_edge", err: errors.New(`ent: missing required field "ReportDependencyGraph.is_root_edge"`)}
}
if _, ok := rdgc.mutation.ManifestID(); !ok {
return &ValidationError{Name: "manifest_id", err: errors.New(`ent: missing required field "ReportDependencyGraph.manifest_id"`)}
}
if v, ok := rdgc.mutation.ManifestID(); ok {
if err := reportdependencygraph.ManifestIDValidator(v); err != nil {
return &ValidationError{Name: "manifest_id", err: fmt.Errorf(`ent: validator failed for field "ReportDependencyGraph.manifest_id": %w`, err)}
}
}
return nil
}
func (rdgc *ReportDependencyGraphCreate) sqlSave(ctx context.Context) (*ReportDependencyGraph, error) {
if err := rdgc.check(); err != nil {
return nil, err
}
_node, _spec := rdgc.createSpec()
if err := sqlgraph.CreateNode(ctx, rdgc.driver, _spec); err != nil {
if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return nil, err
}
id := _spec.ID.Value.(int64)
_node.ID = int(id)
rdgc.mutation.id = &_node.ID
rdgc.mutation.done = true
return _node, nil
}
func (rdgc *ReportDependencyGraphCreate) createSpec() (*ReportDependencyGraph, *sqlgraph.CreateSpec) {
var (
_node = &ReportDependencyGraph{config: rdgc.config}
_spec = sqlgraph.NewCreateSpec(reportdependencygraph.Table, sqlgraph.NewFieldSpec(reportdependencygraph.FieldID, field.TypeInt))
)
if value, ok := rdgc.mutation.FromPackageID(); ok {
_spec.SetField(reportdependencygraph.FieldFromPackageID, field.TypeString, value)
_node.FromPackageID = value
}
if value, ok := rdgc.mutation.FromPackageName(); ok {
_spec.SetField(reportdependencygraph.FieldFromPackageName, field.TypeString, value)
_node.FromPackageName = value
}
if value, ok := rdgc.mutation.FromPackageVersion(); ok {
_spec.SetField(reportdependencygraph.FieldFromPackageVersion, field.TypeString, value)
_node.FromPackageVersion = value
}
if value, ok := rdgc.mutation.FromPackageEcosystem(); ok {
_spec.SetField(reportdependencygraph.FieldFromPackageEcosystem, field.TypeString, value)
_node.FromPackageEcosystem = value
}
if value, ok := rdgc.mutation.ToPackageID(); ok {
_spec.SetField(reportdependencygraph.FieldToPackageID, field.TypeString, value)
_node.ToPackageID = value
}
if value, ok := rdgc.mutation.ToPackageName(); ok {
_spec.SetField(reportdependencygraph.FieldToPackageName, field.TypeString, value)
_node.ToPackageName = value
}
if value, ok := rdgc.mutation.ToPackageVersion(); ok {
_spec.SetField(reportdependencygraph.FieldToPackageVersion, field.TypeString, value)
_node.ToPackageVersion = value
}
if value, ok := rdgc.mutation.ToPackageEcosystem(); ok {
_spec.SetField(reportdependencygraph.FieldToPackageEcosystem, field.TypeString, value)
_node.ToPackageEcosystem = value
}
if value, ok := rdgc.mutation.DependencyType(); ok {
_spec.SetField(reportdependencygraph.FieldDependencyType, field.TypeString, value)
_node.DependencyType = value
}
if value, ok := rdgc.mutation.VersionConstraint(); ok {
_spec.SetField(reportdependencygraph.FieldVersionConstraint, field.TypeString, value)
_node.VersionConstraint = value
}
if value, ok := rdgc.mutation.Depth(); ok {
_spec.SetField(reportdependencygraph.FieldDepth, field.TypeInt, value)
_node.Depth = value
}
if value, ok := rdgc.mutation.IsDirect(); ok {
_spec.SetField(reportdependencygraph.FieldIsDirect, field.TypeBool, value)
_node.IsDirect = value
}
if value, ok := rdgc.mutation.IsRootEdge(); ok {
_spec.SetField(reportdependencygraph.FieldIsRootEdge, field.TypeBool, value)
_node.IsRootEdge = value
}
if value, ok := rdgc.mutation.ManifestID(); ok {
_spec.SetField(reportdependencygraph.FieldManifestID, field.TypeString, value)
_node.ManifestID = value
}
if value, ok := rdgc.mutation.CreatedAt(); ok {
_spec.SetField(reportdependencygraph.FieldCreatedAt, field.TypeTime, value)
_node.CreatedAt = value
}
if value, ok := rdgc.mutation.UpdatedAt(); ok {
_spec.SetField(reportdependencygraph.FieldUpdatedAt, field.TypeTime, value)
_node.UpdatedAt = value
}
return _node, _spec
}
// ReportDependencyGraphCreateBulk is the builder for creating many ReportDependencyGraph entities in bulk.
type ReportDependencyGraphCreateBulk struct {
config
err error
builders []*ReportDependencyGraphCreate
}
// Save creates the ReportDependencyGraph entities in the database.
func (rdgcb *ReportDependencyGraphCreateBulk) Save(ctx context.Context) ([]*ReportDependencyGraph, error) {
if rdgcb.err != nil {
return nil, rdgcb.err
}
specs := make([]*sqlgraph.CreateSpec, len(rdgcb.builders))
nodes := make([]*ReportDependencyGraph, len(rdgcb.builders))
mutators := make([]Mutator, len(rdgcb.builders))
for i := range rdgcb.builders {
func(i int, root context.Context) {
builder := rdgcb.builders[i]
builder.defaults()
var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
mutation, ok := m.(*ReportDependencyGraphMutation)
if !ok {
return nil, fmt.Errorf("unexpected mutation type %T", m)
}
if err := builder.check(); err != nil {
return nil, err
}
builder.mutation = mutation
var err error
nodes[i], specs[i] = builder.createSpec()
if i < len(mutators)-1 {
_, err = mutators[i+1].Mutate(root, rdgcb.builders[i+1].mutation)
} else {
spec := &sqlgraph.BatchCreateSpec{Nodes: specs}
// Invoke the actual operation on the latest mutation in the chain.
if err = sqlgraph.BatchCreate(ctx, rdgcb.driver, spec); err != nil {
if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
}
}
if err != nil {
return nil, err
}
mutation.id = &nodes[i].ID
if specs[i].ID.Value != nil {
id := specs[i].ID.Value.(int64)
nodes[i].ID = int(id)
}
mutation.done = true
return nodes[i], nil
})
for i := len(builder.hooks) - 1; i >= 0; i-- {
mut = builder.hooks[i](mut)
}
mutators[i] = mut
}(i, ctx)
}
if len(mutators) > 0 {
if _, err := mutators[0].Mutate(ctx, rdgcb.builders[0].mutation); err != nil {
return nil, err
}
}
return nodes, nil
}
// SaveX is like Save, but panics if an error occurs.
func (rdgcb *ReportDependencyGraphCreateBulk) SaveX(ctx context.Context) []*ReportDependencyGraph {
v, err := rdgcb.Save(ctx)
if err != nil {
panic(err)
}
return v
}
// Exec executes the query.
func (rdgcb *ReportDependencyGraphCreateBulk) Exec(ctx context.Context) error {
_, err := rdgcb.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (rdgcb *ReportDependencyGraphCreateBulk) ExecX(ctx context.Context) {
if err := rdgcb.Exec(ctx); err != nil {
panic(err)
}
}