Skip to main content
Glama

Storyden

by Southclaws
Mozilla Public License 2.0
227
asset_update.go42.5 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/storyden/internal/ent/account" "github.com/Southclaws/storyden/internal/ent/asset" "github.com/Southclaws/storyden/internal/ent/event" "github.com/Southclaws/storyden/internal/ent/link" "github.com/Southclaws/storyden/internal/ent/node" "github.com/Southclaws/storyden/internal/ent/post" "github.com/Southclaws/storyden/internal/ent/predicate" "github.com/rs/xid" ) // AssetUpdate is the builder for updating Asset entities. type AssetUpdate struct { config hooks []Hook mutation *AssetMutation modifiers []func(*sql.UpdateBuilder) } // Where appends a list predicates to the AssetUpdate builder. func (_u *AssetUpdate) Where(ps ...predicate.Asset) *AssetUpdate { _u.mutation.Where(ps...) return _u } // SetUpdatedAt sets the "updated_at" field. func (_u *AssetUpdate) SetUpdatedAt(v time.Time) *AssetUpdate { _u.mutation.SetUpdatedAt(v) return _u } // SetFilename sets the "filename" field. func (_u *AssetUpdate) SetFilename(v string) *AssetUpdate { _u.mutation.SetFilename(v) return _u } // SetNillableFilename sets the "filename" field if the given value is not nil. func (_u *AssetUpdate) SetNillableFilename(v *string) *AssetUpdate { if v != nil { _u.SetFilename(*v) } return _u } // SetSize sets the "size" field. func (_u *AssetUpdate) SetSize(v int) *AssetUpdate { _u.mutation.ResetSize() _u.mutation.SetSize(v) return _u } // SetNillableSize sets the "size" field if the given value is not nil. func (_u *AssetUpdate) SetNillableSize(v *int) *AssetUpdate { if v != nil { _u.SetSize(*v) } return _u } // AddSize adds value to the "size" field. func (_u *AssetUpdate) AddSize(v int) *AssetUpdate { _u.mutation.AddSize(v) return _u } // SetMimeType sets the "mime_type" field. func (_u *AssetUpdate) SetMimeType(v string) *AssetUpdate { _u.mutation.SetMimeType(v) return _u } // SetNillableMimeType sets the "mime_type" field if the given value is not nil. func (_u *AssetUpdate) SetNillableMimeType(v *string) *AssetUpdate { if v != nil { _u.SetMimeType(*v) } return _u } // SetMetadata sets the "metadata" field. func (_u *AssetUpdate) SetMetadata(v map[string]interface{}) *AssetUpdate { _u.mutation.SetMetadata(v) return _u } // ClearMetadata clears the value of the "metadata" field. func (_u *AssetUpdate) ClearMetadata() *AssetUpdate { _u.mutation.ClearMetadata() return _u } // SetAccountID sets the "account_id" field. func (_u *AssetUpdate) SetAccountID(v xid.ID) *AssetUpdate { _u.mutation.SetAccountID(v) return _u } // SetNillableAccountID sets the "account_id" field if the given value is not nil. func (_u *AssetUpdate) SetNillableAccountID(v *xid.ID) *AssetUpdate { if v != nil { _u.SetAccountID(*v) } return _u } // SetParentAssetID sets the "parent_asset_id" field. func (_u *AssetUpdate) SetParentAssetID(v xid.ID) *AssetUpdate { _u.mutation.SetParentAssetID(v) return _u } // SetNillableParentAssetID sets the "parent_asset_id" field if the given value is not nil. func (_u *AssetUpdate) SetNillableParentAssetID(v *xid.ID) *AssetUpdate { if v != nil { _u.SetParentAssetID(*v) } return _u } // ClearParentAssetID clears the value of the "parent_asset_id" field. func (_u *AssetUpdate) ClearParentAssetID() *AssetUpdate { _u.mutation.ClearParentAssetID() return _u } // AddPostIDs adds the "posts" edge to the Post entity by IDs. func (_u *AssetUpdate) AddPostIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.AddPostIDs(ids...) return _u } // AddPosts adds the "posts" edges to the Post entity. func (_u *AssetUpdate) AddPosts(v ...*Post) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddPostIDs(ids...) } // AddNodeIDs adds the "nodes" edge to the Node entity by IDs. func (_u *AssetUpdate) AddNodeIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.AddNodeIDs(ids...) return _u } // AddNodes adds the "nodes" edges to the Node entity. func (_u *AssetUpdate) AddNodes(v ...*Node) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNodeIDs(ids...) } // AddLinkIDs adds the "links" edge to the Link entity by IDs. func (_u *AssetUpdate) AddLinkIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.AddLinkIDs(ids...) return _u } // AddLinks adds the "links" edges to the Link entity. func (_u *AssetUpdate) AddLinks(v ...*Link) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddLinkIDs(ids...) } // SetOwnerID sets the "owner" edge to the Account entity by ID. func (_u *AssetUpdate) SetOwnerID(id xid.ID) *AssetUpdate { _u.mutation.SetOwnerID(id) return _u } // SetOwner sets the "owner" edge to the Account entity. func (_u *AssetUpdate) SetOwner(v *Account) *AssetUpdate { return _u.SetOwnerID(v.ID) } // SetParentID sets the "parent" edge to the Asset entity by ID. func (_u *AssetUpdate) SetParentID(id xid.ID) *AssetUpdate { _u.mutation.SetParentID(id) return _u } // SetNillableParentID sets the "parent" edge to the Asset entity by ID if the given value is not nil. func (_u *AssetUpdate) SetNillableParentID(id *xid.ID) *AssetUpdate { if id != nil { _u = _u.SetParentID(*id) } return _u } // SetParent sets the "parent" edge to the Asset entity. func (_u *AssetUpdate) SetParent(v *Asset) *AssetUpdate { return _u.SetParentID(v.ID) } // AddAssetIDs adds the "assets" edge to the Asset entity by IDs. func (_u *AssetUpdate) AddAssetIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.AddAssetIDs(ids...) return _u } // AddAssets adds the "assets" edges to the Asset entity. func (_u *AssetUpdate) AddAssets(v ...*Asset) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddAssetIDs(ids...) } // AddEventIDs adds the "event" edge to the Event entity by IDs. func (_u *AssetUpdate) AddEventIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.AddEventIDs(ids...) return _u } // AddEvent adds the "event" edges to the Event entity. func (_u *AssetUpdate) AddEvent(v ...*Event) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddEventIDs(ids...) } // Mutation returns the AssetMutation object of the builder. func (_u *AssetUpdate) Mutation() *AssetMutation { return _u.mutation } // ClearPosts clears all "posts" edges to the Post entity. func (_u *AssetUpdate) ClearPosts() *AssetUpdate { _u.mutation.ClearPosts() return _u } // RemovePostIDs removes the "posts" edge to Post entities by IDs. func (_u *AssetUpdate) RemovePostIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.RemovePostIDs(ids...) return _u } // RemovePosts removes "posts" edges to Post entities. func (_u *AssetUpdate) RemovePosts(v ...*Post) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemovePostIDs(ids...) } // ClearNodes clears all "nodes" edges to the Node entity. func (_u *AssetUpdate) ClearNodes() *AssetUpdate { _u.mutation.ClearNodes() return _u } // RemoveNodeIDs removes the "nodes" edge to Node entities by IDs. func (_u *AssetUpdate) RemoveNodeIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.RemoveNodeIDs(ids...) return _u } // RemoveNodes removes "nodes" edges to Node entities. func (_u *AssetUpdate) RemoveNodes(v ...*Node) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNodeIDs(ids...) } // ClearLinks clears all "links" edges to the Link entity. func (_u *AssetUpdate) ClearLinks() *AssetUpdate { _u.mutation.ClearLinks() return _u } // RemoveLinkIDs removes the "links" edge to Link entities by IDs. func (_u *AssetUpdate) RemoveLinkIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.RemoveLinkIDs(ids...) return _u } // RemoveLinks removes "links" edges to Link entities. func (_u *AssetUpdate) RemoveLinks(v ...*Link) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveLinkIDs(ids...) } // ClearOwner clears the "owner" edge to the Account entity. func (_u *AssetUpdate) ClearOwner() *AssetUpdate { _u.mutation.ClearOwner() return _u } // ClearParent clears the "parent" edge to the Asset entity. func (_u *AssetUpdate) ClearParent() *AssetUpdate { _u.mutation.ClearParent() return _u } // ClearAssets clears all "assets" edges to the Asset entity. func (_u *AssetUpdate) ClearAssets() *AssetUpdate { _u.mutation.ClearAssets() return _u } // RemoveAssetIDs removes the "assets" edge to Asset entities by IDs. func (_u *AssetUpdate) RemoveAssetIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.RemoveAssetIDs(ids...) return _u } // RemoveAssets removes "assets" edges to Asset entities. func (_u *AssetUpdate) RemoveAssets(v ...*Asset) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveAssetIDs(ids...) } // ClearEvent clears all "event" edges to the Event entity. func (_u *AssetUpdate) ClearEvent() *AssetUpdate { _u.mutation.ClearEvent() return _u } // RemoveEventIDs removes the "event" edge to Event entities by IDs. func (_u *AssetUpdate) RemoveEventIDs(ids ...xid.ID) *AssetUpdate { _u.mutation.RemoveEventIDs(ids...) return _u } // RemoveEvent removes "event" edges to Event entities. func (_u *AssetUpdate) RemoveEvent(v ...*Event) *AssetUpdate { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveEventIDs(ids...) } // Save executes the query and returns the number of nodes affected by the update operation. func (_u *AssetUpdate) 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 *AssetUpdate) SaveX(ctx context.Context) int { affected, err := _u.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (_u *AssetUpdate) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *AssetUpdate) 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 *AssetUpdate) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := asset.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *AssetUpdate) check() error { if _u.mutation.OwnerCleared() && len(_u.mutation.OwnerIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "Asset.owner"`) } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *AssetUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *AssetUpdate { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *AssetUpdate) sqlSave(ctx context.Context) (_node int, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(asset.Table, asset.Columns, sqlgraph.NewFieldSpec(asset.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(asset.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.Filename(); ok { _spec.SetField(asset.FieldFilename, field.TypeString, value) } if value, ok := _u.mutation.Size(); ok { _spec.SetField(asset.FieldSize, field.TypeInt, value) } if value, ok := _u.mutation.AddedSize(); ok { _spec.AddField(asset.FieldSize, field.TypeInt, value) } if value, ok := _u.mutation.MimeType(); ok { _spec.SetField(asset.FieldMimeType, field.TypeString, value) } if value, ok := _u.mutation.Metadata(); ok { _spec.SetField(asset.FieldMetadata, field.TypeJSON, value) } if _u.mutation.MetadataCleared() { _spec.ClearField(asset.FieldMetadata, field.TypeJSON) } if _u.mutation.PostsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedPostsIDs(); len(nodes) > 0 && !_u.mutation.PostsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.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.PostsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.LinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedLinksIDs(); len(nodes) > 0 && !_u.mutation.LinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, 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.LinksIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, 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.OwnerCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: asset.OwnerTable, Columns: []string{asset.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: asset.OwnerTable, Columns: []string{asset.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: asset.ParentTable, Columns: []string{asset.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.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: asset.ParentTable, Columns: []string{asset.ParentColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.EventCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedEventIDs(); len(nodes) > 0 && !_u.mutation.EventCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.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.EventIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _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{asset.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } _u.mutation.done = true return _node, nil } // AssetUpdateOne is the builder for updating a single Asset entity. type AssetUpdateOne struct { config fields []string hooks []Hook mutation *AssetMutation modifiers []func(*sql.UpdateBuilder) } // SetUpdatedAt sets the "updated_at" field. func (_u *AssetUpdateOne) SetUpdatedAt(v time.Time) *AssetUpdateOne { _u.mutation.SetUpdatedAt(v) return _u } // SetFilename sets the "filename" field. func (_u *AssetUpdateOne) SetFilename(v string) *AssetUpdateOne { _u.mutation.SetFilename(v) return _u } // SetNillableFilename sets the "filename" field if the given value is not nil. func (_u *AssetUpdateOne) SetNillableFilename(v *string) *AssetUpdateOne { if v != nil { _u.SetFilename(*v) } return _u } // SetSize sets the "size" field. func (_u *AssetUpdateOne) SetSize(v int) *AssetUpdateOne { _u.mutation.ResetSize() _u.mutation.SetSize(v) return _u } // SetNillableSize sets the "size" field if the given value is not nil. func (_u *AssetUpdateOne) SetNillableSize(v *int) *AssetUpdateOne { if v != nil { _u.SetSize(*v) } return _u } // AddSize adds value to the "size" field. func (_u *AssetUpdateOne) AddSize(v int) *AssetUpdateOne { _u.mutation.AddSize(v) return _u } // SetMimeType sets the "mime_type" field. func (_u *AssetUpdateOne) SetMimeType(v string) *AssetUpdateOne { _u.mutation.SetMimeType(v) return _u } // SetNillableMimeType sets the "mime_type" field if the given value is not nil. func (_u *AssetUpdateOne) SetNillableMimeType(v *string) *AssetUpdateOne { if v != nil { _u.SetMimeType(*v) } return _u } // SetMetadata sets the "metadata" field. func (_u *AssetUpdateOne) SetMetadata(v map[string]interface{}) *AssetUpdateOne { _u.mutation.SetMetadata(v) return _u } // ClearMetadata clears the value of the "metadata" field. func (_u *AssetUpdateOne) ClearMetadata() *AssetUpdateOne { _u.mutation.ClearMetadata() return _u } // SetAccountID sets the "account_id" field. func (_u *AssetUpdateOne) SetAccountID(v xid.ID) *AssetUpdateOne { _u.mutation.SetAccountID(v) return _u } // SetNillableAccountID sets the "account_id" field if the given value is not nil. func (_u *AssetUpdateOne) SetNillableAccountID(v *xid.ID) *AssetUpdateOne { if v != nil { _u.SetAccountID(*v) } return _u } // SetParentAssetID sets the "parent_asset_id" field. func (_u *AssetUpdateOne) SetParentAssetID(v xid.ID) *AssetUpdateOne { _u.mutation.SetParentAssetID(v) return _u } // SetNillableParentAssetID sets the "parent_asset_id" field if the given value is not nil. func (_u *AssetUpdateOne) SetNillableParentAssetID(v *xid.ID) *AssetUpdateOne { if v != nil { _u.SetParentAssetID(*v) } return _u } // ClearParentAssetID clears the value of the "parent_asset_id" field. func (_u *AssetUpdateOne) ClearParentAssetID() *AssetUpdateOne { _u.mutation.ClearParentAssetID() return _u } // AddPostIDs adds the "posts" edge to the Post entity by IDs. func (_u *AssetUpdateOne) AddPostIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.AddPostIDs(ids...) return _u } // AddPosts adds the "posts" edges to the Post entity. func (_u *AssetUpdateOne) AddPosts(v ...*Post) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddPostIDs(ids...) } // AddNodeIDs adds the "nodes" edge to the Node entity by IDs. func (_u *AssetUpdateOne) AddNodeIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.AddNodeIDs(ids...) return _u } // AddNodes adds the "nodes" edges to the Node entity. func (_u *AssetUpdateOne) AddNodes(v ...*Node) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNodeIDs(ids...) } // AddLinkIDs adds the "links" edge to the Link entity by IDs. func (_u *AssetUpdateOne) AddLinkIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.AddLinkIDs(ids...) return _u } // AddLinks adds the "links" edges to the Link entity. func (_u *AssetUpdateOne) AddLinks(v ...*Link) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddLinkIDs(ids...) } // SetOwnerID sets the "owner" edge to the Account entity by ID. func (_u *AssetUpdateOne) SetOwnerID(id xid.ID) *AssetUpdateOne { _u.mutation.SetOwnerID(id) return _u } // SetOwner sets the "owner" edge to the Account entity. func (_u *AssetUpdateOne) SetOwner(v *Account) *AssetUpdateOne { return _u.SetOwnerID(v.ID) } // SetParentID sets the "parent" edge to the Asset entity by ID. func (_u *AssetUpdateOne) SetParentID(id xid.ID) *AssetUpdateOne { _u.mutation.SetParentID(id) return _u } // SetNillableParentID sets the "parent" edge to the Asset entity by ID if the given value is not nil. func (_u *AssetUpdateOne) SetNillableParentID(id *xid.ID) *AssetUpdateOne { if id != nil { _u = _u.SetParentID(*id) } return _u } // SetParent sets the "parent" edge to the Asset entity. func (_u *AssetUpdateOne) SetParent(v *Asset) *AssetUpdateOne { return _u.SetParentID(v.ID) } // AddAssetIDs adds the "assets" edge to the Asset entity by IDs. func (_u *AssetUpdateOne) AddAssetIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.AddAssetIDs(ids...) return _u } // AddAssets adds the "assets" edges to the Asset entity. func (_u *AssetUpdateOne) AddAssets(v ...*Asset) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddAssetIDs(ids...) } // AddEventIDs adds the "event" edge to the Event entity by IDs. func (_u *AssetUpdateOne) AddEventIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.AddEventIDs(ids...) return _u } // AddEvent adds the "event" edges to the Event entity. func (_u *AssetUpdateOne) AddEvent(v ...*Event) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddEventIDs(ids...) } // Mutation returns the AssetMutation object of the builder. func (_u *AssetUpdateOne) Mutation() *AssetMutation { return _u.mutation } // ClearPosts clears all "posts" edges to the Post entity. func (_u *AssetUpdateOne) ClearPosts() *AssetUpdateOne { _u.mutation.ClearPosts() return _u } // RemovePostIDs removes the "posts" edge to Post entities by IDs. func (_u *AssetUpdateOne) RemovePostIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.RemovePostIDs(ids...) return _u } // RemovePosts removes "posts" edges to Post entities. func (_u *AssetUpdateOne) RemovePosts(v ...*Post) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemovePostIDs(ids...) } // ClearNodes clears all "nodes" edges to the Node entity. func (_u *AssetUpdateOne) ClearNodes() *AssetUpdateOne { _u.mutation.ClearNodes() return _u } // RemoveNodeIDs removes the "nodes" edge to Node entities by IDs. func (_u *AssetUpdateOne) RemoveNodeIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.RemoveNodeIDs(ids...) return _u } // RemoveNodes removes "nodes" edges to Node entities. func (_u *AssetUpdateOne) RemoveNodes(v ...*Node) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNodeIDs(ids...) } // ClearLinks clears all "links" edges to the Link entity. func (_u *AssetUpdateOne) ClearLinks() *AssetUpdateOne { _u.mutation.ClearLinks() return _u } // RemoveLinkIDs removes the "links" edge to Link entities by IDs. func (_u *AssetUpdateOne) RemoveLinkIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.RemoveLinkIDs(ids...) return _u } // RemoveLinks removes "links" edges to Link entities. func (_u *AssetUpdateOne) RemoveLinks(v ...*Link) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveLinkIDs(ids...) } // ClearOwner clears the "owner" edge to the Account entity. func (_u *AssetUpdateOne) ClearOwner() *AssetUpdateOne { _u.mutation.ClearOwner() return _u } // ClearParent clears the "parent" edge to the Asset entity. func (_u *AssetUpdateOne) ClearParent() *AssetUpdateOne { _u.mutation.ClearParent() return _u } // ClearAssets clears all "assets" edges to the Asset entity. func (_u *AssetUpdateOne) ClearAssets() *AssetUpdateOne { _u.mutation.ClearAssets() return _u } // RemoveAssetIDs removes the "assets" edge to Asset entities by IDs. func (_u *AssetUpdateOne) RemoveAssetIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.RemoveAssetIDs(ids...) return _u } // RemoveAssets removes "assets" edges to Asset entities. func (_u *AssetUpdateOne) RemoveAssets(v ...*Asset) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveAssetIDs(ids...) } // ClearEvent clears all "event" edges to the Event entity. func (_u *AssetUpdateOne) ClearEvent() *AssetUpdateOne { _u.mutation.ClearEvent() return _u } // RemoveEventIDs removes the "event" edge to Event entities by IDs. func (_u *AssetUpdateOne) RemoveEventIDs(ids ...xid.ID) *AssetUpdateOne { _u.mutation.RemoveEventIDs(ids...) return _u } // RemoveEvent removes "event" edges to Event entities. func (_u *AssetUpdateOne) RemoveEvent(v ...*Event) *AssetUpdateOne { ids := make([]xid.ID, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveEventIDs(ids...) } // Where appends a list predicates to the AssetUpdate builder. func (_u *AssetUpdateOne) Where(ps ...predicate.Asset) *AssetUpdateOne { _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 *AssetUpdateOne) Select(field string, fields ...string) *AssetUpdateOne { _u.fields = append([]string{field}, fields...) return _u } // Save executes the query and returns the updated Asset entity. func (_u *AssetUpdateOne) Save(ctx context.Context) (*Asset, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *AssetUpdateOne) SaveX(ctx context.Context) *Asset { node, err := _u.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (_u *AssetUpdateOne) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *AssetUpdateOne) 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 *AssetUpdateOne) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := asset.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *AssetUpdateOne) check() error { if _u.mutation.OwnerCleared() && len(_u.mutation.OwnerIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "Asset.owner"`) } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *AssetUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *AssetUpdateOne { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *AssetUpdateOne) sqlSave(ctx context.Context) (_node *Asset, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(asset.Table, asset.Columns, sqlgraph.NewFieldSpec(asset.FieldID, field.TypeString)) id, ok := _u.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Asset.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, asset.FieldID) for _, f := range fields { if !asset.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != asset.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(asset.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.Filename(); ok { _spec.SetField(asset.FieldFilename, field.TypeString, value) } if value, ok := _u.mutation.Size(); ok { _spec.SetField(asset.FieldSize, field.TypeInt, value) } if value, ok := _u.mutation.AddedSize(); ok { _spec.AddField(asset.FieldSize, field.TypeInt, value) } if value, ok := _u.mutation.MimeType(); ok { _spec.SetField(asset.FieldMimeType, field.TypeString, value) } if value, ok := _u.mutation.Metadata(); ok { _spec.SetField(asset.FieldMetadata, field.TypeJSON, value) } if _u.mutation.MetadataCleared() { _spec.ClearField(asset.FieldMetadata, field.TypeJSON) } if _u.mutation.PostsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedPostsIDs(); len(nodes) > 0 && !_u.mutation.PostsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.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.PostsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.PostsTable, Columns: asset.PostsPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(post.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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.M2M, Inverse: true, Table: asset.NodesTable, Columns: asset.NodesPrimaryKey, 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.LinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(link.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedLinksIDs(); len(nodes) > 0 && !_u.mutation.LinksCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, 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.LinksIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2M, Inverse: true, Table: asset.LinksTable, Columns: asset.LinksPrimaryKey, 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.OwnerCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: true, Table: asset.OwnerTable, Columns: []string{asset.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: asset.OwnerTable, Columns: []string{asset.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: asset.ParentTable, Columns: []string{asset.ParentColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(asset.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: asset.ParentTable, Columns: []string{asset.ParentColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.O2M, Inverse: false, Table: asset.AssetsTable, Columns: []string{asset.AssetsColumn}, 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.EventCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.FieldID, field.TypeString), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedEventIDs(); len(nodes) > 0 && !_u.mutation.EventCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.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.EventIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: false, Table: asset.EventTable, Columns: []string{asset.EventColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(event.FieldID, field.TypeString), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } _spec.AddModifiers(_u.modifiers...) _node = &Asset{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{asset.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