Skip to main content
Glama

Storyden

by Southclaws
Mozilla Public License 2.0
227
node_update.go68.3 kB
// 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/Southclaws/lexorank" "github.com/Southclaws/storyden/internal/ent/account" "github.com/Southclaws/storyden/internal/ent/asset" "github.com/Southclaws/storyden/internal/ent/collection" "github.com/Southclaws/storyden/internal/ent/link" "github.com/Southclaws/storyden/internal/ent/node" "github.com/Southclaws/storyden/internal/ent/predicate" "github.com/Southclaws/storyden/internal/ent/property" "github.com/Southclaws/storyden/internal/ent/propertyschema" "github.com/Southclaws/storyden/internal/ent/tag" "github.com/rs/xid" ) // NodeUpdate is the builder for updating Node entities. type NodeUpdate struct { config hooks []Hook mutation *NodeMutation modifiers []func(*sql.UpdateBuilder) } // Where appends a list predicates to the NodeUpdate builder. func (_u *NodeUpdate) Where(ps ...predicate.Node) *NodeUpdate { _u.mutation.Where(ps...) return _u } // SetUpdatedAt sets the "updated_at" field. func (_u *NodeUpdate) SetUpdatedAt(v time.Time) *NodeUpdate { _u.mutation.SetUpdatedAt(v) return _u } // SetDeletedAt sets the "deleted_at" field. func (_u *NodeUpdate) SetDeletedAt(v time.Time) *NodeUpdate { _u.mutation.SetDeletedAt(v) return _u } // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. func (_u *NodeUpdate) SetNillableDeletedAt(v *time.Time) *NodeUpdate { if v != nil { _u.SetDeletedAt(*v) } return _u } // ClearDeletedAt clears the value of the "deleted_at" field. func (_u *NodeUpdate) ClearDeletedAt() *NodeUpdate { _u.mutation.ClearDeletedAt() return _u } // SetIndexedAt sets the "indexed_at" field. func (_u *NodeUpdate) SetIndexedAt(v time.Time) *NodeUpdate { _u.mutation.SetIndexedAt(v) return _u } // SetNillableIndexedAt sets the "indexed_at" field if the given value is not nil. func (_u *NodeUpdate) SetNillableIndexedAt(v *time.Time) *NodeUpdate { if v != nil { _u.SetIndexedAt(*v) } return _u } // ClearIndexedAt clears the value of the "indexed_at" field. func (_u *NodeUpdate) ClearIndexedAt() *NodeUpdate { _u.mutation.ClearIndexedAt() return _u } // SetName sets the "name" field. func (_u *NodeUpdate) SetName(v string) *NodeUpdate { _u.mutation.SetName(v) return _u } // SetNillableName sets the "name" field if the given value is not nil. func (_u *NodeUpdate) SetNillableName(v *string) *NodeUpdate { if v != nil { _u.SetName(*v) } return _u } // SetSlug sets the "slug" field. func (_u *NodeUpdate) SetSlug(v string) *NodeUpdate { _u.mutation.SetSlug(v) return _u } // SetNillableSlug sets the "slug" field if the given value is not nil. func (_u *NodeUpdate) SetNillableSlug(v *string) *NodeUpdate { if v != nil { _u.SetSlug(*v) } return _u } // SetDescription sets the "description" field. func (_u *NodeUpdate) SetDescription(v string) *NodeUpdate { _u.mutation.SetDescription(v) return _u } // SetNillableDescription sets the "description" field if the given value is not nil. func (_u *NodeUpdate) SetNillableDescription(v *string) *NodeUpdate { if v != nil { _u.SetDescription(*v) } return _u } // ClearDescription clears the value of the "description" field. func (_u *NodeUpdate) ClearDescription() *NodeUpdate { _u.mutation.ClearDescription() return _u } // SetContent sets the "content" field. func (_u *NodeUpdate) SetContent(v string) *NodeUpdate { _u.mutation.SetContent(v) return _u } // SetNillableContent sets the "content" field if the given value is not nil. func (_u *NodeUpdate) SetNillableContent(v *string) *NodeUpdate { if v != nil { _u.SetContent(*v) } return _u } // ClearContent clears the value of the "content" field. func (_u *NodeUpdate) ClearContent() *NodeUpdate { _u.mutation.ClearContent() return _u } // SetParentNodeID sets the "parent_node_id" field. func (_u *NodeUpdate) SetParentNodeID(v xid.ID) *NodeUpdate { _u.mutation.SetParentNodeID(v) return _u } // SetNillableParentNodeID sets the "parent_node_id" field if the given value is not nil. func (_u *NodeUpdate) SetNillableParentNodeID(v *xid.ID) *NodeUpdate { if v != nil { _u.SetParentNodeID(*v) } return _u } // ClearParentNodeID clears the value of the "parent_node_id" field. func (_u *NodeUpdate) ClearParentNodeID() *NodeUpdate { _u.mutation.ClearParentNodeID() return _u } // SetHideChildTree sets the "hide_child_tree" field. func (_u *NodeUpdate) SetHideChildTree(v bool) *NodeUpdate { _u.mutation.SetHideChildTree(v) return _u } // SetNillableHideChildTree sets the "hide_child_tree" field if the given value is not nil. func (_u *NodeUpdate) SetNillableHideChildTree(v *bool) *NodeUpdate { if v != nil { _u.SetHideChildTree(*v) } return _u } // SetAccountID sets the "account_id" field. func (_u *NodeUpdate) SetAccountID(v xid.ID) *NodeUpdate { _u.mutation.SetAccountID(v) return _u } // SetNillableAccountID sets the "account_id" field if the given value is not nil. func (_u *NodeUpdate) SetNillableAccountID(v *xid.ID) *NodeUpdate { if v != nil { _u.SetAccountID(*v) } return _u } // SetPropertySchemaID sets the "property_schema_id" field. func (_u *NodeUpdate) SetPropertySchemaID(v xid.ID) *NodeUpdate { _u.mutation.SetPropertySchemaID(v) return _u } // SetNillablePropertySchemaID sets the "property_schema_id" field if the given value is not nil. func (_u *NodeUpdate) SetNillablePropertySchemaID(v *xid.ID) *NodeUpdate { if v != nil { _u.SetPropertySchemaID(*v) } return _u } // ClearPropertySchemaID clears the value of the "property_schema_id" field. func (_u *NodeUpdate) ClearPropertySchemaID() *NodeUpdate { _u.mutation.ClearPropertySchemaID() return _u } // SetPrimaryAssetID sets the "primary_asset_id" field. func (_u *NodeUpdate) SetPrimaryAssetID(v xid.ID) *NodeUpdate { _u.mutation.SetPrimaryAssetID(v) return _u } // SetNillablePrimaryAssetID sets the "primary_asset_id" field if the given value is not nil. func (_u *NodeUpdate) SetNillablePrimaryAssetID(v *xid.ID) *NodeUpdate { if v != nil { _u.SetPrimaryAssetID(*v) } return _u } // ClearPrimaryAssetID clears the value of the "primary_asset_id" field. func (_u *NodeUpdate) ClearPrimaryAssetID() *NodeUpdate { _u.mutation.ClearPrimaryAssetID() return _u } // SetLinkID sets the "link_id" field. func (_u *NodeUpdate) SetLinkID(v xid.ID) *NodeUpdate { _u.mutation.SetLinkID(v) return _u } // SetNillableLinkID sets the "link_id" field if the given value is not nil. func (_u *NodeUpdate) SetNillableLinkID(v *xid.ID) *NodeUpdate { if v != nil { _u.SetLinkID(*v) } return _u } // ClearLinkID clears the value of the "link_id" field. func (_u *NodeUpdate) ClearLinkID() *NodeUpdate { _u.mutation.ClearLinkID() return _u } // SetVisibility sets the "visibility" field. func (_u *NodeUpdate) SetVisibility(v node.Visibility) *NodeUpdate { _u.mutation.SetVisibility(v) return _u } // SetNillableVisibility sets the "visibility" field if the given value is not nil. func (_u *NodeUpdate) SetNillableVisibility(v *node.Visibility) *NodeUpdate { if v != nil { _u.SetVisibility(*v) } return _u } // SetSort sets the "sort" field. func (_u *NodeUpdate) SetSort(v lexorank.Key) *NodeUpdate { _u.mutation.SetSort(v) return _u } // SetNillableSort sets the "sort" field if the given value is not nil. func (_u *NodeUpdate) SetNillableSort(v *lexorank.Key) *NodeUpdate { if v != nil { _u.SetSort(*v) } return _u } // SetMetadata sets the "metadata" field. func (_u *NodeUpdate) SetMetadata(v map[string]interface{}) *NodeUpdate { _u.mutation.SetMetadata(v) return _u } // ClearMetadata clears the value of the "metadata" field. func (_u *NodeUpdate) ClearMetadata() *NodeUpdate { _u.mutation.ClearMetadata() return _u } // SetOwnerID sets the "owner" edge to the Account entity by ID. func (_u *NodeUpdate) SetOwnerID(id xid.ID) *NodeUpdate { _u.mutation.SetOwnerID(id) return _u } // SetOwner sets the "owner" edge to the Account entity. func (_u *NodeUpdate) SetOwner(v *Account) *NodeUpdate { return _u.SetOwnerID(v.ID) } // SetParentID sets the "parent" edge to the Node entity by ID. func (_u *NodeUpdate) SetParentID(id xid.ID) *NodeUpdate { _u.mutation.SetParentID(id) return _u } // SetNillableParentID sets the "parent" edge to the Node entity by ID if the given value is not nil. func (_u *NodeUpdate) SetNillableParentID(id *xid.ID) *NodeUpdate { if id != nil { _u = _u.SetParentID(*id) } return _u } // SetParent sets the "parent" edge to the Node entity. func (_u *NodeUpdate) SetParent(v *Node) *NodeUpdate { return _u.SetParentID(v.ID) } // AddNodeIDs adds the "nodes" edge to the Node entity by IDs. func (_u *NodeUpdate) AddNodeIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddNodeIDs(ids...) return _u } // AddNodes adds the "nodes" edges to the Node entity. func (_u *NodeUpdate) AddNodes(v ...*Node) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNodeIDs(ids...) } // SetPrimaryImageID sets the "primary_image" edge to the Asset entity by ID. func (_u *NodeUpdate) SetPrimaryImageID(id xid.ID) *NodeUpdate { _u.mutation.SetPrimaryImageID(id) return _u } // SetNillablePrimaryImageID sets the "primary_image" edge to the Asset entity by ID if the given value is not nil. func (_u *NodeUpdate) SetNillablePrimaryImageID(id *xid.ID) *NodeUpdate { if id != nil { _u = _u.SetPrimaryImageID(*id) } return _u } // SetPrimaryImage sets the "primary_image" edge to the Asset entity. func (_u *NodeUpdate) SetPrimaryImage(v *Asset) *NodeUpdate { return _u.SetPrimaryImageID(v.ID) } // AddAssetIDs adds the "assets" edge to the Asset entity by IDs. func (_u *NodeUpdate) AddAssetIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddAssetIDs(ids...) return _u } // AddAssets adds the "assets" edges to the Asset entity. func (_u *NodeUpdate) AddAssets(v ...*Asset) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddAssetIDs(ids...) } // AddTagIDs adds the "tags" edge to the Tag entity by IDs. func (_u *NodeUpdate) AddTagIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddTagIDs(ids...) return _u } // AddTags adds the "tags" edges to the Tag entity. func (_u *NodeUpdate) AddTags(v ...*Tag) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddTagIDs(ids...) } // AddPropertyIDs adds the "properties" edge to the Property entity by IDs. func (_u *NodeUpdate) AddPropertyIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddPropertyIDs(ids...) return _u } // AddProperties adds the "properties" edges to the Property entity. func (_u *NodeUpdate) AddProperties(v ...*Property) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddPropertyIDs(ids...) } // SetPropertySchema sets the "property_schema" edge to the PropertySchema entity. func (_u *NodeUpdate) SetPropertySchema(v *PropertySchema) *NodeUpdate { return _u.SetPropertySchemaID(v.ID) } // SetLink sets the "link" edge to the Link entity. func (_u *NodeUpdate) SetLink(v *Link) *NodeUpdate { return _u.SetLinkID(v.ID) } // AddContentLinkIDs adds the "content_links" edge to the Link entity by IDs. func (_u *NodeUpdate) AddContentLinkIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddContentLinkIDs(ids...) return _u } // AddContentLinks adds the "content_links" edges to the Link entity. func (_u *NodeUpdate) AddContentLinks(v ...*Link) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddContentLinkIDs(ids...) } // AddCollectionIDs adds the "collections" edge to the Collection entity by IDs. func (_u *NodeUpdate) AddCollectionIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.AddCollectionIDs(ids...) return _u } // AddCollections adds the "collections" edges to the Collection entity. func (_u *NodeUpdate) AddCollections(v ...*Collection) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddCollectionIDs(ids...) } // Mutation returns the NodeMutation object of the builder. func (_u *NodeUpdate) Mutation() *NodeMutation { return _u.mutation } // ClearOwner clears the "owner" edge to the Account entity. func (_u *NodeUpdate) ClearOwner() *NodeUpdate { _u.mutation.ClearOwner() return _u } // ClearParent clears the "parent" edge to the Node entity. func (_u *NodeUpdate) ClearParent() *NodeUpdate { _u.mutation.ClearParent() return _u } // ClearNodes clears all "nodes" edges to the Node entity. func (_u *NodeUpdate) ClearNodes() *NodeUpdate { _u.mutation.ClearNodes() return _u } // RemoveNodeIDs removes the "nodes" edge to Node entities by IDs. func (_u *NodeUpdate) RemoveNodeIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemoveNodeIDs(ids...) return _u } // RemoveNodes removes "nodes" edges to Node entities. func (_u *NodeUpdate) RemoveNodes(v ...*Node) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNodeIDs(ids...) } // ClearPrimaryImage clears the "primary_image" edge to the Asset entity. func (_u *NodeUpdate) ClearPrimaryImage() *NodeUpdate { _u.mutation.ClearPrimaryImage() return _u } // ClearAssets clears all "assets" edges to the Asset entity. func (_u *NodeUpdate) ClearAssets() *NodeUpdate { _u.mutation.ClearAssets() return _u } // RemoveAssetIDs removes the "assets" edge to Asset entities by IDs. func (_u *NodeUpdate) RemoveAssetIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemoveAssetIDs(ids...) return _u } // RemoveAssets removes "assets" edges to Asset entities. func (_u *NodeUpdate) RemoveAssets(v ...*Asset) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveAssetIDs(ids...) } // ClearTags clears all "tags" edges to the Tag entity. func (_u *NodeUpdate) ClearTags() *NodeUpdate { _u.mutation.ClearTags() return _u } // RemoveTagIDs removes the "tags" edge to Tag entities by IDs. func (_u *NodeUpdate) RemoveTagIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemoveTagIDs(ids...) return _u } // RemoveTags removes "tags" edges to Tag entities. func (_u *NodeUpdate) RemoveTags(v ...*Tag) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveTagIDs(ids...) } // ClearProperties clears all "properties" edges to the Property entity. func (_u *NodeUpdate) ClearProperties() *NodeUpdate { _u.mutation.ClearProperties() return _u } // RemovePropertyIDs removes the "properties" edge to Property entities by IDs. func (_u *NodeUpdate) RemovePropertyIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemovePropertyIDs(ids...) return _u } // RemoveProperties removes "properties" edges to Property entities. func (_u *NodeUpdate) RemoveProperties(v ...*Property) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemovePropertyIDs(ids...) } // ClearPropertySchema clears the "property_schema" edge to the PropertySchema entity. func (_u *NodeUpdate) ClearPropertySchema() *NodeUpdate { _u.mutation.ClearPropertySchema() return _u } // ClearLink clears the "link" edge to the Link entity. func (_u *NodeUpdate) ClearLink() *NodeUpdate { _u.mutation.ClearLink() return _u } // ClearContentLinks clears all "content_links" edges to the Link entity. func (_u *NodeUpdate) ClearContentLinks() *NodeUpdate { _u.mutation.ClearContentLinks() return _u } // RemoveContentLinkIDs removes the "content_links" edge to Link entities by IDs. func (_u *NodeUpdate) RemoveContentLinkIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemoveContentLinkIDs(ids...) return _u } // RemoveContentLinks removes "content_links" edges to Link entities. func (_u *NodeUpdate) RemoveContentLinks(v ...*Link) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveContentLinkIDs(ids...) } // ClearCollections clears all "collections" edges to the Collection entity. func (_u *NodeUpdate) ClearCollections() *NodeUpdate { _u.mutation.ClearCollections() return _u } // RemoveCollectionIDs removes the "collections" edge to Collection entities by IDs. func (_u *NodeUpdate) RemoveCollectionIDs(ids ...xid.ID) *NodeUpdate { _u.mutation.RemoveCollectionIDs(ids...) return _u } // RemoveCollections removes "collections" edges to Collection entities. func (_u *NodeUpdate) RemoveCollections(v ...*Collection) *NodeUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveCollectionIDs(ids...) } // Save executes the query and returns the number of nodes affected by the update operation. func (_u *NodeUpdate) Save(ctx context.Context) (int, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *NodeUpdate) SaveX(ctx context.Context) int { affected, err := _u.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (_u *NodeUpdate) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *NodeUpdate) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *NodeUpdate) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := node.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *NodeUpdate) check() error { if v, ok := _u.mutation.Visibility(); ok { if err := node.VisibilityValidator(v); err != nil { return &ValidationError{Name: "visibility", err: fmt.Errorf(`ent: validator failed for field "Node.visibility": %w`, err)} } } if _u.mutation.OwnerCleared() && len(_u.mutation.OwnerIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "Node.owner"`) } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *NodeUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *NodeUpdate { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *NodeUpdate) sqlSave(ctx context.Context) (_node int, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(node.Table, node.Columns, sqlgraph.NewFieldSpec(node.FieldID, field.TypeString)) if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(node.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.DeletedAt(); ok { _spec.SetField(node.FieldDeletedAt, field.TypeTime, value) } if _u.mutation.DeletedAtCleared() { _spec.ClearField(node.FieldDeletedAt, field.TypeTime) } if value, ok := _u.mutation.IndexedAt(); ok { _spec.SetField(node.FieldIndexedAt, field.TypeTime, value) } if _u.mutation.IndexedAtCleared() { _spec.ClearField(node.FieldIndexedAt, field.TypeTime) } if value, ok := _u.mutation.Name(); ok { _spec.SetField(node.FieldName, field.TypeString, value) } if value, ok := _u.mutation.Slug(); ok { _spec.SetField(node.FieldSlug, field.TypeString, value) } if value, ok := _u.mutation.Description(); ok { _spec.SetField(node.FieldDescription, field.TypeString, value) } if _u.mutation.DescriptionCleared() { _spec.ClearField(node.FieldDescription, field.TypeString) } if value, ok := _u.mutation.Content(); ok { _spec.SetField(node.FieldContent, field.TypeString, value) } if _u.mutation.ContentCleared() { _spec.ClearField(node.FieldContent, field.TypeString) } if value, ok := _u.mutation.HideChildTree(); ok { _spec.SetField(node.FieldHideChildTree, field.TypeBool, value) } if value, ok := _u.mutation.Visibility(); ok { _spec.SetField(node.FieldVisibility, field.TypeEnum, value) } if value, ok := _u.mutation.Sort(); ok { _spec.SetField(node.FieldSort, field.TypeString, value) } if value, ok := _u.mutation.Metadata(); ok { _spec.SetField(node.FieldMetadata, field.TypeJSON, value) } if _u.mutation.MetadataCleared() { _spec.ClearField(node.FieldMetadata, field.TypeJSON) } if _u.mutation.OwnerCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.OwnerTable, Columns: []string{node.OwnerColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.OwnerIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.OwnerTable, Columns: []string{node.OwnerColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.ParentCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.ParentTable, Columns: []string{node.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ParentIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.ParentTable, Columns: []string{node.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.NodesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedNodesIDs(); len(nodes) > 0 && !_u.mutation.NodesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.NodesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PrimaryImageCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: node.PrimaryImageTable, Columns: []string{node.PrimaryImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PrimaryImageIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: node.PrimaryImageTable, Columns: []string{node.PrimaryImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.AssetsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedAssetsIDs(); len(nodes) > 0 && !_u.mutation.AssetsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.AssetsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.TagsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedTagsIDs(); len(nodes) > 0 && !_u.mutation.TagsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.TagsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PropertiesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedPropertiesIDs(); len(nodes) > 0 && !_u.mutation.PropertiesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PropertiesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PropertySchemaCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.PropertySchemaTable, Columns: []string{node.PropertySchemaColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(propertyschema.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PropertySchemaIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.PropertySchemaTable, Columns: []string{node.PropertySchemaColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(propertyschema.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.LinkCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.LinkTable, Columns: []string{node.LinkColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.LinkIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.LinkTable, Columns: []string{node.LinkColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.ContentLinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedContentLinksIDs(); len(nodes) > 0 && !_u.mutation.ContentLinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ContentLinksIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.CollectionsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedCollectionsIDs(); len(nodes) > 0 && !_u.mutation.CollectionsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.CollectionsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Add = append(_spec.Edges.Add, edge) } _spec.AddModifiers(_u.modifiers...) if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{node.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } _u.mutation.done = true return _node, nil } // NodeUpdateOne is the builder for updating a single Node entity. type NodeUpdateOne struct { config fields []string hooks []Hook mutation *NodeMutation modifiers []func(*sql.UpdateBuilder) } // SetUpdatedAt sets the "updated_at" field. func (_u *NodeUpdateOne) SetUpdatedAt(v time.Time) *NodeUpdateOne { _u.mutation.SetUpdatedAt(v) return _u } // SetDeletedAt sets the "deleted_at" field. func (_u *NodeUpdateOne) SetDeletedAt(v time.Time) *NodeUpdateOne { _u.mutation.SetDeletedAt(v) return _u } // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableDeletedAt(v *time.Time) *NodeUpdateOne { if v != nil { _u.SetDeletedAt(*v) } return _u } // ClearDeletedAt clears the value of the "deleted_at" field. func (_u *NodeUpdateOne) ClearDeletedAt() *NodeUpdateOne { _u.mutation.ClearDeletedAt() return _u } // SetIndexedAt sets the "indexed_at" field. func (_u *NodeUpdateOne) SetIndexedAt(v time.Time) *NodeUpdateOne { _u.mutation.SetIndexedAt(v) return _u } // SetNillableIndexedAt sets the "indexed_at" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableIndexedAt(v *time.Time) *NodeUpdateOne { if v != nil { _u.SetIndexedAt(*v) } return _u } // ClearIndexedAt clears the value of the "indexed_at" field. func (_u *NodeUpdateOne) ClearIndexedAt() *NodeUpdateOne { _u.mutation.ClearIndexedAt() return _u } // SetName sets the "name" field. func (_u *NodeUpdateOne) SetName(v string) *NodeUpdateOne { _u.mutation.SetName(v) return _u } // SetNillableName sets the "name" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableName(v *string) *NodeUpdateOne { if v != nil { _u.SetName(*v) } return _u } // SetSlug sets the "slug" field. func (_u *NodeUpdateOne) SetSlug(v string) *NodeUpdateOne { _u.mutation.SetSlug(v) return _u } // SetNillableSlug sets the "slug" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableSlug(v *string) *NodeUpdateOne { if v != nil { _u.SetSlug(*v) } return _u } // SetDescription sets the "description" field. func (_u *NodeUpdateOne) SetDescription(v string) *NodeUpdateOne { _u.mutation.SetDescription(v) return _u } // SetNillableDescription sets the "description" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableDescription(v *string) *NodeUpdateOne { if v != nil { _u.SetDescription(*v) } return _u } // ClearDescription clears the value of the "description" field. func (_u *NodeUpdateOne) ClearDescription() *NodeUpdateOne { _u.mutation.ClearDescription() return _u } // SetContent sets the "content" field. func (_u *NodeUpdateOne) SetContent(v string) *NodeUpdateOne { _u.mutation.SetContent(v) return _u } // SetNillableContent sets the "content" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableContent(v *string) *NodeUpdateOne { if v != nil { _u.SetContent(*v) } return _u } // ClearContent clears the value of the "content" field. func (_u *NodeUpdateOne) ClearContent() *NodeUpdateOne { _u.mutation.ClearContent() return _u } // SetParentNodeID sets the "parent_node_id" field. func (_u *NodeUpdateOne) SetParentNodeID(v xid.ID) *NodeUpdateOne { _u.mutation.SetParentNodeID(v) return _u } // SetNillableParentNodeID sets the "parent_node_id" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableParentNodeID(v *xid.ID) *NodeUpdateOne { if v != nil { _u.SetParentNodeID(*v) } return _u } // ClearParentNodeID clears the value of the "parent_node_id" field. func (_u *NodeUpdateOne) ClearParentNodeID() *NodeUpdateOne { _u.mutation.ClearParentNodeID() return _u } // SetHideChildTree sets the "hide_child_tree" field. func (_u *NodeUpdateOne) SetHideChildTree(v bool) *NodeUpdateOne { _u.mutation.SetHideChildTree(v) return _u } // SetNillableHideChildTree sets the "hide_child_tree" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableHideChildTree(v *bool) *NodeUpdateOne { if v != nil { _u.SetHideChildTree(*v) } return _u } // SetAccountID sets the "account_id" field. func (_u *NodeUpdateOne) SetAccountID(v xid.ID) *NodeUpdateOne { _u.mutation.SetAccountID(v) return _u } // SetNillableAccountID sets the "account_id" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableAccountID(v *xid.ID) *NodeUpdateOne { if v != nil { _u.SetAccountID(*v) } return _u } // SetPropertySchemaID sets the "property_schema_id" field. func (_u *NodeUpdateOne) SetPropertySchemaID(v xid.ID) *NodeUpdateOne { _u.mutation.SetPropertySchemaID(v) return _u } // SetNillablePropertySchemaID sets the "property_schema_id" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillablePropertySchemaID(v *xid.ID) *NodeUpdateOne { if v != nil { _u.SetPropertySchemaID(*v) } return _u } // ClearPropertySchemaID clears the value of the "property_schema_id" field. func (_u *NodeUpdateOne) ClearPropertySchemaID() *NodeUpdateOne { _u.mutation.ClearPropertySchemaID() return _u } // SetPrimaryAssetID sets the "primary_asset_id" field. func (_u *NodeUpdateOne) SetPrimaryAssetID(v xid.ID) *NodeUpdateOne { _u.mutation.SetPrimaryAssetID(v) return _u } // SetNillablePrimaryAssetID sets the "primary_asset_id" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillablePrimaryAssetID(v *xid.ID) *NodeUpdateOne { if v != nil { _u.SetPrimaryAssetID(*v) } return _u } // ClearPrimaryAssetID clears the value of the "primary_asset_id" field. func (_u *NodeUpdateOne) ClearPrimaryAssetID() *NodeUpdateOne { _u.mutation.ClearPrimaryAssetID() return _u } // SetLinkID sets the "link_id" field. func (_u *NodeUpdateOne) SetLinkID(v xid.ID) *NodeUpdateOne { _u.mutation.SetLinkID(v) return _u } // SetNillableLinkID sets the "link_id" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableLinkID(v *xid.ID) *NodeUpdateOne { if v != nil { _u.SetLinkID(*v) } return _u } // ClearLinkID clears the value of the "link_id" field. func (_u *NodeUpdateOne) ClearLinkID() *NodeUpdateOne { _u.mutation.ClearLinkID() return _u } // SetVisibility sets the "visibility" field. func (_u *NodeUpdateOne) SetVisibility(v node.Visibility) *NodeUpdateOne { _u.mutation.SetVisibility(v) return _u } // SetNillableVisibility sets the "visibility" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableVisibility(v *node.Visibility) *NodeUpdateOne { if v != nil { _u.SetVisibility(*v) } return _u } // SetSort sets the "sort" field. func (_u *NodeUpdateOne) SetSort(v lexorank.Key) *NodeUpdateOne { _u.mutation.SetSort(v) return _u } // SetNillableSort sets the "sort" field if the given value is not nil. func (_u *NodeUpdateOne) SetNillableSort(v *lexorank.Key) *NodeUpdateOne { if v != nil { _u.SetSort(*v) } return _u } // SetMetadata sets the "metadata" field. func (_u *NodeUpdateOne) SetMetadata(v map[string]interface{}) *NodeUpdateOne { _u.mutation.SetMetadata(v) return _u } // ClearMetadata clears the value of the "metadata" field. func (_u *NodeUpdateOne) ClearMetadata() *NodeUpdateOne { _u.mutation.ClearMetadata() return _u } // SetOwnerID sets the "owner" edge to the Account entity by ID. func (_u *NodeUpdateOne) SetOwnerID(id xid.ID) *NodeUpdateOne { _u.mutation.SetOwnerID(id) return _u } // SetOwner sets the "owner" edge to the Account entity. func (_u *NodeUpdateOne) SetOwner(v *Account) *NodeUpdateOne { return _u.SetOwnerID(v.ID) } // SetParentID sets the "parent" edge to the Node entity by ID. func (_u *NodeUpdateOne) SetParentID(id xid.ID) *NodeUpdateOne { _u.mutation.SetParentID(id) return _u } // SetNillableParentID sets the "parent" edge to the Node entity by ID if the given value is not nil. func (_u *NodeUpdateOne) SetNillableParentID(id *xid.ID) *NodeUpdateOne { if id != nil { _u = _u.SetParentID(*id) } return _u } // SetParent sets the "parent" edge to the Node entity. func (_u *NodeUpdateOne) SetParent(v *Node) *NodeUpdateOne { return _u.SetParentID(v.ID) } // AddNodeIDs adds the "nodes" edge to the Node entity by IDs. func (_u *NodeUpdateOne) AddNodeIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddNodeIDs(ids...) return _u } // AddNodes adds the "nodes" edges to the Node entity. func (_u *NodeUpdateOne) AddNodes(v ...*Node) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNodeIDs(ids...) } // SetPrimaryImageID sets the "primary_image" edge to the Asset entity by ID. func (_u *NodeUpdateOne) SetPrimaryImageID(id xid.ID) *NodeUpdateOne { _u.mutation.SetPrimaryImageID(id) return _u } // SetNillablePrimaryImageID sets the "primary_image" edge to the Asset entity by ID if the given value is not nil. func (_u *NodeUpdateOne) SetNillablePrimaryImageID(id *xid.ID) *NodeUpdateOne { if id != nil { _u = _u.SetPrimaryImageID(*id) } return _u } // SetPrimaryImage sets the "primary_image" edge to the Asset entity. func (_u *NodeUpdateOne) SetPrimaryImage(v *Asset) *NodeUpdateOne { return _u.SetPrimaryImageID(v.ID) } // AddAssetIDs adds the "assets" edge to the Asset entity by IDs. func (_u *NodeUpdateOne) AddAssetIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddAssetIDs(ids...) return _u } // AddAssets adds the "assets" edges to the Asset entity. func (_u *NodeUpdateOne) AddAssets(v ...*Asset) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddAssetIDs(ids...) } // AddTagIDs adds the "tags" edge to the Tag entity by IDs. func (_u *NodeUpdateOne) AddTagIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddTagIDs(ids...) return _u } // AddTags adds the "tags" edges to the Tag entity. func (_u *NodeUpdateOne) AddTags(v ...*Tag) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddTagIDs(ids...) } // AddPropertyIDs adds the "properties" edge to the Property entity by IDs. func (_u *NodeUpdateOne) AddPropertyIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddPropertyIDs(ids...) return _u } // AddProperties adds the "properties" edges to the Property entity. func (_u *NodeUpdateOne) AddProperties(v ...*Property) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddPropertyIDs(ids...) } // SetPropertySchema sets the "property_schema" edge to the PropertySchema entity. func (_u *NodeUpdateOne) SetPropertySchema(v *PropertySchema) *NodeUpdateOne { return _u.SetPropertySchemaID(v.ID) } // SetLink sets the "link" edge to the Link entity. func (_u *NodeUpdateOne) SetLink(v *Link) *NodeUpdateOne { return _u.SetLinkID(v.ID) } // AddContentLinkIDs adds the "content_links" edge to the Link entity by IDs. func (_u *NodeUpdateOne) AddContentLinkIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddContentLinkIDs(ids...) return _u } // AddContentLinks adds the "content_links" edges to the Link entity. func (_u *NodeUpdateOne) AddContentLinks(v ...*Link) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddContentLinkIDs(ids...) } // AddCollectionIDs adds the "collections" edge to the Collection entity by IDs. func (_u *NodeUpdateOne) AddCollectionIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.AddCollectionIDs(ids...) return _u } // AddCollections adds the "collections" edges to the Collection entity. func (_u *NodeUpdateOne) AddCollections(v ...*Collection) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddCollectionIDs(ids...) } // Mutation returns the NodeMutation object of the builder. func (_u *NodeUpdateOne) Mutation() *NodeMutation { return _u.mutation } // ClearOwner clears the "owner" edge to the Account entity. func (_u *NodeUpdateOne) ClearOwner() *NodeUpdateOne { _u.mutation.ClearOwner() return _u } // ClearParent clears the "parent" edge to the Node entity. func (_u *NodeUpdateOne) ClearParent() *NodeUpdateOne { _u.mutation.ClearParent() return _u } // ClearNodes clears all "nodes" edges to the Node entity. func (_u *NodeUpdateOne) ClearNodes() *NodeUpdateOne { _u.mutation.ClearNodes() return _u } // RemoveNodeIDs removes the "nodes" edge to Node entities by IDs. func (_u *NodeUpdateOne) RemoveNodeIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemoveNodeIDs(ids...) return _u } // RemoveNodes removes "nodes" edges to Node entities. func (_u *NodeUpdateOne) RemoveNodes(v ...*Node) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNodeIDs(ids...) } // ClearPrimaryImage clears the "primary_image" edge to the Asset entity. func (_u *NodeUpdateOne) ClearPrimaryImage() *NodeUpdateOne { _u.mutation.ClearPrimaryImage() return _u } // ClearAssets clears all "assets" edges to the Asset entity. func (_u *NodeUpdateOne) ClearAssets() *NodeUpdateOne { _u.mutation.ClearAssets() return _u } // RemoveAssetIDs removes the "assets" edge to Asset entities by IDs. func (_u *NodeUpdateOne) RemoveAssetIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemoveAssetIDs(ids...) return _u } // RemoveAssets removes "assets" edges to Asset entities. func (_u *NodeUpdateOne) RemoveAssets(v ...*Asset) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveAssetIDs(ids...) } // ClearTags clears all "tags" edges to the Tag entity. func (_u *NodeUpdateOne) ClearTags() *NodeUpdateOne { _u.mutation.ClearTags() return _u } // RemoveTagIDs removes the "tags" edge to Tag entities by IDs. func (_u *NodeUpdateOne) RemoveTagIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemoveTagIDs(ids...) return _u } // RemoveTags removes "tags" edges to Tag entities. func (_u *NodeUpdateOne) RemoveTags(v ...*Tag) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveTagIDs(ids...) } // ClearProperties clears all "properties" edges to the Property entity. func (_u *NodeUpdateOne) ClearProperties() *NodeUpdateOne { _u.mutation.ClearProperties() return _u } // RemovePropertyIDs removes the "properties" edge to Property entities by IDs. func (_u *NodeUpdateOne) RemovePropertyIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemovePropertyIDs(ids...) return _u } // RemoveProperties removes "properties" edges to Property entities. func (_u *NodeUpdateOne) RemoveProperties(v ...*Property) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemovePropertyIDs(ids...) } // ClearPropertySchema clears the "property_schema" edge to the PropertySchema entity. func (_u *NodeUpdateOne) ClearPropertySchema() *NodeUpdateOne { _u.mutation.ClearPropertySchema() return _u } // ClearLink clears the "link" edge to the Link entity. func (_u *NodeUpdateOne) ClearLink() *NodeUpdateOne { _u.mutation.ClearLink() return _u } // ClearContentLinks clears all "content_links" edges to the Link entity. func (_u *NodeUpdateOne) ClearContentLinks() *NodeUpdateOne { _u.mutation.ClearContentLinks() return _u } // RemoveContentLinkIDs removes the "content_links" edge to Link entities by IDs. func (_u *NodeUpdateOne) RemoveContentLinkIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemoveContentLinkIDs(ids...) return _u } // RemoveContentLinks removes "content_links" edges to Link entities. func (_u *NodeUpdateOne) RemoveContentLinks(v ...*Link) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveContentLinkIDs(ids...) } // ClearCollections clears all "collections" edges to the Collection entity. func (_u *NodeUpdateOne) ClearCollections() *NodeUpdateOne { _u.mutation.ClearCollections() return _u } // RemoveCollectionIDs removes the "collections" edge to Collection entities by IDs. func (_u *NodeUpdateOne) RemoveCollectionIDs(ids ...xid.ID) *NodeUpdateOne { _u.mutation.RemoveCollectionIDs(ids...) return _u } // RemoveCollections removes "collections" edges to Collection entities. func (_u *NodeUpdateOne) RemoveCollections(v ...*Collection) *NodeUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveCollectionIDs(ids...) } // Where appends a list predicates to the NodeUpdate builder. func (_u *NodeUpdateOne) Where(ps ...predicate.Node) *NodeUpdateOne { _u.mutation.Where(ps...) return _u } // Select allows selecting one or more fields (columns) of the returned entity. // The default is selecting all fields defined in the entity schema. func (_u *NodeUpdateOne) Select(field string, fields ...string) *NodeUpdateOne { _u.fields = append([]string{field}, fields...) return _u } // Save executes the query and returns the updated Node entity. func (_u *NodeUpdateOne) Save(ctx context.Context) (*Node, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *NodeUpdateOne) SaveX(ctx context.Context) *Node { node, err := _u.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (_u *NodeUpdateOne) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *NodeUpdateOne) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *NodeUpdateOne) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := node.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *NodeUpdateOne) check() error { if v, ok := _u.mutation.Visibility(); ok { if err := node.VisibilityValidator(v); err != nil { return &ValidationError{Name: "visibility", err: fmt.Errorf(`ent: validator failed for field "Node.visibility": %w`, err)} } } if _u.mutation.OwnerCleared() && len(_u.mutation.OwnerIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "Node.owner"`) } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *NodeUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *NodeUpdateOne { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *NodeUpdateOne) sqlSave(ctx context.Context) (_node *Node, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(node.Table, node.Columns, sqlgraph.NewFieldSpec(node.FieldID, field.TypeString)) id, ok := _u.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Node.id" for update`)} } _spec.Node.ID.Value = id if fields := _u.fields; len(fields) > 0 { _spec.Node.Columns = make([]string, 0, len(fields)) _spec.Node.Columns = append(_spec.Node.Columns, node.FieldID) for _, f := range fields { if !node.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != node.FieldID { _spec.Node.Columns = append(_spec.Node.Columns, f) } } } if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(node.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.DeletedAt(); ok { _spec.SetField(node.FieldDeletedAt, field.TypeTime, value) } if _u.mutation.DeletedAtCleared() { _spec.ClearField(node.FieldDeletedAt, field.TypeTime) } if value, ok := _u.mutation.IndexedAt(); ok { _spec.SetField(node.FieldIndexedAt, field.TypeTime, value) } if _u.mutation.IndexedAtCleared() { _spec.ClearField(node.FieldIndexedAt, field.TypeTime) } if value, ok := _u.mutation.Name(); ok { _spec.SetField(node.FieldName, field.TypeString, value) } if value, ok := _u.mutation.Slug(); ok { _spec.SetField(node.FieldSlug, field.TypeString, value) } if value, ok := _u.mutation.Description(); ok { _spec.SetField(node.FieldDescription, field.TypeString, value) } if _u.mutation.DescriptionCleared() { _spec.ClearField(node.FieldDescription, field.TypeString) } if value, ok := _u.mutation.Content(); ok { _spec.SetField(node.FieldContent, field.TypeString, value) } if _u.mutation.ContentCleared() { _spec.ClearField(node.FieldContent, field.TypeString) } if value, ok := _u.mutation.HideChildTree(); ok { _spec.SetField(node.FieldHideChildTree, field.TypeBool, value) } if value, ok := _u.mutation.Visibility(); ok { _spec.SetField(node.FieldVisibility, field.TypeEnum, value) } if value, ok := _u.mutation.Sort(); ok { _spec.SetField(node.FieldSort, field.TypeString, value) } if value, ok := _u.mutation.Metadata(); ok { _spec.SetField(node.FieldMetadata, field.TypeJSON, value) } if _u.mutation.MetadataCleared() { _spec.ClearField(node.FieldMetadata, field.TypeJSON) } if _u.mutation.OwnerCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.OwnerTable, Columns: []string{node.OwnerColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.OwnerIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.OwnerTable, Columns: []string{node.OwnerColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(account.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.ParentCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.ParentTable, Columns: []string{node.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ParentIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.ParentTable, Columns: []string{node.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.NodesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedNodesIDs(); len(nodes) > 0 && !_u.mutation.NodesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.NodesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.NodesTable, Columns: []string{node.NodesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(node.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PrimaryImageCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: node.PrimaryImageTable, Columns: []string{node.PrimaryImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PrimaryImageIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: node.PrimaryImageTable, Columns: []string{node.PrimaryImageColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.AssetsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedAssetsIDs(); len(nodes) > 0 && !_u.mutation.AssetsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.AssetsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: false, Table: node.AssetsTable, Columns: node.AssetsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.TagsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedTagsIDs(); len(nodes) > 0 && !_u.mutation.TagsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.TagsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.TagsTable, Columns: node.TagsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(tag.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PropertiesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedPropertiesIDs(); len(nodes) > 0 && !_u.mutation.PropertiesCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PropertiesIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: node.PropertiesTable, Columns: []string{node.PropertiesColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(property.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.PropertySchemaCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.PropertySchemaTable, Columns: []string{node.PropertySchemaColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(propertyschema.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.PropertySchemaIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.PropertySchemaTable, Columns: []string{node.PropertySchemaColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(propertyschema.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.LinkCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.LinkTable, Columns: []string{node.LinkColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.LinkIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: node.LinkTable, Columns: []string{node.LinkColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.ContentLinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedContentLinksIDs(); len(nodes) > 0 && !_u.mutation.ContentLinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ContentLinksIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.ContentLinksTable, Columns: node.ContentLinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.CollectionsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedCollectionsIDs(); len(nodes) > 0 && !_u.mutation.CollectionsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.CollectionsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: node.CollectionsTable, Columns: node.CollectionsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(collection.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } createE := &CollectionNodeCreate{config: _u.config, mutation: newCollectionNodeMutation(_u.config, OpCreate)} createE.defaults() _, specE := createE.createSpec() edge.Target.Fields = specE.Fields _spec.Edges.Add = append(_spec.Edges.Add, edge) } _spec.AddModifiers(_u.modifiers...) _node = &Node{config: _u.config} _spec.Assign = _node.assignValues _spec.ScanValues = _node.scanValues if err = sqlgraph.UpdateNode(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{node.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } _u.mutation.done = true return _node, nil }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Southclaws/storyden'

If you have feedback or need assistance with the MCP directory API, please join our Discord server