// Code generated by ent, DO NOT EDIT.
package ent
import (
"context"
"errors"
"fmt"
"time"
"entgo.io/ent/dialect/sql"
"entgo.io/ent/dialect/sql/sqlgraph"
"entgo.io/ent/schema/field"
"github.com/safedep/vet/ent/predicate"
"github.com/safedep/vet/ent/reportdependency"
"github.com/safedep/vet/ent/reportlicense"
"github.com/safedep/vet/ent/reportmalware"
"github.com/safedep/vet/ent/reportpackage"
"github.com/safedep/vet/ent/reportpackagemanifest"
"github.com/safedep/vet/ent/reportproject"
"github.com/safedep/vet/ent/reportslsaprovenance"
"github.com/safedep/vet/ent/reportvulnerability"
)
// ReportPackageUpdate is the builder for updating ReportPackage entities.
type ReportPackageUpdate struct {
config
hooks []Hook
mutation *ReportPackageMutation
}
// Where appends a list predicates to the ReportPackageUpdate builder.
func (rpu *ReportPackageUpdate) Where(ps ...predicate.ReportPackage) *ReportPackageUpdate {
rpu.mutation.Where(ps...)
return rpu
}
// SetPackageID sets the "package_id" field.
func (rpu *ReportPackageUpdate) SetPackageID(s string) *ReportPackageUpdate {
rpu.mutation.SetPackageID(s)
return rpu
}
// SetNillablePackageID sets the "package_id" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillablePackageID(s *string) *ReportPackageUpdate {
if s != nil {
rpu.SetPackageID(*s)
}
return rpu
}
// SetName sets the "name" field.
func (rpu *ReportPackageUpdate) SetName(s string) *ReportPackageUpdate {
rpu.mutation.SetName(s)
return rpu
}
// SetNillableName sets the "name" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableName(s *string) *ReportPackageUpdate {
if s != nil {
rpu.SetName(*s)
}
return rpu
}
// SetVersion sets the "version" field.
func (rpu *ReportPackageUpdate) SetVersion(s string) *ReportPackageUpdate {
rpu.mutation.SetVersion(s)
return rpu
}
// SetNillableVersion sets the "version" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableVersion(s *string) *ReportPackageUpdate {
if s != nil {
rpu.SetVersion(*s)
}
return rpu
}
// SetEcosystem sets the "ecosystem" field.
func (rpu *ReportPackageUpdate) SetEcosystem(s string) *ReportPackageUpdate {
rpu.mutation.SetEcosystem(s)
return rpu
}
// SetNillableEcosystem sets the "ecosystem" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableEcosystem(s *string) *ReportPackageUpdate {
if s != nil {
rpu.SetEcosystem(*s)
}
return rpu
}
// SetPackageURL sets the "package_url" field.
func (rpu *ReportPackageUpdate) SetPackageURL(s string) *ReportPackageUpdate {
rpu.mutation.SetPackageURL(s)
return rpu
}
// SetNillablePackageURL sets the "package_url" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillablePackageURL(s *string) *ReportPackageUpdate {
if s != nil {
rpu.SetPackageURL(*s)
}
return rpu
}
// SetDepth sets the "depth" field.
func (rpu *ReportPackageUpdate) SetDepth(i int) *ReportPackageUpdate {
rpu.mutation.ResetDepth()
rpu.mutation.SetDepth(i)
return rpu
}
// SetNillableDepth sets the "depth" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableDepth(i *int) *ReportPackageUpdate {
if i != nil {
rpu.SetDepth(*i)
}
return rpu
}
// AddDepth adds i to the "depth" field.
func (rpu *ReportPackageUpdate) AddDepth(i int) *ReportPackageUpdate {
rpu.mutation.AddDepth(i)
return rpu
}
// SetIsDirect sets the "is_direct" field.
func (rpu *ReportPackageUpdate) SetIsDirect(b bool) *ReportPackageUpdate {
rpu.mutation.SetIsDirect(b)
return rpu
}
// SetNillableIsDirect sets the "is_direct" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableIsDirect(b *bool) *ReportPackageUpdate {
if b != nil {
rpu.SetIsDirect(*b)
}
return rpu
}
// SetIsMalware sets the "is_malware" field.
func (rpu *ReportPackageUpdate) SetIsMalware(b bool) *ReportPackageUpdate {
rpu.mutation.SetIsMalware(b)
return rpu
}
// SetNillableIsMalware sets the "is_malware" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableIsMalware(b *bool) *ReportPackageUpdate {
if b != nil {
rpu.SetIsMalware(*b)
}
return rpu
}
// SetIsSuspicious sets the "is_suspicious" field.
func (rpu *ReportPackageUpdate) SetIsSuspicious(b bool) *ReportPackageUpdate {
rpu.mutation.SetIsSuspicious(b)
return rpu
}
// SetNillableIsSuspicious sets the "is_suspicious" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableIsSuspicious(b *bool) *ReportPackageUpdate {
if b != nil {
rpu.SetIsSuspicious(*b)
}
return rpu
}
// SetPackageDetails sets the "package_details" field.
func (rpu *ReportPackageUpdate) SetPackageDetails(m map[string]interface{}) *ReportPackageUpdate {
rpu.mutation.SetPackageDetails(m)
return rpu
}
// ClearPackageDetails clears the value of the "package_details" field.
func (rpu *ReportPackageUpdate) ClearPackageDetails() *ReportPackageUpdate {
rpu.mutation.ClearPackageDetails()
return rpu
}
// SetInsightsV2 sets the "insights_v2" field.
func (rpu *ReportPackageUpdate) SetInsightsV2(m map[string]interface{}) *ReportPackageUpdate {
rpu.mutation.SetInsightsV2(m)
return rpu
}
// ClearInsightsV2 clears the value of the "insights_v2" field.
func (rpu *ReportPackageUpdate) ClearInsightsV2() *ReportPackageUpdate {
rpu.mutation.ClearInsightsV2()
return rpu
}
// SetCodeAnalysis sets the "code_analysis" field.
func (rpu *ReportPackageUpdate) SetCodeAnalysis(m map[string]interface{}) *ReportPackageUpdate {
rpu.mutation.SetCodeAnalysis(m)
return rpu
}
// ClearCodeAnalysis clears the value of the "code_analysis" field.
func (rpu *ReportPackageUpdate) ClearCodeAnalysis() *ReportPackageUpdate {
rpu.mutation.ClearCodeAnalysis()
return rpu
}
// SetCreatedAt sets the "created_at" field.
func (rpu *ReportPackageUpdate) SetCreatedAt(t time.Time) *ReportPackageUpdate {
rpu.mutation.SetCreatedAt(t)
return rpu
}
// SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableCreatedAt(t *time.Time) *ReportPackageUpdate {
if t != nil {
rpu.SetCreatedAt(*t)
}
return rpu
}
// ClearCreatedAt clears the value of the "created_at" field.
func (rpu *ReportPackageUpdate) ClearCreatedAt() *ReportPackageUpdate {
rpu.mutation.ClearCreatedAt()
return rpu
}
// SetUpdatedAt sets the "updated_at" field.
func (rpu *ReportPackageUpdate) SetUpdatedAt(t time.Time) *ReportPackageUpdate {
rpu.mutation.SetUpdatedAt(t)
return rpu
}
// SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableUpdatedAt(t *time.Time) *ReportPackageUpdate {
if t != nil {
rpu.SetUpdatedAt(*t)
}
return rpu
}
// ClearUpdatedAt clears the value of the "updated_at" field.
func (rpu *ReportPackageUpdate) ClearUpdatedAt() *ReportPackageUpdate {
rpu.mutation.ClearUpdatedAt()
return rpu
}
// AddManifestIDs adds the "manifests" edge to the ReportPackageManifest entity by IDs.
func (rpu *ReportPackageUpdate) AddManifestIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddManifestIDs(ids...)
return rpu
}
// AddManifests adds the "manifests" edges to the ReportPackageManifest entity.
func (rpu *ReportPackageUpdate) AddManifests(r ...*ReportPackageManifest) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddManifestIDs(ids...)
}
// AddVulnerabilityIDs adds the "vulnerabilities" edge to the ReportVulnerability entity by IDs.
func (rpu *ReportPackageUpdate) AddVulnerabilityIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddVulnerabilityIDs(ids...)
return rpu
}
// AddVulnerabilities adds the "vulnerabilities" edges to the ReportVulnerability entity.
func (rpu *ReportPackageUpdate) AddVulnerabilities(r ...*ReportVulnerability) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddVulnerabilityIDs(ids...)
}
// AddLicenseIDs adds the "licenses" edge to the ReportLicense entity by IDs.
func (rpu *ReportPackageUpdate) AddLicenseIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddLicenseIDs(ids...)
return rpu
}
// AddLicenses adds the "licenses" edges to the ReportLicense entity.
func (rpu *ReportPackageUpdate) AddLicenses(r ...*ReportLicense) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddLicenseIDs(ids...)
}
// AddDependencyIDs adds the "dependencies" edge to the ReportDependency entity by IDs.
func (rpu *ReportPackageUpdate) AddDependencyIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddDependencyIDs(ids...)
return rpu
}
// AddDependencies adds the "dependencies" edges to the ReportDependency entity.
func (rpu *ReportPackageUpdate) AddDependencies(r ...*ReportDependency) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddDependencyIDs(ids...)
}
// SetMalwareAnalysisID sets the "malware_analysis" edge to the ReportMalware entity by ID.
func (rpu *ReportPackageUpdate) SetMalwareAnalysisID(id int) *ReportPackageUpdate {
rpu.mutation.SetMalwareAnalysisID(id)
return rpu
}
// SetNillableMalwareAnalysisID sets the "malware_analysis" edge to the ReportMalware entity by ID if the given value is not nil.
func (rpu *ReportPackageUpdate) SetNillableMalwareAnalysisID(id *int) *ReportPackageUpdate {
if id != nil {
rpu = rpu.SetMalwareAnalysisID(*id)
}
return rpu
}
// SetMalwareAnalysis sets the "malware_analysis" edge to the ReportMalware entity.
func (rpu *ReportPackageUpdate) SetMalwareAnalysis(r *ReportMalware) *ReportPackageUpdate {
return rpu.SetMalwareAnalysisID(r.ID)
}
// AddProjectIDs adds the "projects" edge to the ReportProject entity by IDs.
func (rpu *ReportPackageUpdate) AddProjectIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddProjectIDs(ids...)
return rpu
}
// AddProjects adds the "projects" edges to the ReportProject entity.
func (rpu *ReportPackageUpdate) AddProjects(r ...*ReportProject) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddProjectIDs(ids...)
}
// AddSlsaProvenanceIDs adds the "slsa_provenances" edge to the ReportSlsaProvenance entity by IDs.
func (rpu *ReportPackageUpdate) AddSlsaProvenanceIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.AddSlsaProvenanceIDs(ids...)
return rpu
}
// AddSlsaProvenances adds the "slsa_provenances" edges to the ReportSlsaProvenance entity.
func (rpu *ReportPackageUpdate) AddSlsaProvenances(r ...*ReportSlsaProvenance) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.AddSlsaProvenanceIDs(ids...)
}
// Mutation returns the ReportPackageMutation object of the builder.
func (rpu *ReportPackageUpdate) Mutation() *ReportPackageMutation {
return rpu.mutation
}
// ClearManifests clears all "manifests" edges to the ReportPackageManifest entity.
func (rpu *ReportPackageUpdate) ClearManifests() *ReportPackageUpdate {
rpu.mutation.ClearManifests()
return rpu
}
// RemoveManifestIDs removes the "manifests" edge to ReportPackageManifest entities by IDs.
func (rpu *ReportPackageUpdate) RemoveManifestIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveManifestIDs(ids...)
return rpu
}
// RemoveManifests removes "manifests" edges to ReportPackageManifest entities.
func (rpu *ReportPackageUpdate) RemoveManifests(r ...*ReportPackageManifest) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveManifestIDs(ids...)
}
// ClearVulnerabilities clears all "vulnerabilities" edges to the ReportVulnerability entity.
func (rpu *ReportPackageUpdate) ClearVulnerabilities() *ReportPackageUpdate {
rpu.mutation.ClearVulnerabilities()
return rpu
}
// RemoveVulnerabilityIDs removes the "vulnerabilities" edge to ReportVulnerability entities by IDs.
func (rpu *ReportPackageUpdate) RemoveVulnerabilityIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveVulnerabilityIDs(ids...)
return rpu
}
// RemoveVulnerabilities removes "vulnerabilities" edges to ReportVulnerability entities.
func (rpu *ReportPackageUpdate) RemoveVulnerabilities(r ...*ReportVulnerability) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveVulnerabilityIDs(ids...)
}
// ClearLicenses clears all "licenses" edges to the ReportLicense entity.
func (rpu *ReportPackageUpdate) ClearLicenses() *ReportPackageUpdate {
rpu.mutation.ClearLicenses()
return rpu
}
// RemoveLicenseIDs removes the "licenses" edge to ReportLicense entities by IDs.
func (rpu *ReportPackageUpdate) RemoveLicenseIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveLicenseIDs(ids...)
return rpu
}
// RemoveLicenses removes "licenses" edges to ReportLicense entities.
func (rpu *ReportPackageUpdate) RemoveLicenses(r ...*ReportLicense) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveLicenseIDs(ids...)
}
// ClearDependencies clears all "dependencies" edges to the ReportDependency entity.
func (rpu *ReportPackageUpdate) ClearDependencies() *ReportPackageUpdate {
rpu.mutation.ClearDependencies()
return rpu
}
// RemoveDependencyIDs removes the "dependencies" edge to ReportDependency entities by IDs.
func (rpu *ReportPackageUpdate) RemoveDependencyIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveDependencyIDs(ids...)
return rpu
}
// RemoveDependencies removes "dependencies" edges to ReportDependency entities.
func (rpu *ReportPackageUpdate) RemoveDependencies(r ...*ReportDependency) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveDependencyIDs(ids...)
}
// ClearMalwareAnalysis clears the "malware_analysis" edge to the ReportMalware entity.
func (rpu *ReportPackageUpdate) ClearMalwareAnalysis() *ReportPackageUpdate {
rpu.mutation.ClearMalwareAnalysis()
return rpu
}
// ClearProjects clears all "projects" edges to the ReportProject entity.
func (rpu *ReportPackageUpdate) ClearProjects() *ReportPackageUpdate {
rpu.mutation.ClearProjects()
return rpu
}
// RemoveProjectIDs removes the "projects" edge to ReportProject entities by IDs.
func (rpu *ReportPackageUpdate) RemoveProjectIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveProjectIDs(ids...)
return rpu
}
// RemoveProjects removes "projects" edges to ReportProject entities.
func (rpu *ReportPackageUpdate) RemoveProjects(r ...*ReportProject) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveProjectIDs(ids...)
}
// ClearSlsaProvenances clears all "slsa_provenances" edges to the ReportSlsaProvenance entity.
func (rpu *ReportPackageUpdate) ClearSlsaProvenances() *ReportPackageUpdate {
rpu.mutation.ClearSlsaProvenances()
return rpu
}
// RemoveSlsaProvenanceIDs removes the "slsa_provenances" edge to ReportSlsaProvenance entities by IDs.
func (rpu *ReportPackageUpdate) RemoveSlsaProvenanceIDs(ids ...int) *ReportPackageUpdate {
rpu.mutation.RemoveSlsaProvenanceIDs(ids...)
return rpu
}
// RemoveSlsaProvenances removes "slsa_provenances" edges to ReportSlsaProvenance entities.
func (rpu *ReportPackageUpdate) RemoveSlsaProvenances(r ...*ReportSlsaProvenance) *ReportPackageUpdate {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpu.RemoveSlsaProvenanceIDs(ids...)
}
// Save executes the query and returns the number of nodes affected by the update operation.
func (rpu *ReportPackageUpdate) Save(ctx context.Context) (int, error) {
return withHooks(ctx, rpu.sqlSave, rpu.mutation, rpu.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (rpu *ReportPackageUpdate) SaveX(ctx context.Context) int {
affected, err := rpu.Save(ctx)
if err != nil {
panic(err)
}
return affected
}
// Exec executes the query.
func (rpu *ReportPackageUpdate) Exec(ctx context.Context) error {
_, err := rpu.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (rpu *ReportPackageUpdate) ExecX(ctx context.Context) {
if err := rpu.Exec(ctx); err != nil {
panic(err)
}
}
// check runs all checks and user-defined validators on the builder.
func (rpu *ReportPackageUpdate) check() error {
if v, ok := rpu.mutation.PackageID(); ok {
if err := reportpackage.PackageIDValidator(v); err != nil {
return &ValidationError{Name: "package_id", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.package_id": %w`, err)}
}
}
if v, ok := rpu.mutation.Name(); ok {
if err := reportpackage.NameValidator(v); err != nil {
return &ValidationError{Name: "name", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.name": %w`, err)}
}
}
if v, ok := rpu.mutation.Version(); ok {
if err := reportpackage.VersionValidator(v); err != nil {
return &ValidationError{Name: "version", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.version": %w`, err)}
}
}
if v, ok := rpu.mutation.Ecosystem(); ok {
if err := reportpackage.EcosystemValidator(v); err != nil {
return &ValidationError{Name: "ecosystem", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.ecosystem": %w`, err)}
}
}
if v, ok := rpu.mutation.PackageURL(); ok {
if err := reportpackage.PackageURLValidator(v); err != nil {
return &ValidationError{Name: "package_url", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.package_url": %w`, err)}
}
}
return nil
}
func (rpu *ReportPackageUpdate) sqlSave(ctx context.Context) (n int, err error) {
if err := rpu.check(); err != nil {
return n, err
}
_spec := sqlgraph.NewUpdateSpec(reportpackage.Table, reportpackage.Columns, sqlgraph.NewFieldSpec(reportpackage.FieldID, field.TypeInt))
if ps := rpu.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := rpu.mutation.PackageID(); ok {
_spec.SetField(reportpackage.FieldPackageID, field.TypeString, value)
}
if value, ok := rpu.mutation.Name(); ok {
_spec.SetField(reportpackage.FieldName, field.TypeString, value)
}
if value, ok := rpu.mutation.Version(); ok {
_spec.SetField(reportpackage.FieldVersion, field.TypeString, value)
}
if value, ok := rpu.mutation.Ecosystem(); ok {
_spec.SetField(reportpackage.FieldEcosystem, field.TypeString, value)
}
if value, ok := rpu.mutation.PackageURL(); ok {
_spec.SetField(reportpackage.FieldPackageURL, field.TypeString, value)
}
if value, ok := rpu.mutation.Depth(); ok {
_spec.SetField(reportpackage.FieldDepth, field.TypeInt, value)
}
if value, ok := rpu.mutation.AddedDepth(); ok {
_spec.AddField(reportpackage.FieldDepth, field.TypeInt, value)
}
if value, ok := rpu.mutation.IsDirect(); ok {
_spec.SetField(reportpackage.FieldIsDirect, field.TypeBool, value)
}
if value, ok := rpu.mutation.IsMalware(); ok {
_spec.SetField(reportpackage.FieldIsMalware, field.TypeBool, value)
}
if value, ok := rpu.mutation.IsSuspicious(); ok {
_spec.SetField(reportpackage.FieldIsSuspicious, field.TypeBool, value)
}
if value, ok := rpu.mutation.PackageDetails(); ok {
_spec.SetField(reportpackage.FieldPackageDetails, field.TypeJSON, value)
}
if rpu.mutation.PackageDetailsCleared() {
_spec.ClearField(reportpackage.FieldPackageDetails, field.TypeJSON)
}
if value, ok := rpu.mutation.InsightsV2(); ok {
_spec.SetField(reportpackage.FieldInsightsV2, field.TypeJSON, value)
}
if rpu.mutation.InsightsV2Cleared() {
_spec.ClearField(reportpackage.FieldInsightsV2, field.TypeJSON)
}
if value, ok := rpu.mutation.CodeAnalysis(); ok {
_spec.SetField(reportpackage.FieldCodeAnalysis, field.TypeJSON, value)
}
if rpu.mutation.CodeAnalysisCleared() {
_spec.ClearField(reportpackage.FieldCodeAnalysis, field.TypeJSON)
}
if value, ok := rpu.mutation.CreatedAt(); ok {
_spec.SetField(reportpackage.FieldCreatedAt, field.TypeTime, value)
}
if rpu.mutation.CreatedAtCleared() {
_spec.ClearField(reportpackage.FieldCreatedAt, field.TypeTime)
}
if value, ok := rpu.mutation.UpdatedAt(); ok {
_spec.SetField(reportpackage.FieldUpdatedAt, field.TypeTime, value)
}
if rpu.mutation.UpdatedAtCleared() {
_spec.ClearField(reportpackage.FieldUpdatedAt, field.TypeTime)
}
if rpu.mutation.ManifestsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedManifestsIDs(); len(nodes) > 0 && !rpu.mutation.ManifestsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.ManifestsIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.VulnerabilitiesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedVulnerabilitiesIDs(); len(nodes) > 0 && !rpu.mutation.VulnerabilitiesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.VulnerabilitiesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.LicensesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedLicensesIDs(); len(nodes) > 0 && !rpu.mutation.LicensesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.LicensesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.DependenciesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedDependenciesIDs(); len(nodes) > 0 && !rpu.mutation.DependenciesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.DependenciesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.MalwareAnalysisCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2O,
Inverse: false,
Table: reportpackage.MalwareAnalysisTable,
Columns: []string{reportpackage.MalwareAnalysisColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportmalware.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.MalwareAnalysisIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2O,
Inverse: false,
Table: reportpackage.MalwareAnalysisTable,
Columns: []string{reportpackage.MalwareAnalysisColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportmalware.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.ProjectsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedProjectsIDs(); len(nodes) > 0 && !rpu.mutation.ProjectsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.ProjectsIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpu.mutation.SlsaProvenancesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.RemovedSlsaProvenancesIDs(); len(nodes) > 0 && !rpu.mutation.SlsaProvenancesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpu.mutation.SlsaProvenancesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if n, err = sqlgraph.UpdateNodes(ctx, rpu.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{reportpackage.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return 0, err
}
rpu.mutation.done = true
return n, nil
}
// ReportPackageUpdateOne is the builder for updating a single ReportPackage entity.
type ReportPackageUpdateOne struct {
config
fields []string
hooks []Hook
mutation *ReportPackageMutation
}
// SetPackageID sets the "package_id" field.
func (rpuo *ReportPackageUpdateOne) SetPackageID(s string) *ReportPackageUpdateOne {
rpuo.mutation.SetPackageID(s)
return rpuo
}
// SetNillablePackageID sets the "package_id" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillablePackageID(s *string) *ReportPackageUpdateOne {
if s != nil {
rpuo.SetPackageID(*s)
}
return rpuo
}
// SetName sets the "name" field.
func (rpuo *ReportPackageUpdateOne) SetName(s string) *ReportPackageUpdateOne {
rpuo.mutation.SetName(s)
return rpuo
}
// SetNillableName sets the "name" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableName(s *string) *ReportPackageUpdateOne {
if s != nil {
rpuo.SetName(*s)
}
return rpuo
}
// SetVersion sets the "version" field.
func (rpuo *ReportPackageUpdateOne) SetVersion(s string) *ReportPackageUpdateOne {
rpuo.mutation.SetVersion(s)
return rpuo
}
// SetNillableVersion sets the "version" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableVersion(s *string) *ReportPackageUpdateOne {
if s != nil {
rpuo.SetVersion(*s)
}
return rpuo
}
// SetEcosystem sets the "ecosystem" field.
func (rpuo *ReportPackageUpdateOne) SetEcosystem(s string) *ReportPackageUpdateOne {
rpuo.mutation.SetEcosystem(s)
return rpuo
}
// SetNillableEcosystem sets the "ecosystem" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableEcosystem(s *string) *ReportPackageUpdateOne {
if s != nil {
rpuo.SetEcosystem(*s)
}
return rpuo
}
// SetPackageURL sets the "package_url" field.
func (rpuo *ReportPackageUpdateOne) SetPackageURL(s string) *ReportPackageUpdateOne {
rpuo.mutation.SetPackageURL(s)
return rpuo
}
// SetNillablePackageURL sets the "package_url" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillablePackageURL(s *string) *ReportPackageUpdateOne {
if s != nil {
rpuo.SetPackageURL(*s)
}
return rpuo
}
// SetDepth sets the "depth" field.
func (rpuo *ReportPackageUpdateOne) SetDepth(i int) *ReportPackageUpdateOne {
rpuo.mutation.ResetDepth()
rpuo.mutation.SetDepth(i)
return rpuo
}
// SetNillableDepth sets the "depth" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableDepth(i *int) *ReportPackageUpdateOne {
if i != nil {
rpuo.SetDepth(*i)
}
return rpuo
}
// AddDepth adds i to the "depth" field.
func (rpuo *ReportPackageUpdateOne) AddDepth(i int) *ReportPackageUpdateOne {
rpuo.mutation.AddDepth(i)
return rpuo
}
// SetIsDirect sets the "is_direct" field.
func (rpuo *ReportPackageUpdateOne) SetIsDirect(b bool) *ReportPackageUpdateOne {
rpuo.mutation.SetIsDirect(b)
return rpuo
}
// SetNillableIsDirect sets the "is_direct" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableIsDirect(b *bool) *ReportPackageUpdateOne {
if b != nil {
rpuo.SetIsDirect(*b)
}
return rpuo
}
// SetIsMalware sets the "is_malware" field.
func (rpuo *ReportPackageUpdateOne) SetIsMalware(b bool) *ReportPackageUpdateOne {
rpuo.mutation.SetIsMalware(b)
return rpuo
}
// SetNillableIsMalware sets the "is_malware" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableIsMalware(b *bool) *ReportPackageUpdateOne {
if b != nil {
rpuo.SetIsMalware(*b)
}
return rpuo
}
// SetIsSuspicious sets the "is_suspicious" field.
func (rpuo *ReportPackageUpdateOne) SetIsSuspicious(b bool) *ReportPackageUpdateOne {
rpuo.mutation.SetIsSuspicious(b)
return rpuo
}
// SetNillableIsSuspicious sets the "is_suspicious" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableIsSuspicious(b *bool) *ReportPackageUpdateOne {
if b != nil {
rpuo.SetIsSuspicious(*b)
}
return rpuo
}
// SetPackageDetails sets the "package_details" field.
func (rpuo *ReportPackageUpdateOne) SetPackageDetails(m map[string]interface{}) *ReportPackageUpdateOne {
rpuo.mutation.SetPackageDetails(m)
return rpuo
}
// ClearPackageDetails clears the value of the "package_details" field.
func (rpuo *ReportPackageUpdateOne) ClearPackageDetails() *ReportPackageUpdateOne {
rpuo.mutation.ClearPackageDetails()
return rpuo
}
// SetInsightsV2 sets the "insights_v2" field.
func (rpuo *ReportPackageUpdateOne) SetInsightsV2(m map[string]interface{}) *ReportPackageUpdateOne {
rpuo.mutation.SetInsightsV2(m)
return rpuo
}
// ClearInsightsV2 clears the value of the "insights_v2" field.
func (rpuo *ReportPackageUpdateOne) ClearInsightsV2() *ReportPackageUpdateOne {
rpuo.mutation.ClearInsightsV2()
return rpuo
}
// SetCodeAnalysis sets the "code_analysis" field.
func (rpuo *ReportPackageUpdateOne) SetCodeAnalysis(m map[string]interface{}) *ReportPackageUpdateOne {
rpuo.mutation.SetCodeAnalysis(m)
return rpuo
}
// ClearCodeAnalysis clears the value of the "code_analysis" field.
func (rpuo *ReportPackageUpdateOne) ClearCodeAnalysis() *ReportPackageUpdateOne {
rpuo.mutation.ClearCodeAnalysis()
return rpuo
}
// SetCreatedAt sets the "created_at" field.
func (rpuo *ReportPackageUpdateOne) SetCreatedAt(t time.Time) *ReportPackageUpdateOne {
rpuo.mutation.SetCreatedAt(t)
return rpuo
}
// SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableCreatedAt(t *time.Time) *ReportPackageUpdateOne {
if t != nil {
rpuo.SetCreatedAt(*t)
}
return rpuo
}
// ClearCreatedAt clears the value of the "created_at" field.
func (rpuo *ReportPackageUpdateOne) ClearCreatedAt() *ReportPackageUpdateOne {
rpuo.mutation.ClearCreatedAt()
return rpuo
}
// SetUpdatedAt sets the "updated_at" field.
func (rpuo *ReportPackageUpdateOne) SetUpdatedAt(t time.Time) *ReportPackageUpdateOne {
rpuo.mutation.SetUpdatedAt(t)
return rpuo
}
// SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableUpdatedAt(t *time.Time) *ReportPackageUpdateOne {
if t != nil {
rpuo.SetUpdatedAt(*t)
}
return rpuo
}
// ClearUpdatedAt clears the value of the "updated_at" field.
func (rpuo *ReportPackageUpdateOne) ClearUpdatedAt() *ReportPackageUpdateOne {
rpuo.mutation.ClearUpdatedAt()
return rpuo
}
// AddManifestIDs adds the "manifests" edge to the ReportPackageManifest entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddManifestIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddManifestIDs(ids...)
return rpuo
}
// AddManifests adds the "manifests" edges to the ReportPackageManifest entity.
func (rpuo *ReportPackageUpdateOne) AddManifests(r ...*ReportPackageManifest) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddManifestIDs(ids...)
}
// AddVulnerabilityIDs adds the "vulnerabilities" edge to the ReportVulnerability entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddVulnerabilityIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddVulnerabilityIDs(ids...)
return rpuo
}
// AddVulnerabilities adds the "vulnerabilities" edges to the ReportVulnerability entity.
func (rpuo *ReportPackageUpdateOne) AddVulnerabilities(r ...*ReportVulnerability) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddVulnerabilityIDs(ids...)
}
// AddLicenseIDs adds the "licenses" edge to the ReportLicense entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddLicenseIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddLicenseIDs(ids...)
return rpuo
}
// AddLicenses adds the "licenses" edges to the ReportLicense entity.
func (rpuo *ReportPackageUpdateOne) AddLicenses(r ...*ReportLicense) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddLicenseIDs(ids...)
}
// AddDependencyIDs adds the "dependencies" edge to the ReportDependency entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddDependencyIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddDependencyIDs(ids...)
return rpuo
}
// AddDependencies adds the "dependencies" edges to the ReportDependency entity.
func (rpuo *ReportPackageUpdateOne) AddDependencies(r ...*ReportDependency) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddDependencyIDs(ids...)
}
// SetMalwareAnalysisID sets the "malware_analysis" edge to the ReportMalware entity by ID.
func (rpuo *ReportPackageUpdateOne) SetMalwareAnalysisID(id int) *ReportPackageUpdateOne {
rpuo.mutation.SetMalwareAnalysisID(id)
return rpuo
}
// SetNillableMalwareAnalysisID sets the "malware_analysis" edge to the ReportMalware entity by ID if the given value is not nil.
func (rpuo *ReportPackageUpdateOne) SetNillableMalwareAnalysisID(id *int) *ReportPackageUpdateOne {
if id != nil {
rpuo = rpuo.SetMalwareAnalysisID(*id)
}
return rpuo
}
// SetMalwareAnalysis sets the "malware_analysis" edge to the ReportMalware entity.
func (rpuo *ReportPackageUpdateOne) SetMalwareAnalysis(r *ReportMalware) *ReportPackageUpdateOne {
return rpuo.SetMalwareAnalysisID(r.ID)
}
// AddProjectIDs adds the "projects" edge to the ReportProject entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddProjectIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddProjectIDs(ids...)
return rpuo
}
// AddProjects adds the "projects" edges to the ReportProject entity.
func (rpuo *ReportPackageUpdateOne) AddProjects(r ...*ReportProject) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddProjectIDs(ids...)
}
// AddSlsaProvenanceIDs adds the "slsa_provenances" edge to the ReportSlsaProvenance entity by IDs.
func (rpuo *ReportPackageUpdateOne) AddSlsaProvenanceIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.AddSlsaProvenanceIDs(ids...)
return rpuo
}
// AddSlsaProvenances adds the "slsa_provenances" edges to the ReportSlsaProvenance entity.
func (rpuo *ReportPackageUpdateOne) AddSlsaProvenances(r ...*ReportSlsaProvenance) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.AddSlsaProvenanceIDs(ids...)
}
// Mutation returns the ReportPackageMutation object of the builder.
func (rpuo *ReportPackageUpdateOne) Mutation() *ReportPackageMutation {
return rpuo.mutation
}
// ClearManifests clears all "manifests" edges to the ReportPackageManifest entity.
func (rpuo *ReportPackageUpdateOne) ClearManifests() *ReportPackageUpdateOne {
rpuo.mutation.ClearManifests()
return rpuo
}
// RemoveManifestIDs removes the "manifests" edge to ReportPackageManifest entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveManifestIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveManifestIDs(ids...)
return rpuo
}
// RemoveManifests removes "manifests" edges to ReportPackageManifest entities.
func (rpuo *ReportPackageUpdateOne) RemoveManifests(r ...*ReportPackageManifest) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveManifestIDs(ids...)
}
// ClearVulnerabilities clears all "vulnerabilities" edges to the ReportVulnerability entity.
func (rpuo *ReportPackageUpdateOne) ClearVulnerabilities() *ReportPackageUpdateOne {
rpuo.mutation.ClearVulnerabilities()
return rpuo
}
// RemoveVulnerabilityIDs removes the "vulnerabilities" edge to ReportVulnerability entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveVulnerabilityIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveVulnerabilityIDs(ids...)
return rpuo
}
// RemoveVulnerabilities removes "vulnerabilities" edges to ReportVulnerability entities.
func (rpuo *ReportPackageUpdateOne) RemoveVulnerabilities(r ...*ReportVulnerability) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveVulnerabilityIDs(ids...)
}
// ClearLicenses clears all "licenses" edges to the ReportLicense entity.
func (rpuo *ReportPackageUpdateOne) ClearLicenses() *ReportPackageUpdateOne {
rpuo.mutation.ClearLicenses()
return rpuo
}
// RemoveLicenseIDs removes the "licenses" edge to ReportLicense entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveLicenseIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveLicenseIDs(ids...)
return rpuo
}
// RemoveLicenses removes "licenses" edges to ReportLicense entities.
func (rpuo *ReportPackageUpdateOne) RemoveLicenses(r ...*ReportLicense) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveLicenseIDs(ids...)
}
// ClearDependencies clears all "dependencies" edges to the ReportDependency entity.
func (rpuo *ReportPackageUpdateOne) ClearDependencies() *ReportPackageUpdateOne {
rpuo.mutation.ClearDependencies()
return rpuo
}
// RemoveDependencyIDs removes the "dependencies" edge to ReportDependency entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveDependencyIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveDependencyIDs(ids...)
return rpuo
}
// RemoveDependencies removes "dependencies" edges to ReportDependency entities.
func (rpuo *ReportPackageUpdateOne) RemoveDependencies(r ...*ReportDependency) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveDependencyIDs(ids...)
}
// ClearMalwareAnalysis clears the "malware_analysis" edge to the ReportMalware entity.
func (rpuo *ReportPackageUpdateOne) ClearMalwareAnalysis() *ReportPackageUpdateOne {
rpuo.mutation.ClearMalwareAnalysis()
return rpuo
}
// ClearProjects clears all "projects" edges to the ReportProject entity.
func (rpuo *ReportPackageUpdateOne) ClearProjects() *ReportPackageUpdateOne {
rpuo.mutation.ClearProjects()
return rpuo
}
// RemoveProjectIDs removes the "projects" edge to ReportProject entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveProjectIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveProjectIDs(ids...)
return rpuo
}
// RemoveProjects removes "projects" edges to ReportProject entities.
func (rpuo *ReportPackageUpdateOne) RemoveProjects(r ...*ReportProject) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveProjectIDs(ids...)
}
// ClearSlsaProvenances clears all "slsa_provenances" edges to the ReportSlsaProvenance entity.
func (rpuo *ReportPackageUpdateOne) ClearSlsaProvenances() *ReportPackageUpdateOne {
rpuo.mutation.ClearSlsaProvenances()
return rpuo
}
// RemoveSlsaProvenanceIDs removes the "slsa_provenances" edge to ReportSlsaProvenance entities by IDs.
func (rpuo *ReportPackageUpdateOne) RemoveSlsaProvenanceIDs(ids ...int) *ReportPackageUpdateOne {
rpuo.mutation.RemoveSlsaProvenanceIDs(ids...)
return rpuo
}
// RemoveSlsaProvenances removes "slsa_provenances" edges to ReportSlsaProvenance entities.
func (rpuo *ReportPackageUpdateOne) RemoveSlsaProvenances(r ...*ReportSlsaProvenance) *ReportPackageUpdateOne {
ids := make([]int, len(r))
for i := range r {
ids[i] = r[i].ID
}
return rpuo.RemoveSlsaProvenanceIDs(ids...)
}
// Where appends a list predicates to the ReportPackageUpdate builder.
func (rpuo *ReportPackageUpdateOne) Where(ps ...predicate.ReportPackage) *ReportPackageUpdateOne {
rpuo.mutation.Where(ps...)
return rpuo
}
// Select allows selecting one or more fields (columns) of the returned entity.
// The default is selecting all fields defined in the entity schema.
func (rpuo *ReportPackageUpdateOne) Select(field string, fields ...string) *ReportPackageUpdateOne {
rpuo.fields = append([]string{field}, fields...)
return rpuo
}
// Save executes the query and returns the updated ReportPackage entity.
func (rpuo *ReportPackageUpdateOne) Save(ctx context.Context) (*ReportPackage, error) {
return withHooks(ctx, rpuo.sqlSave, rpuo.mutation, rpuo.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (rpuo *ReportPackageUpdateOne) SaveX(ctx context.Context) *ReportPackage {
node, err := rpuo.Save(ctx)
if err != nil {
panic(err)
}
return node
}
// Exec executes the query on the entity.
func (rpuo *ReportPackageUpdateOne) Exec(ctx context.Context) error {
_, err := rpuo.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (rpuo *ReportPackageUpdateOne) ExecX(ctx context.Context) {
if err := rpuo.Exec(ctx); err != nil {
panic(err)
}
}
// check runs all checks and user-defined validators on the builder.
func (rpuo *ReportPackageUpdateOne) check() error {
if v, ok := rpuo.mutation.PackageID(); ok {
if err := reportpackage.PackageIDValidator(v); err != nil {
return &ValidationError{Name: "package_id", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.package_id": %w`, err)}
}
}
if v, ok := rpuo.mutation.Name(); ok {
if err := reportpackage.NameValidator(v); err != nil {
return &ValidationError{Name: "name", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.name": %w`, err)}
}
}
if v, ok := rpuo.mutation.Version(); ok {
if err := reportpackage.VersionValidator(v); err != nil {
return &ValidationError{Name: "version", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.version": %w`, err)}
}
}
if v, ok := rpuo.mutation.Ecosystem(); ok {
if err := reportpackage.EcosystemValidator(v); err != nil {
return &ValidationError{Name: "ecosystem", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.ecosystem": %w`, err)}
}
}
if v, ok := rpuo.mutation.PackageURL(); ok {
if err := reportpackage.PackageURLValidator(v); err != nil {
return &ValidationError{Name: "package_url", err: fmt.Errorf(`ent: validator failed for field "ReportPackage.package_url": %w`, err)}
}
}
return nil
}
func (rpuo *ReportPackageUpdateOne) sqlSave(ctx context.Context) (_node *ReportPackage, err error) {
if err := rpuo.check(); err != nil {
return _node, err
}
_spec := sqlgraph.NewUpdateSpec(reportpackage.Table, reportpackage.Columns, sqlgraph.NewFieldSpec(reportpackage.FieldID, field.TypeInt))
id, ok := rpuo.mutation.ID()
if !ok {
return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "ReportPackage.id" for update`)}
}
_spec.Node.ID.Value = id
if fields := rpuo.fields; len(fields) > 0 {
_spec.Node.Columns = make([]string, 0, len(fields))
_spec.Node.Columns = append(_spec.Node.Columns, reportpackage.FieldID)
for _, f := range fields {
if !reportpackage.ValidColumn(f) {
return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)}
}
if f != reportpackage.FieldID {
_spec.Node.Columns = append(_spec.Node.Columns, f)
}
}
}
if ps := rpuo.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := rpuo.mutation.PackageID(); ok {
_spec.SetField(reportpackage.FieldPackageID, field.TypeString, value)
}
if value, ok := rpuo.mutation.Name(); ok {
_spec.SetField(reportpackage.FieldName, field.TypeString, value)
}
if value, ok := rpuo.mutation.Version(); ok {
_spec.SetField(reportpackage.FieldVersion, field.TypeString, value)
}
if value, ok := rpuo.mutation.Ecosystem(); ok {
_spec.SetField(reportpackage.FieldEcosystem, field.TypeString, value)
}
if value, ok := rpuo.mutation.PackageURL(); ok {
_spec.SetField(reportpackage.FieldPackageURL, field.TypeString, value)
}
if value, ok := rpuo.mutation.Depth(); ok {
_spec.SetField(reportpackage.FieldDepth, field.TypeInt, value)
}
if value, ok := rpuo.mutation.AddedDepth(); ok {
_spec.AddField(reportpackage.FieldDepth, field.TypeInt, value)
}
if value, ok := rpuo.mutation.IsDirect(); ok {
_spec.SetField(reportpackage.FieldIsDirect, field.TypeBool, value)
}
if value, ok := rpuo.mutation.IsMalware(); ok {
_spec.SetField(reportpackage.FieldIsMalware, field.TypeBool, value)
}
if value, ok := rpuo.mutation.IsSuspicious(); ok {
_spec.SetField(reportpackage.FieldIsSuspicious, field.TypeBool, value)
}
if value, ok := rpuo.mutation.PackageDetails(); ok {
_spec.SetField(reportpackage.FieldPackageDetails, field.TypeJSON, value)
}
if rpuo.mutation.PackageDetailsCleared() {
_spec.ClearField(reportpackage.FieldPackageDetails, field.TypeJSON)
}
if value, ok := rpuo.mutation.InsightsV2(); ok {
_spec.SetField(reportpackage.FieldInsightsV2, field.TypeJSON, value)
}
if rpuo.mutation.InsightsV2Cleared() {
_spec.ClearField(reportpackage.FieldInsightsV2, field.TypeJSON)
}
if value, ok := rpuo.mutation.CodeAnalysis(); ok {
_spec.SetField(reportpackage.FieldCodeAnalysis, field.TypeJSON, value)
}
if rpuo.mutation.CodeAnalysisCleared() {
_spec.ClearField(reportpackage.FieldCodeAnalysis, field.TypeJSON)
}
if value, ok := rpuo.mutation.CreatedAt(); ok {
_spec.SetField(reportpackage.FieldCreatedAt, field.TypeTime, value)
}
if rpuo.mutation.CreatedAtCleared() {
_spec.ClearField(reportpackage.FieldCreatedAt, field.TypeTime)
}
if value, ok := rpuo.mutation.UpdatedAt(); ok {
_spec.SetField(reportpackage.FieldUpdatedAt, field.TypeTime, value)
}
if rpuo.mutation.UpdatedAtCleared() {
_spec.ClearField(reportpackage.FieldUpdatedAt, field.TypeTime)
}
if rpuo.mutation.ManifestsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedManifestsIDs(); len(nodes) > 0 && !rpuo.mutation.ManifestsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.ManifestsIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2M,
Inverse: true,
Table: reportpackage.ManifestsTable,
Columns: reportpackage.ManifestsPrimaryKey,
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportpackagemanifest.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.VulnerabilitiesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedVulnerabilitiesIDs(); len(nodes) > 0 && !rpuo.mutation.VulnerabilitiesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.VulnerabilitiesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.VulnerabilitiesTable,
Columns: []string{reportpackage.VulnerabilitiesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportvulnerability.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.LicensesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedLicensesIDs(); len(nodes) > 0 && !rpuo.mutation.LicensesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.LicensesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.LicensesTable,
Columns: []string{reportpackage.LicensesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportlicense.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.DependenciesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedDependenciesIDs(); len(nodes) > 0 && !rpuo.mutation.DependenciesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.DependenciesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.DependenciesTable,
Columns: []string{reportpackage.DependenciesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportdependency.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.MalwareAnalysisCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2O,
Inverse: false,
Table: reportpackage.MalwareAnalysisTable,
Columns: []string{reportpackage.MalwareAnalysisColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportmalware.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.MalwareAnalysisIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2O,
Inverse: false,
Table: reportpackage.MalwareAnalysisTable,
Columns: []string{reportpackage.MalwareAnalysisColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportmalware.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.ProjectsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedProjectsIDs(); len(nodes) > 0 && !rpuo.mutation.ProjectsCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.ProjectsIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.ProjectsTable,
Columns: []string{reportpackage.ProjectsColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportproject.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if rpuo.mutation.SlsaProvenancesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.RemovedSlsaProvenancesIDs(); len(nodes) > 0 && !rpuo.mutation.SlsaProvenancesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := rpuo.mutation.SlsaProvenancesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: false,
Table: reportpackage.SlsaProvenancesTable,
Columns: []string{reportpackage.SlsaProvenancesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(reportslsaprovenance.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
_node = &ReportPackage{config: rpuo.config}
_spec.Assign = _node.assignValues
_spec.ScanValues = _node.scanValues
if err = sqlgraph.UpdateNode(ctx, rpuo.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{reportpackage.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return nil, err
}
rpuo.mutation.done = true
return _node, nil
}