feed_update.go
1 // Code generated by ent, DO NOT EDIT. 2 3 package ent 4 5 import ( 6 "context" 7 "errors" 8 "fmt" 9 "time" 10 11 "entgo.io/ent/dialect/sql" 12 "entgo.io/ent/dialect/sql/sqlgraph" 13 "entgo.io/ent/schema/field" 14 "github.com/google/uuid" 15 "github.com/mrusme/journalist/ent/feed" 16 "github.com/mrusme/journalist/ent/item" 17 "github.com/mrusme/journalist/ent/predicate" 18 "github.com/mrusme/journalist/ent/subscription" 19 "github.com/mrusme/journalist/ent/user" 20 ) 21 22 // FeedUpdate is the builder for updating Feed entities. 23 type FeedUpdate struct { 24 config 25 hooks []Hook 26 mutation *FeedMutation 27 } 28 29 // Where appends a list predicates to the FeedUpdate builder. 30 func (fu *FeedUpdate) Where(ps ...predicate.Feed) *FeedUpdate { 31 fu.mutation.Where(ps...) 32 return fu 33 } 34 35 // SetURL sets the "url" field. 36 func (fu *FeedUpdate) SetURL(s string) *FeedUpdate { 37 fu.mutation.SetURL(s) 38 return fu 39 } 40 41 // SetNillableURL sets the "url" field if the given value is not nil. 42 func (fu *FeedUpdate) SetNillableURL(s *string) *FeedUpdate { 43 if s != nil { 44 fu.SetURL(*s) 45 } 46 return fu 47 } 48 49 // SetUsername sets the "username" field. 50 func (fu *FeedUpdate) SetUsername(s string) *FeedUpdate { 51 fu.mutation.SetUsername(s) 52 return fu 53 } 54 55 // SetNillableUsername sets the "username" field if the given value is not nil. 56 func (fu *FeedUpdate) SetNillableUsername(s *string) *FeedUpdate { 57 if s != nil { 58 fu.SetUsername(*s) 59 } 60 return fu 61 } 62 63 // SetPassword sets the "password" field. 64 func (fu *FeedUpdate) SetPassword(s string) *FeedUpdate { 65 fu.mutation.SetPassword(s) 66 return fu 67 } 68 69 // SetNillablePassword sets the "password" field if the given value is not nil. 70 func (fu *FeedUpdate) SetNillablePassword(s *string) *FeedUpdate { 71 if s != nil { 72 fu.SetPassword(*s) 73 } 74 return fu 75 } 76 77 // SetFeedTitle sets the "feed_title" field. 78 func (fu *FeedUpdate) SetFeedTitle(s string) *FeedUpdate { 79 fu.mutation.SetFeedTitle(s) 80 return fu 81 } 82 83 // SetNillableFeedTitle sets the "feed_title" field if the given value is not nil. 84 func (fu *FeedUpdate) SetNillableFeedTitle(s *string) *FeedUpdate { 85 if s != nil { 86 fu.SetFeedTitle(*s) 87 } 88 return fu 89 } 90 91 // SetFeedDescription sets the "feed_description" field. 92 func (fu *FeedUpdate) SetFeedDescription(s string) *FeedUpdate { 93 fu.mutation.SetFeedDescription(s) 94 return fu 95 } 96 97 // SetNillableFeedDescription sets the "feed_description" field if the given value is not nil. 98 func (fu *FeedUpdate) SetNillableFeedDescription(s *string) *FeedUpdate { 99 if s != nil { 100 fu.SetFeedDescription(*s) 101 } 102 return fu 103 } 104 105 // SetFeedLink sets the "feed_link" field. 106 func (fu *FeedUpdate) SetFeedLink(s string) *FeedUpdate { 107 fu.mutation.SetFeedLink(s) 108 return fu 109 } 110 111 // SetNillableFeedLink sets the "feed_link" field if the given value is not nil. 112 func (fu *FeedUpdate) SetNillableFeedLink(s *string) *FeedUpdate { 113 if s != nil { 114 fu.SetFeedLink(*s) 115 } 116 return fu 117 } 118 119 // SetFeedFeedLink sets the "feed_feed_link" field. 120 func (fu *FeedUpdate) SetFeedFeedLink(s string) *FeedUpdate { 121 fu.mutation.SetFeedFeedLink(s) 122 return fu 123 } 124 125 // SetNillableFeedFeedLink sets the "feed_feed_link" field if the given value is not nil. 126 func (fu *FeedUpdate) SetNillableFeedFeedLink(s *string) *FeedUpdate { 127 if s != nil { 128 fu.SetFeedFeedLink(*s) 129 } 130 return fu 131 } 132 133 // SetFeedUpdated sets the "feed_updated" field. 134 func (fu *FeedUpdate) SetFeedUpdated(t time.Time) *FeedUpdate { 135 fu.mutation.SetFeedUpdated(t) 136 return fu 137 } 138 139 // SetNillableFeedUpdated sets the "feed_updated" field if the given value is not nil. 140 func (fu *FeedUpdate) SetNillableFeedUpdated(t *time.Time) *FeedUpdate { 141 if t != nil { 142 fu.SetFeedUpdated(*t) 143 } 144 return fu 145 } 146 147 // SetFeedPublished sets the "feed_published" field. 148 func (fu *FeedUpdate) SetFeedPublished(t time.Time) *FeedUpdate { 149 fu.mutation.SetFeedPublished(t) 150 return fu 151 } 152 153 // SetNillableFeedPublished sets the "feed_published" field if the given value is not nil. 154 func (fu *FeedUpdate) SetNillableFeedPublished(t *time.Time) *FeedUpdate { 155 if t != nil { 156 fu.SetFeedPublished(*t) 157 } 158 return fu 159 } 160 161 // SetFeedAuthorName sets the "feed_author_name" field. 162 func (fu *FeedUpdate) SetFeedAuthorName(s string) *FeedUpdate { 163 fu.mutation.SetFeedAuthorName(s) 164 return fu 165 } 166 167 // SetNillableFeedAuthorName sets the "feed_author_name" field if the given value is not nil. 168 func (fu *FeedUpdate) SetNillableFeedAuthorName(s *string) *FeedUpdate { 169 if s != nil { 170 fu.SetFeedAuthorName(*s) 171 } 172 return fu 173 } 174 175 // ClearFeedAuthorName clears the value of the "feed_author_name" field. 176 func (fu *FeedUpdate) ClearFeedAuthorName() *FeedUpdate { 177 fu.mutation.ClearFeedAuthorName() 178 return fu 179 } 180 181 // SetFeedAuthorEmail sets the "feed_author_email" field. 182 func (fu *FeedUpdate) SetFeedAuthorEmail(s string) *FeedUpdate { 183 fu.mutation.SetFeedAuthorEmail(s) 184 return fu 185 } 186 187 // SetNillableFeedAuthorEmail sets the "feed_author_email" field if the given value is not nil. 188 func (fu *FeedUpdate) SetNillableFeedAuthorEmail(s *string) *FeedUpdate { 189 if s != nil { 190 fu.SetFeedAuthorEmail(*s) 191 } 192 return fu 193 } 194 195 // ClearFeedAuthorEmail clears the value of the "feed_author_email" field. 196 func (fu *FeedUpdate) ClearFeedAuthorEmail() *FeedUpdate { 197 fu.mutation.ClearFeedAuthorEmail() 198 return fu 199 } 200 201 // SetFeedLanguage sets the "feed_language" field. 202 func (fu *FeedUpdate) SetFeedLanguage(s string) *FeedUpdate { 203 fu.mutation.SetFeedLanguage(s) 204 return fu 205 } 206 207 // SetNillableFeedLanguage sets the "feed_language" field if the given value is not nil. 208 func (fu *FeedUpdate) SetNillableFeedLanguage(s *string) *FeedUpdate { 209 if s != nil { 210 fu.SetFeedLanguage(*s) 211 } 212 return fu 213 } 214 215 // SetFeedImageTitle sets the "feed_image_title" field. 216 func (fu *FeedUpdate) SetFeedImageTitle(s string) *FeedUpdate { 217 fu.mutation.SetFeedImageTitle(s) 218 return fu 219 } 220 221 // SetNillableFeedImageTitle sets the "feed_image_title" field if the given value is not nil. 222 func (fu *FeedUpdate) SetNillableFeedImageTitle(s *string) *FeedUpdate { 223 if s != nil { 224 fu.SetFeedImageTitle(*s) 225 } 226 return fu 227 } 228 229 // ClearFeedImageTitle clears the value of the "feed_image_title" field. 230 func (fu *FeedUpdate) ClearFeedImageTitle() *FeedUpdate { 231 fu.mutation.ClearFeedImageTitle() 232 return fu 233 } 234 235 // SetFeedImageURL sets the "feed_image_url" field. 236 func (fu *FeedUpdate) SetFeedImageURL(s string) *FeedUpdate { 237 fu.mutation.SetFeedImageURL(s) 238 return fu 239 } 240 241 // SetNillableFeedImageURL sets the "feed_image_url" field if the given value is not nil. 242 func (fu *FeedUpdate) SetNillableFeedImageURL(s *string) *FeedUpdate { 243 if s != nil { 244 fu.SetFeedImageURL(*s) 245 } 246 return fu 247 } 248 249 // ClearFeedImageURL clears the value of the "feed_image_url" field. 250 func (fu *FeedUpdate) ClearFeedImageURL() *FeedUpdate { 251 fu.mutation.ClearFeedImageURL() 252 return fu 253 } 254 255 // SetFeedCopyright sets the "feed_copyright" field. 256 func (fu *FeedUpdate) SetFeedCopyright(s string) *FeedUpdate { 257 fu.mutation.SetFeedCopyright(s) 258 return fu 259 } 260 261 // SetNillableFeedCopyright sets the "feed_copyright" field if the given value is not nil. 262 func (fu *FeedUpdate) SetNillableFeedCopyright(s *string) *FeedUpdate { 263 if s != nil { 264 fu.SetFeedCopyright(*s) 265 } 266 return fu 267 } 268 269 // SetFeedGenerator sets the "feed_generator" field. 270 func (fu *FeedUpdate) SetFeedGenerator(s string) *FeedUpdate { 271 fu.mutation.SetFeedGenerator(s) 272 return fu 273 } 274 275 // SetNillableFeedGenerator sets the "feed_generator" field if the given value is not nil. 276 func (fu *FeedUpdate) SetNillableFeedGenerator(s *string) *FeedUpdate { 277 if s != nil { 278 fu.SetFeedGenerator(*s) 279 } 280 return fu 281 } 282 283 // SetFeedCategories sets the "feed_categories" field. 284 func (fu *FeedUpdate) SetFeedCategories(s string) *FeedUpdate { 285 fu.mutation.SetFeedCategories(s) 286 return fu 287 } 288 289 // SetNillableFeedCategories sets the "feed_categories" field if the given value is not nil. 290 func (fu *FeedUpdate) SetNillableFeedCategories(s *string) *FeedUpdate { 291 if s != nil { 292 fu.SetFeedCategories(*s) 293 } 294 return fu 295 } 296 297 // SetCreatedAt sets the "created_at" field. 298 func (fu *FeedUpdate) SetCreatedAt(t time.Time) *FeedUpdate { 299 fu.mutation.SetCreatedAt(t) 300 return fu 301 } 302 303 // SetNillableCreatedAt sets the "created_at" field if the given value is not nil. 304 func (fu *FeedUpdate) SetNillableCreatedAt(t *time.Time) *FeedUpdate { 305 if t != nil { 306 fu.SetCreatedAt(*t) 307 } 308 return fu 309 } 310 311 // SetUpdatedAt sets the "updated_at" field. 312 func (fu *FeedUpdate) SetUpdatedAt(t time.Time) *FeedUpdate { 313 fu.mutation.SetUpdatedAt(t) 314 return fu 315 } 316 317 // SetDeletedAt sets the "deleted_at" field. 318 func (fu *FeedUpdate) SetDeletedAt(t time.Time) *FeedUpdate { 319 fu.mutation.SetDeletedAt(t) 320 return fu 321 } 322 323 // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. 324 func (fu *FeedUpdate) SetNillableDeletedAt(t *time.Time) *FeedUpdate { 325 if t != nil { 326 fu.SetDeletedAt(*t) 327 } 328 return fu 329 } 330 331 // ClearDeletedAt clears the value of the "deleted_at" field. 332 func (fu *FeedUpdate) ClearDeletedAt() *FeedUpdate { 333 fu.mutation.ClearDeletedAt() 334 return fu 335 } 336 337 // AddItemIDs adds the "items" edge to the Item entity by IDs. 338 func (fu *FeedUpdate) AddItemIDs(ids ...uuid.UUID) *FeedUpdate { 339 fu.mutation.AddItemIDs(ids...) 340 return fu 341 } 342 343 // AddItems adds the "items" edges to the Item entity. 344 func (fu *FeedUpdate) AddItems(i ...*Item) *FeedUpdate { 345 ids := make([]uuid.UUID, len(i)) 346 for j := range i { 347 ids[j] = i[j].ID 348 } 349 return fu.AddItemIDs(ids...) 350 } 351 352 // AddSubscribedUserIDs adds the "subscribed_users" edge to the User entity by IDs. 353 func (fu *FeedUpdate) AddSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdate { 354 fu.mutation.AddSubscribedUserIDs(ids...) 355 return fu 356 } 357 358 // AddSubscribedUsers adds the "subscribed_users" edges to the User entity. 359 func (fu *FeedUpdate) AddSubscribedUsers(u ...*User) *FeedUpdate { 360 ids := make([]uuid.UUID, len(u)) 361 for i := range u { 362 ids[i] = u[i].ID 363 } 364 return fu.AddSubscribedUserIDs(ids...) 365 } 366 367 // AddSubscriptionIDs adds the "subscriptions" edge to the Subscription entity by IDs. 368 func (fu *FeedUpdate) AddSubscriptionIDs(ids ...uuid.UUID) *FeedUpdate { 369 fu.mutation.AddSubscriptionIDs(ids...) 370 return fu 371 } 372 373 // AddSubscriptions adds the "subscriptions" edges to the Subscription entity. 374 func (fu *FeedUpdate) AddSubscriptions(s ...*Subscription) *FeedUpdate { 375 ids := make([]uuid.UUID, len(s)) 376 for i := range s { 377 ids[i] = s[i].ID 378 } 379 return fu.AddSubscriptionIDs(ids...) 380 } 381 382 // Mutation returns the FeedMutation object of the builder. 383 func (fu *FeedUpdate) Mutation() *FeedMutation { 384 return fu.mutation 385 } 386 387 // ClearItems clears all "items" edges to the Item entity. 388 func (fu *FeedUpdate) ClearItems() *FeedUpdate { 389 fu.mutation.ClearItems() 390 return fu 391 } 392 393 // RemoveItemIDs removes the "items" edge to Item entities by IDs. 394 func (fu *FeedUpdate) RemoveItemIDs(ids ...uuid.UUID) *FeedUpdate { 395 fu.mutation.RemoveItemIDs(ids...) 396 return fu 397 } 398 399 // RemoveItems removes "items" edges to Item entities. 400 func (fu *FeedUpdate) RemoveItems(i ...*Item) *FeedUpdate { 401 ids := make([]uuid.UUID, len(i)) 402 for j := range i { 403 ids[j] = i[j].ID 404 } 405 return fu.RemoveItemIDs(ids...) 406 } 407 408 // ClearSubscribedUsers clears all "subscribed_users" edges to the User entity. 409 func (fu *FeedUpdate) ClearSubscribedUsers() *FeedUpdate { 410 fu.mutation.ClearSubscribedUsers() 411 return fu 412 } 413 414 // RemoveSubscribedUserIDs removes the "subscribed_users" edge to User entities by IDs. 415 func (fu *FeedUpdate) RemoveSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdate { 416 fu.mutation.RemoveSubscribedUserIDs(ids...) 417 return fu 418 } 419 420 // RemoveSubscribedUsers removes "subscribed_users" edges to User entities. 421 func (fu *FeedUpdate) RemoveSubscribedUsers(u ...*User) *FeedUpdate { 422 ids := make([]uuid.UUID, len(u)) 423 for i := range u { 424 ids[i] = u[i].ID 425 } 426 return fu.RemoveSubscribedUserIDs(ids...) 427 } 428 429 // ClearSubscriptions clears all "subscriptions" edges to the Subscription entity. 430 func (fu *FeedUpdate) ClearSubscriptions() *FeedUpdate { 431 fu.mutation.ClearSubscriptions() 432 return fu 433 } 434 435 // RemoveSubscriptionIDs removes the "subscriptions" edge to Subscription entities by IDs. 436 func (fu *FeedUpdate) RemoveSubscriptionIDs(ids ...uuid.UUID) *FeedUpdate { 437 fu.mutation.RemoveSubscriptionIDs(ids...) 438 return fu 439 } 440 441 // RemoveSubscriptions removes "subscriptions" edges to Subscription entities. 442 func (fu *FeedUpdate) RemoveSubscriptions(s ...*Subscription) *FeedUpdate { 443 ids := make([]uuid.UUID, len(s)) 444 for i := range s { 445 ids[i] = s[i].ID 446 } 447 return fu.RemoveSubscriptionIDs(ids...) 448 } 449 450 // Save executes the query and returns the number of nodes affected by the update operation. 451 func (fu *FeedUpdate) Save(ctx context.Context) (int, error) { 452 fu.defaults() 453 return withHooks(ctx, fu.sqlSave, fu.mutation, fu.hooks) 454 } 455 456 // SaveX is like Save, but panics if an error occurs. 457 func (fu *FeedUpdate) SaveX(ctx context.Context) int { 458 affected, err := fu.Save(ctx) 459 if err != nil { 460 panic(err) 461 } 462 return affected 463 } 464 465 // Exec executes the query. 466 func (fu *FeedUpdate) Exec(ctx context.Context) error { 467 _, err := fu.Save(ctx) 468 return err 469 } 470 471 // ExecX is like Exec, but panics if an error occurs. 472 func (fu *FeedUpdate) ExecX(ctx context.Context) { 473 if err := fu.Exec(ctx); err != nil { 474 panic(err) 475 } 476 } 477 478 // defaults sets the default values of the builder before save. 479 func (fu *FeedUpdate) defaults() { 480 if _, ok := fu.mutation.UpdatedAt(); !ok { 481 v := feed.UpdateDefaultUpdatedAt() 482 fu.mutation.SetUpdatedAt(v) 483 } 484 } 485 486 // check runs all checks and user-defined validators on the builder. 487 func (fu *FeedUpdate) check() error { 488 if v, ok := fu.mutation.URL(); ok { 489 if err := feed.URLValidator(v); err != nil { 490 return &ValidationError{Name: "url", err: fmt.Errorf(`ent: validator failed for field "Feed.url": %w`, err)} 491 } 492 } 493 return nil 494 } 495 496 func (fu *FeedUpdate) sqlSave(ctx context.Context) (n int, err error) { 497 if err := fu.check(); err != nil { 498 return n, err 499 } 500 _spec := sqlgraph.NewUpdateSpec(feed.Table, feed.Columns, sqlgraph.NewFieldSpec(feed.FieldID, field.TypeUUID)) 501 if ps := fu.mutation.predicates; len(ps) > 0 { 502 _spec.Predicate = func(selector *sql.Selector) { 503 for i := range ps { 504 ps[i](selector) 505 } 506 } 507 } 508 if value, ok := fu.mutation.URL(); ok { 509 _spec.SetField(feed.FieldURL, field.TypeString, value) 510 } 511 if value, ok := fu.mutation.Username(); ok { 512 _spec.SetField(feed.FieldUsername, field.TypeString, value) 513 } 514 if value, ok := fu.mutation.Password(); ok { 515 _spec.SetField(feed.FieldPassword, field.TypeString, value) 516 } 517 if value, ok := fu.mutation.FeedTitle(); ok { 518 _spec.SetField(feed.FieldFeedTitle, field.TypeString, value) 519 } 520 if value, ok := fu.mutation.FeedDescription(); ok { 521 _spec.SetField(feed.FieldFeedDescription, field.TypeString, value) 522 } 523 if value, ok := fu.mutation.FeedLink(); ok { 524 _spec.SetField(feed.FieldFeedLink, field.TypeString, value) 525 } 526 if value, ok := fu.mutation.FeedFeedLink(); ok { 527 _spec.SetField(feed.FieldFeedFeedLink, field.TypeString, value) 528 } 529 if value, ok := fu.mutation.FeedUpdated(); ok { 530 _spec.SetField(feed.FieldFeedUpdated, field.TypeTime, value) 531 } 532 if value, ok := fu.mutation.FeedPublished(); ok { 533 _spec.SetField(feed.FieldFeedPublished, field.TypeTime, value) 534 } 535 if value, ok := fu.mutation.FeedAuthorName(); ok { 536 _spec.SetField(feed.FieldFeedAuthorName, field.TypeString, value) 537 } 538 if fu.mutation.FeedAuthorNameCleared() { 539 _spec.ClearField(feed.FieldFeedAuthorName, field.TypeString) 540 } 541 if value, ok := fu.mutation.FeedAuthorEmail(); ok { 542 _spec.SetField(feed.FieldFeedAuthorEmail, field.TypeString, value) 543 } 544 if fu.mutation.FeedAuthorEmailCleared() { 545 _spec.ClearField(feed.FieldFeedAuthorEmail, field.TypeString) 546 } 547 if value, ok := fu.mutation.FeedLanguage(); ok { 548 _spec.SetField(feed.FieldFeedLanguage, field.TypeString, value) 549 } 550 if value, ok := fu.mutation.FeedImageTitle(); ok { 551 _spec.SetField(feed.FieldFeedImageTitle, field.TypeString, value) 552 } 553 if fu.mutation.FeedImageTitleCleared() { 554 _spec.ClearField(feed.FieldFeedImageTitle, field.TypeString) 555 } 556 if value, ok := fu.mutation.FeedImageURL(); ok { 557 _spec.SetField(feed.FieldFeedImageURL, field.TypeString, value) 558 } 559 if fu.mutation.FeedImageURLCleared() { 560 _spec.ClearField(feed.FieldFeedImageURL, field.TypeString) 561 } 562 if value, ok := fu.mutation.FeedCopyright(); ok { 563 _spec.SetField(feed.FieldFeedCopyright, field.TypeString, value) 564 } 565 if value, ok := fu.mutation.FeedGenerator(); ok { 566 _spec.SetField(feed.FieldFeedGenerator, field.TypeString, value) 567 } 568 if value, ok := fu.mutation.FeedCategories(); ok { 569 _spec.SetField(feed.FieldFeedCategories, field.TypeString, value) 570 } 571 if value, ok := fu.mutation.CreatedAt(); ok { 572 _spec.SetField(feed.FieldCreatedAt, field.TypeTime, value) 573 } 574 if value, ok := fu.mutation.UpdatedAt(); ok { 575 _spec.SetField(feed.FieldUpdatedAt, field.TypeTime, value) 576 } 577 if value, ok := fu.mutation.DeletedAt(); ok { 578 _spec.SetField(feed.FieldDeletedAt, field.TypeTime, value) 579 } 580 if fu.mutation.DeletedAtCleared() { 581 _spec.ClearField(feed.FieldDeletedAt, field.TypeTime) 582 } 583 if fu.mutation.ItemsCleared() { 584 edge := &sqlgraph.EdgeSpec{ 585 Rel: sqlgraph.O2M, 586 Inverse: false, 587 Table: feed.ItemsTable, 588 Columns: []string{feed.ItemsColumn}, 589 Bidi: false, 590 Target: &sqlgraph.EdgeTarget{ 591 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 592 }, 593 } 594 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 595 } 596 if nodes := fu.mutation.RemovedItemsIDs(); len(nodes) > 0 && !fu.mutation.ItemsCleared() { 597 edge := &sqlgraph.EdgeSpec{ 598 Rel: sqlgraph.O2M, 599 Inverse: false, 600 Table: feed.ItemsTable, 601 Columns: []string{feed.ItemsColumn}, 602 Bidi: false, 603 Target: &sqlgraph.EdgeTarget{ 604 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 605 }, 606 } 607 for _, k := range nodes { 608 edge.Target.Nodes = append(edge.Target.Nodes, k) 609 } 610 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 611 } 612 if nodes := fu.mutation.ItemsIDs(); len(nodes) > 0 { 613 edge := &sqlgraph.EdgeSpec{ 614 Rel: sqlgraph.O2M, 615 Inverse: false, 616 Table: feed.ItemsTable, 617 Columns: []string{feed.ItemsColumn}, 618 Bidi: false, 619 Target: &sqlgraph.EdgeTarget{ 620 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 621 }, 622 } 623 for _, k := range nodes { 624 edge.Target.Nodes = append(edge.Target.Nodes, k) 625 } 626 _spec.Edges.Add = append(_spec.Edges.Add, edge) 627 } 628 if fu.mutation.SubscribedUsersCleared() { 629 edge := &sqlgraph.EdgeSpec{ 630 Rel: sqlgraph.M2M, 631 Inverse: true, 632 Table: feed.SubscribedUsersTable, 633 Columns: feed.SubscribedUsersPrimaryKey, 634 Bidi: false, 635 Target: &sqlgraph.EdgeTarget{ 636 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 637 }, 638 } 639 createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)} 640 createE.defaults() 641 _, specE := createE.createSpec() 642 edge.Target.Fields = specE.Fields 643 if specE.ID.Value != nil { 644 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 645 } 646 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 647 } 648 if nodes := fu.mutation.RemovedSubscribedUsersIDs(); len(nodes) > 0 && !fu.mutation.SubscribedUsersCleared() { 649 edge := &sqlgraph.EdgeSpec{ 650 Rel: sqlgraph.M2M, 651 Inverse: true, 652 Table: feed.SubscribedUsersTable, 653 Columns: feed.SubscribedUsersPrimaryKey, 654 Bidi: false, 655 Target: &sqlgraph.EdgeTarget{ 656 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 657 }, 658 } 659 for _, k := range nodes { 660 edge.Target.Nodes = append(edge.Target.Nodes, k) 661 } 662 createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)} 663 createE.defaults() 664 _, specE := createE.createSpec() 665 edge.Target.Fields = specE.Fields 666 if specE.ID.Value != nil { 667 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 668 } 669 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 670 } 671 if nodes := fu.mutation.SubscribedUsersIDs(); len(nodes) > 0 { 672 edge := &sqlgraph.EdgeSpec{ 673 Rel: sqlgraph.M2M, 674 Inverse: true, 675 Table: feed.SubscribedUsersTable, 676 Columns: feed.SubscribedUsersPrimaryKey, 677 Bidi: false, 678 Target: &sqlgraph.EdgeTarget{ 679 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 680 }, 681 } 682 for _, k := range nodes { 683 edge.Target.Nodes = append(edge.Target.Nodes, k) 684 } 685 createE := &SubscriptionCreate{config: fu.config, mutation: newSubscriptionMutation(fu.config, OpCreate)} 686 createE.defaults() 687 _, specE := createE.createSpec() 688 edge.Target.Fields = specE.Fields 689 if specE.ID.Value != nil { 690 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 691 } 692 _spec.Edges.Add = append(_spec.Edges.Add, edge) 693 } 694 if fu.mutation.SubscriptionsCleared() { 695 edge := &sqlgraph.EdgeSpec{ 696 Rel: sqlgraph.O2M, 697 Inverse: true, 698 Table: feed.SubscriptionsTable, 699 Columns: []string{feed.SubscriptionsColumn}, 700 Bidi: false, 701 Target: &sqlgraph.EdgeTarget{ 702 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 703 }, 704 } 705 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 706 } 707 if nodes := fu.mutation.RemovedSubscriptionsIDs(); len(nodes) > 0 && !fu.mutation.SubscriptionsCleared() { 708 edge := &sqlgraph.EdgeSpec{ 709 Rel: sqlgraph.O2M, 710 Inverse: true, 711 Table: feed.SubscriptionsTable, 712 Columns: []string{feed.SubscriptionsColumn}, 713 Bidi: false, 714 Target: &sqlgraph.EdgeTarget{ 715 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 716 }, 717 } 718 for _, k := range nodes { 719 edge.Target.Nodes = append(edge.Target.Nodes, k) 720 } 721 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 722 } 723 if nodes := fu.mutation.SubscriptionsIDs(); len(nodes) > 0 { 724 edge := &sqlgraph.EdgeSpec{ 725 Rel: sqlgraph.O2M, 726 Inverse: true, 727 Table: feed.SubscriptionsTable, 728 Columns: []string{feed.SubscriptionsColumn}, 729 Bidi: false, 730 Target: &sqlgraph.EdgeTarget{ 731 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 732 }, 733 } 734 for _, k := range nodes { 735 edge.Target.Nodes = append(edge.Target.Nodes, k) 736 } 737 _spec.Edges.Add = append(_spec.Edges.Add, edge) 738 } 739 if n, err = sqlgraph.UpdateNodes(ctx, fu.driver, _spec); err != nil { 740 if _, ok := err.(*sqlgraph.NotFoundError); ok { 741 err = &NotFoundError{feed.Label} 742 } else if sqlgraph.IsConstraintError(err) { 743 err = &ConstraintError{msg: err.Error(), wrap: err} 744 } 745 return 0, err 746 } 747 fu.mutation.done = true 748 return n, nil 749 } 750 751 // FeedUpdateOne is the builder for updating a single Feed entity. 752 type FeedUpdateOne struct { 753 config 754 fields []string 755 hooks []Hook 756 mutation *FeedMutation 757 } 758 759 // SetURL sets the "url" field. 760 func (fuo *FeedUpdateOne) SetURL(s string) *FeedUpdateOne { 761 fuo.mutation.SetURL(s) 762 return fuo 763 } 764 765 // SetNillableURL sets the "url" field if the given value is not nil. 766 func (fuo *FeedUpdateOne) SetNillableURL(s *string) *FeedUpdateOne { 767 if s != nil { 768 fuo.SetURL(*s) 769 } 770 return fuo 771 } 772 773 // SetUsername sets the "username" field. 774 func (fuo *FeedUpdateOne) SetUsername(s string) *FeedUpdateOne { 775 fuo.mutation.SetUsername(s) 776 return fuo 777 } 778 779 // SetNillableUsername sets the "username" field if the given value is not nil. 780 func (fuo *FeedUpdateOne) SetNillableUsername(s *string) *FeedUpdateOne { 781 if s != nil { 782 fuo.SetUsername(*s) 783 } 784 return fuo 785 } 786 787 // SetPassword sets the "password" field. 788 func (fuo *FeedUpdateOne) SetPassword(s string) *FeedUpdateOne { 789 fuo.mutation.SetPassword(s) 790 return fuo 791 } 792 793 // SetNillablePassword sets the "password" field if the given value is not nil. 794 func (fuo *FeedUpdateOne) SetNillablePassword(s *string) *FeedUpdateOne { 795 if s != nil { 796 fuo.SetPassword(*s) 797 } 798 return fuo 799 } 800 801 // SetFeedTitle sets the "feed_title" field. 802 func (fuo *FeedUpdateOne) SetFeedTitle(s string) *FeedUpdateOne { 803 fuo.mutation.SetFeedTitle(s) 804 return fuo 805 } 806 807 // SetNillableFeedTitle sets the "feed_title" field if the given value is not nil. 808 func (fuo *FeedUpdateOne) SetNillableFeedTitle(s *string) *FeedUpdateOne { 809 if s != nil { 810 fuo.SetFeedTitle(*s) 811 } 812 return fuo 813 } 814 815 // SetFeedDescription sets the "feed_description" field. 816 func (fuo *FeedUpdateOne) SetFeedDescription(s string) *FeedUpdateOne { 817 fuo.mutation.SetFeedDescription(s) 818 return fuo 819 } 820 821 // SetNillableFeedDescription sets the "feed_description" field if the given value is not nil. 822 func (fuo *FeedUpdateOne) SetNillableFeedDescription(s *string) *FeedUpdateOne { 823 if s != nil { 824 fuo.SetFeedDescription(*s) 825 } 826 return fuo 827 } 828 829 // SetFeedLink sets the "feed_link" field. 830 func (fuo *FeedUpdateOne) SetFeedLink(s string) *FeedUpdateOne { 831 fuo.mutation.SetFeedLink(s) 832 return fuo 833 } 834 835 // SetNillableFeedLink sets the "feed_link" field if the given value is not nil. 836 func (fuo *FeedUpdateOne) SetNillableFeedLink(s *string) *FeedUpdateOne { 837 if s != nil { 838 fuo.SetFeedLink(*s) 839 } 840 return fuo 841 } 842 843 // SetFeedFeedLink sets the "feed_feed_link" field. 844 func (fuo *FeedUpdateOne) SetFeedFeedLink(s string) *FeedUpdateOne { 845 fuo.mutation.SetFeedFeedLink(s) 846 return fuo 847 } 848 849 // SetNillableFeedFeedLink sets the "feed_feed_link" field if the given value is not nil. 850 func (fuo *FeedUpdateOne) SetNillableFeedFeedLink(s *string) *FeedUpdateOne { 851 if s != nil { 852 fuo.SetFeedFeedLink(*s) 853 } 854 return fuo 855 } 856 857 // SetFeedUpdated sets the "feed_updated" field. 858 func (fuo *FeedUpdateOne) SetFeedUpdated(t time.Time) *FeedUpdateOne { 859 fuo.mutation.SetFeedUpdated(t) 860 return fuo 861 } 862 863 // SetNillableFeedUpdated sets the "feed_updated" field if the given value is not nil. 864 func (fuo *FeedUpdateOne) SetNillableFeedUpdated(t *time.Time) *FeedUpdateOne { 865 if t != nil { 866 fuo.SetFeedUpdated(*t) 867 } 868 return fuo 869 } 870 871 // SetFeedPublished sets the "feed_published" field. 872 func (fuo *FeedUpdateOne) SetFeedPublished(t time.Time) *FeedUpdateOne { 873 fuo.mutation.SetFeedPublished(t) 874 return fuo 875 } 876 877 // SetNillableFeedPublished sets the "feed_published" field if the given value is not nil. 878 func (fuo *FeedUpdateOne) SetNillableFeedPublished(t *time.Time) *FeedUpdateOne { 879 if t != nil { 880 fuo.SetFeedPublished(*t) 881 } 882 return fuo 883 } 884 885 // SetFeedAuthorName sets the "feed_author_name" field. 886 func (fuo *FeedUpdateOne) SetFeedAuthorName(s string) *FeedUpdateOne { 887 fuo.mutation.SetFeedAuthorName(s) 888 return fuo 889 } 890 891 // SetNillableFeedAuthorName sets the "feed_author_name" field if the given value is not nil. 892 func (fuo *FeedUpdateOne) SetNillableFeedAuthorName(s *string) *FeedUpdateOne { 893 if s != nil { 894 fuo.SetFeedAuthorName(*s) 895 } 896 return fuo 897 } 898 899 // ClearFeedAuthorName clears the value of the "feed_author_name" field. 900 func (fuo *FeedUpdateOne) ClearFeedAuthorName() *FeedUpdateOne { 901 fuo.mutation.ClearFeedAuthorName() 902 return fuo 903 } 904 905 // SetFeedAuthorEmail sets the "feed_author_email" field. 906 func (fuo *FeedUpdateOne) SetFeedAuthorEmail(s string) *FeedUpdateOne { 907 fuo.mutation.SetFeedAuthorEmail(s) 908 return fuo 909 } 910 911 // SetNillableFeedAuthorEmail sets the "feed_author_email" field if the given value is not nil. 912 func (fuo *FeedUpdateOne) SetNillableFeedAuthorEmail(s *string) *FeedUpdateOne { 913 if s != nil { 914 fuo.SetFeedAuthorEmail(*s) 915 } 916 return fuo 917 } 918 919 // ClearFeedAuthorEmail clears the value of the "feed_author_email" field. 920 func (fuo *FeedUpdateOne) ClearFeedAuthorEmail() *FeedUpdateOne { 921 fuo.mutation.ClearFeedAuthorEmail() 922 return fuo 923 } 924 925 // SetFeedLanguage sets the "feed_language" field. 926 func (fuo *FeedUpdateOne) SetFeedLanguage(s string) *FeedUpdateOne { 927 fuo.mutation.SetFeedLanguage(s) 928 return fuo 929 } 930 931 // SetNillableFeedLanguage sets the "feed_language" field if the given value is not nil. 932 func (fuo *FeedUpdateOne) SetNillableFeedLanguage(s *string) *FeedUpdateOne { 933 if s != nil { 934 fuo.SetFeedLanguage(*s) 935 } 936 return fuo 937 } 938 939 // SetFeedImageTitle sets the "feed_image_title" field. 940 func (fuo *FeedUpdateOne) SetFeedImageTitle(s string) *FeedUpdateOne { 941 fuo.mutation.SetFeedImageTitle(s) 942 return fuo 943 } 944 945 // SetNillableFeedImageTitle sets the "feed_image_title" field if the given value is not nil. 946 func (fuo *FeedUpdateOne) SetNillableFeedImageTitle(s *string) *FeedUpdateOne { 947 if s != nil { 948 fuo.SetFeedImageTitle(*s) 949 } 950 return fuo 951 } 952 953 // ClearFeedImageTitle clears the value of the "feed_image_title" field. 954 func (fuo *FeedUpdateOne) ClearFeedImageTitle() *FeedUpdateOne { 955 fuo.mutation.ClearFeedImageTitle() 956 return fuo 957 } 958 959 // SetFeedImageURL sets the "feed_image_url" field. 960 func (fuo *FeedUpdateOne) SetFeedImageURL(s string) *FeedUpdateOne { 961 fuo.mutation.SetFeedImageURL(s) 962 return fuo 963 } 964 965 // SetNillableFeedImageURL sets the "feed_image_url" field if the given value is not nil. 966 func (fuo *FeedUpdateOne) SetNillableFeedImageURL(s *string) *FeedUpdateOne { 967 if s != nil { 968 fuo.SetFeedImageURL(*s) 969 } 970 return fuo 971 } 972 973 // ClearFeedImageURL clears the value of the "feed_image_url" field. 974 func (fuo *FeedUpdateOne) ClearFeedImageURL() *FeedUpdateOne { 975 fuo.mutation.ClearFeedImageURL() 976 return fuo 977 } 978 979 // SetFeedCopyright sets the "feed_copyright" field. 980 func (fuo *FeedUpdateOne) SetFeedCopyright(s string) *FeedUpdateOne { 981 fuo.mutation.SetFeedCopyright(s) 982 return fuo 983 } 984 985 // SetNillableFeedCopyright sets the "feed_copyright" field if the given value is not nil. 986 func (fuo *FeedUpdateOne) SetNillableFeedCopyright(s *string) *FeedUpdateOne { 987 if s != nil { 988 fuo.SetFeedCopyright(*s) 989 } 990 return fuo 991 } 992 993 // SetFeedGenerator sets the "feed_generator" field. 994 func (fuo *FeedUpdateOne) SetFeedGenerator(s string) *FeedUpdateOne { 995 fuo.mutation.SetFeedGenerator(s) 996 return fuo 997 } 998 999 // SetNillableFeedGenerator sets the "feed_generator" field if the given value is not nil. 1000 func (fuo *FeedUpdateOne) SetNillableFeedGenerator(s *string) *FeedUpdateOne { 1001 if s != nil { 1002 fuo.SetFeedGenerator(*s) 1003 } 1004 return fuo 1005 } 1006 1007 // SetFeedCategories sets the "feed_categories" field. 1008 func (fuo *FeedUpdateOne) SetFeedCategories(s string) *FeedUpdateOne { 1009 fuo.mutation.SetFeedCategories(s) 1010 return fuo 1011 } 1012 1013 // SetNillableFeedCategories sets the "feed_categories" field if the given value is not nil. 1014 func (fuo *FeedUpdateOne) SetNillableFeedCategories(s *string) *FeedUpdateOne { 1015 if s != nil { 1016 fuo.SetFeedCategories(*s) 1017 } 1018 return fuo 1019 } 1020 1021 // SetCreatedAt sets the "created_at" field. 1022 func (fuo *FeedUpdateOne) SetCreatedAt(t time.Time) *FeedUpdateOne { 1023 fuo.mutation.SetCreatedAt(t) 1024 return fuo 1025 } 1026 1027 // SetNillableCreatedAt sets the "created_at" field if the given value is not nil. 1028 func (fuo *FeedUpdateOne) SetNillableCreatedAt(t *time.Time) *FeedUpdateOne { 1029 if t != nil { 1030 fuo.SetCreatedAt(*t) 1031 } 1032 return fuo 1033 } 1034 1035 // SetUpdatedAt sets the "updated_at" field. 1036 func (fuo *FeedUpdateOne) SetUpdatedAt(t time.Time) *FeedUpdateOne { 1037 fuo.mutation.SetUpdatedAt(t) 1038 return fuo 1039 } 1040 1041 // SetDeletedAt sets the "deleted_at" field. 1042 func (fuo *FeedUpdateOne) SetDeletedAt(t time.Time) *FeedUpdateOne { 1043 fuo.mutation.SetDeletedAt(t) 1044 return fuo 1045 } 1046 1047 // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. 1048 func (fuo *FeedUpdateOne) SetNillableDeletedAt(t *time.Time) *FeedUpdateOne { 1049 if t != nil { 1050 fuo.SetDeletedAt(*t) 1051 } 1052 return fuo 1053 } 1054 1055 // ClearDeletedAt clears the value of the "deleted_at" field. 1056 func (fuo *FeedUpdateOne) ClearDeletedAt() *FeedUpdateOne { 1057 fuo.mutation.ClearDeletedAt() 1058 return fuo 1059 } 1060 1061 // AddItemIDs adds the "items" edge to the Item entity by IDs. 1062 func (fuo *FeedUpdateOne) AddItemIDs(ids ...uuid.UUID) *FeedUpdateOne { 1063 fuo.mutation.AddItemIDs(ids...) 1064 return fuo 1065 } 1066 1067 // AddItems adds the "items" edges to the Item entity. 1068 func (fuo *FeedUpdateOne) AddItems(i ...*Item) *FeedUpdateOne { 1069 ids := make([]uuid.UUID, len(i)) 1070 for j := range i { 1071 ids[j] = i[j].ID 1072 } 1073 return fuo.AddItemIDs(ids...) 1074 } 1075 1076 // AddSubscribedUserIDs adds the "subscribed_users" edge to the User entity by IDs. 1077 func (fuo *FeedUpdateOne) AddSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdateOne { 1078 fuo.mutation.AddSubscribedUserIDs(ids...) 1079 return fuo 1080 } 1081 1082 // AddSubscribedUsers adds the "subscribed_users" edges to the User entity. 1083 func (fuo *FeedUpdateOne) AddSubscribedUsers(u ...*User) *FeedUpdateOne { 1084 ids := make([]uuid.UUID, len(u)) 1085 for i := range u { 1086 ids[i] = u[i].ID 1087 } 1088 return fuo.AddSubscribedUserIDs(ids...) 1089 } 1090 1091 // AddSubscriptionIDs adds the "subscriptions" edge to the Subscription entity by IDs. 1092 func (fuo *FeedUpdateOne) AddSubscriptionIDs(ids ...uuid.UUID) *FeedUpdateOne { 1093 fuo.mutation.AddSubscriptionIDs(ids...) 1094 return fuo 1095 } 1096 1097 // AddSubscriptions adds the "subscriptions" edges to the Subscription entity. 1098 func (fuo *FeedUpdateOne) AddSubscriptions(s ...*Subscription) *FeedUpdateOne { 1099 ids := make([]uuid.UUID, len(s)) 1100 for i := range s { 1101 ids[i] = s[i].ID 1102 } 1103 return fuo.AddSubscriptionIDs(ids...) 1104 } 1105 1106 // Mutation returns the FeedMutation object of the builder. 1107 func (fuo *FeedUpdateOne) Mutation() *FeedMutation { 1108 return fuo.mutation 1109 } 1110 1111 // ClearItems clears all "items" edges to the Item entity. 1112 func (fuo *FeedUpdateOne) ClearItems() *FeedUpdateOne { 1113 fuo.mutation.ClearItems() 1114 return fuo 1115 } 1116 1117 // RemoveItemIDs removes the "items" edge to Item entities by IDs. 1118 func (fuo *FeedUpdateOne) RemoveItemIDs(ids ...uuid.UUID) *FeedUpdateOne { 1119 fuo.mutation.RemoveItemIDs(ids...) 1120 return fuo 1121 } 1122 1123 // RemoveItems removes "items" edges to Item entities. 1124 func (fuo *FeedUpdateOne) RemoveItems(i ...*Item) *FeedUpdateOne { 1125 ids := make([]uuid.UUID, len(i)) 1126 for j := range i { 1127 ids[j] = i[j].ID 1128 } 1129 return fuo.RemoveItemIDs(ids...) 1130 } 1131 1132 // ClearSubscribedUsers clears all "subscribed_users" edges to the User entity. 1133 func (fuo *FeedUpdateOne) ClearSubscribedUsers() *FeedUpdateOne { 1134 fuo.mutation.ClearSubscribedUsers() 1135 return fuo 1136 } 1137 1138 // RemoveSubscribedUserIDs removes the "subscribed_users" edge to User entities by IDs. 1139 func (fuo *FeedUpdateOne) RemoveSubscribedUserIDs(ids ...uuid.UUID) *FeedUpdateOne { 1140 fuo.mutation.RemoveSubscribedUserIDs(ids...) 1141 return fuo 1142 } 1143 1144 // RemoveSubscribedUsers removes "subscribed_users" edges to User entities. 1145 func (fuo *FeedUpdateOne) RemoveSubscribedUsers(u ...*User) *FeedUpdateOne { 1146 ids := make([]uuid.UUID, len(u)) 1147 for i := range u { 1148 ids[i] = u[i].ID 1149 } 1150 return fuo.RemoveSubscribedUserIDs(ids...) 1151 } 1152 1153 // ClearSubscriptions clears all "subscriptions" edges to the Subscription entity. 1154 func (fuo *FeedUpdateOne) ClearSubscriptions() *FeedUpdateOne { 1155 fuo.mutation.ClearSubscriptions() 1156 return fuo 1157 } 1158 1159 // RemoveSubscriptionIDs removes the "subscriptions" edge to Subscription entities by IDs. 1160 func (fuo *FeedUpdateOne) RemoveSubscriptionIDs(ids ...uuid.UUID) *FeedUpdateOne { 1161 fuo.mutation.RemoveSubscriptionIDs(ids...) 1162 return fuo 1163 } 1164 1165 // RemoveSubscriptions removes "subscriptions" edges to Subscription entities. 1166 func (fuo *FeedUpdateOne) RemoveSubscriptions(s ...*Subscription) *FeedUpdateOne { 1167 ids := make([]uuid.UUID, len(s)) 1168 for i := range s { 1169 ids[i] = s[i].ID 1170 } 1171 return fuo.RemoveSubscriptionIDs(ids...) 1172 } 1173 1174 // Where appends a list predicates to the FeedUpdate builder. 1175 func (fuo *FeedUpdateOne) Where(ps ...predicate.Feed) *FeedUpdateOne { 1176 fuo.mutation.Where(ps...) 1177 return fuo 1178 } 1179 1180 // Select allows selecting one or more fields (columns) of the returned entity. 1181 // The default is selecting all fields defined in the entity schema. 1182 func (fuo *FeedUpdateOne) Select(field string, fields ...string) *FeedUpdateOne { 1183 fuo.fields = append([]string{field}, fields...) 1184 return fuo 1185 } 1186 1187 // Save executes the query and returns the updated Feed entity. 1188 func (fuo *FeedUpdateOne) Save(ctx context.Context) (*Feed, error) { 1189 fuo.defaults() 1190 return withHooks(ctx, fuo.sqlSave, fuo.mutation, fuo.hooks) 1191 } 1192 1193 // SaveX is like Save, but panics if an error occurs. 1194 func (fuo *FeedUpdateOne) SaveX(ctx context.Context) *Feed { 1195 node, err := fuo.Save(ctx) 1196 if err != nil { 1197 panic(err) 1198 } 1199 return node 1200 } 1201 1202 // Exec executes the query on the entity. 1203 func (fuo *FeedUpdateOne) Exec(ctx context.Context) error { 1204 _, err := fuo.Save(ctx) 1205 return err 1206 } 1207 1208 // ExecX is like Exec, but panics if an error occurs. 1209 func (fuo *FeedUpdateOne) ExecX(ctx context.Context) { 1210 if err := fuo.Exec(ctx); err != nil { 1211 panic(err) 1212 } 1213 } 1214 1215 // defaults sets the default values of the builder before save. 1216 func (fuo *FeedUpdateOne) defaults() { 1217 if _, ok := fuo.mutation.UpdatedAt(); !ok { 1218 v := feed.UpdateDefaultUpdatedAt() 1219 fuo.mutation.SetUpdatedAt(v) 1220 } 1221 } 1222 1223 // check runs all checks and user-defined validators on the builder. 1224 func (fuo *FeedUpdateOne) check() error { 1225 if v, ok := fuo.mutation.URL(); ok { 1226 if err := feed.URLValidator(v); err != nil { 1227 return &ValidationError{Name: "url", err: fmt.Errorf(`ent: validator failed for field "Feed.url": %w`, err)} 1228 } 1229 } 1230 return nil 1231 } 1232 1233 func (fuo *FeedUpdateOne) sqlSave(ctx context.Context) (_node *Feed, err error) { 1234 if err := fuo.check(); err != nil { 1235 return _node, err 1236 } 1237 _spec := sqlgraph.NewUpdateSpec(feed.Table, feed.Columns, sqlgraph.NewFieldSpec(feed.FieldID, field.TypeUUID)) 1238 id, ok := fuo.mutation.ID() 1239 if !ok { 1240 return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Feed.id" for update`)} 1241 } 1242 _spec.Node.ID.Value = id 1243 if fields := fuo.fields; len(fields) > 0 { 1244 _spec.Node.Columns = make([]string, 0, len(fields)) 1245 _spec.Node.Columns = append(_spec.Node.Columns, feed.FieldID) 1246 for _, f := range fields { 1247 if !feed.ValidColumn(f) { 1248 return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} 1249 } 1250 if f != feed.FieldID { 1251 _spec.Node.Columns = append(_spec.Node.Columns, f) 1252 } 1253 } 1254 } 1255 if ps := fuo.mutation.predicates; len(ps) > 0 { 1256 _spec.Predicate = func(selector *sql.Selector) { 1257 for i := range ps { 1258 ps[i](selector) 1259 } 1260 } 1261 } 1262 if value, ok := fuo.mutation.URL(); ok { 1263 _spec.SetField(feed.FieldURL, field.TypeString, value) 1264 } 1265 if value, ok := fuo.mutation.Username(); ok { 1266 _spec.SetField(feed.FieldUsername, field.TypeString, value) 1267 } 1268 if value, ok := fuo.mutation.Password(); ok { 1269 _spec.SetField(feed.FieldPassword, field.TypeString, value) 1270 } 1271 if value, ok := fuo.mutation.FeedTitle(); ok { 1272 _spec.SetField(feed.FieldFeedTitle, field.TypeString, value) 1273 } 1274 if value, ok := fuo.mutation.FeedDescription(); ok { 1275 _spec.SetField(feed.FieldFeedDescription, field.TypeString, value) 1276 } 1277 if value, ok := fuo.mutation.FeedLink(); ok { 1278 _spec.SetField(feed.FieldFeedLink, field.TypeString, value) 1279 } 1280 if value, ok := fuo.mutation.FeedFeedLink(); ok { 1281 _spec.SetField(feed.FieldFeedFeedLink, field.TypeString, value) 1282 } 1283 if value, ok := fuo.mutation.FeedUpdated(); ok { 1284 _spec.SetField(feed.FieldFeedUpdated, field.TypeTime, value) 1285 } 1286 if value, ok := fuo.mutation.FeedPublished(); ok { 1287 _spec.SetField(feed.FieldFeedPublished, field.TypeTime, value) 1288 } 1289 if value, ok := fuo.mutation.FeedAuthorName(); ok { 1290 _spec.SetField(feed.FieldFeedAuthorName, field.TypeString, value) 1291 } 1292 if fuo.mutation.FeedAuthorNameCleared() { 1293 _spec.ClearField(feed.FieldFeedAuthorName, field.TypeString) 1294 } 1295 if value, ok := fuo.mutation.FeedAuthorEmail(); ok { 1296 _spec.SetField(feed.FieldFeedAuthorEmail, field.TypeString, value) 1297 } 1298 if fuo.mutation.FeedAuthorEmailCleared() { 1299 _spec.ClearField(feed.FieldFeedAuthorEmail, field.TypeString) 1300 } 1301 if value, ok := fuo.mutation.FeedLanguage(); ok { 1302 _spec.SetField(feed.FieldFeedLanguage, field.TypeString, value) 1303 } 1304 if value, ok := fuo.mutation.FeedImageTitle(); ok { 1305 _spec.SetField(feed.FieldFeedImageTitle, field.TypeString, value) 1306 } 1307 if fuo.mutation.FeedImageTitleCleared() { 1308 _spec.ClearField(feed.FieldFeedImageTitle, field.TypeString) 1309 } 1310 if value, ok := fuo.mutation.FeedImageURL(); ok { 1311 _spec.SetField(feed.FieldFeedImageURL, field.TypeString, value) 1312 } 1313 if fuo.mutation.FeedImageURLCleared() { 1314 _spec.ClearField(feed.FieldFeedImageURL, field.TypeString) 1315 } 1316 if value, ok := fuo.mutation.FeedCopyright(); ok { 1317 _spec.SetField(feed.FieldFeedCopyright, field.TypeString, value) 1318 } 1319 if value, ok := fuo.mutation.FeedGenerator(); ok { 1320 _spec.SetField(feed.FieldFeedGenerator, field.TypeString, value) 1321 } 1322 if value, ok := fuo.mutation.FeedCategories(); ok { 1323 _spec.SetField(feed.FieldFeedCategories, field.TypeString, value) 1324 } 1325 if value, ok := fuo.mutation.CreatedAt(); ok { 1326 _spec.SetField(feed.FieldCreatedAt, field.TypeTime, value) 1327 } 1328 if value, ok := fuo.mutation.UpdatedAt(); ok { 1329 _spec.SetField(feed.FieldUpdatedAt, field.TypeTime, value) 1330 } 1331 if value, ok := fuo.mutation.DeletedAt(); ok { 1332 _spec.SetField(feed.FieldDeletedAt, field.TypeTime, value) 1333 } 1334 if fuo.mutation.DeletedAtCleared() { 1335 _spec.ClearField(feed.FieldDeletedAt, field.TypeTime) 1336 } 1337 if fuo.mutation.ItemsCleared() { 1338 edge := &sqlgraph.EdgeSpec{ 1339 Rel: sqlgraph.O2M, 1340 Inverse: false, 1341 Table: feed.ItemsTable, 1342 Columns: []string{feed.ItemsColumn}, 1343 Bidi: false, 1344 Target: &sqlgraph.EdgeTarget{ 1345 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 1346 }, 1347 } 1348 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1349 } 1350 if nodes := fuo.mutation.RemovedItemsIDs(); len(nodes) > 0 && !fuo.mutation.ItemsCleared() { 1351 edge := &sqlgraph.EdgeSpec{ 1352 Rel: sqlgraph.O2M, 1353 Inverse: false, 1354 Table: feed.ItemsTable, 1355 Columns: []string{feed.ItemsColumn}, 1356 Bidi: false, 1357 Target: &sqlgraph.EdgeTarget{ 1358 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 1359 }, 1360 } 1361 for _, k := range nodes { 1362 edge.Target.Nodes = append(edge.Target.Nodes, k) 1363 } 1364 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1365 } 1366 if nodes := fuo.mutation.ItemsIDs(); len(nodes) > 0 { 1367 edge := &sqlgraph.EdgeSpec{ 1368 Rel: sqlgraph.O2M, 1369 Inverse: false, 1370 Table: feed.ItemsTable, 1371 Columns: []string{feed.ItemsColumn}, 1372 Bidi: false, 1373 Target: &sqlgraph.EdgeTarget{ 1374 IDSpec: sqlgraph.NewFieldSpec(item.FieldID, field.TypeUUID), 1375 }, 1376 } 1377 for _, k := range nodes { 1378 edge.Target.Nodes = append(edge.Target.Nodes, k) 1379 } 1380 _spec.Edges.Add = append(_spec.Edges.Add, edge) 1381 } 1382 if fuo.mutation.SubscribedUsersCleared() { 1383 edge := &sqlgraph.EdgeSpec{ 1384 Rel: sqlgraph.M2M, 1385 Inverse: true, 1386 Table: feed.SubscribedUsersTable, 1387 Columns: feed.SubscribedUsersPrimaryKey, 1388 Bidi: false, 1389 Target: &sqlgraph.EdgeTarget{ 1390 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 1391 }, 1392 } 1393 createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)} 1394 createE.defaults() 1395 _, specE := createE.createSpec() 1396 edge.Target.Fields = specE.Fields 1397 if specE.ID.Value != nil { 1398 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 1399 } 1400 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1401 } 1402 if nodes := fuo.mutation.RemovedSubscribedUsersIDs(); len(nodes) > 0 && !fuo.mutation.SubscribedUsersCleared() { 1403 edge := &sqlgraph.EdgeSpec{ 1404 Rel: sqlgraph.M2M, 1405 Inverse: true, 1406 Table: feed.SubscribedUsersTable, 1407 Columns: feed.SubscribedUsersPrimaryKey, 1408 Bidi: false, 1409 Target: &sqlgraph.EdgeTarget{ 1410 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 1411 }, 1412 } 1413 for _, k := range nodes { 1414 edge.Target.Nodes = append(edge.Target.Nodes, k) 1415 } 1416 createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)} 1417 createE.defaults() 1418 _, specE := createE.createSpec() 1419 edge.Target.Fields = specE.Fields 1420 if specE.ID.Value != nil { 1421 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 1422 } 1423 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1424 } 1425 if nodes := fuo.mutation.SubscribedUsersIDs(); len(nodes) > 0 { 1426 edge := &sqlgraph.EdgeSpec{ 1427 Rel: sqlgraph.M2M, 1428 Inverse: true, 1429 Table: feed.SubscribedUsersTable, 1430 Columns: feed.SubscribedUsersPrimaryKey, 1431 Bidi: false, 1432 Target: &sqlgraph.EdgeTarget{ 1433 IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID), 1434 }, 1435 } 1436 for _, k := range nodes { 1437 edge.Target.Nodes = append(edge.Target.Nodes, k) 1438 } 1439 createE := &SubscriptionCreate{config: fuo.config, mutation: newSubscriptionMutation(fuo.config, OpCreate)} 1440 createE.defaults() 1441 _, specE := createE.createSpec() 1442 edge.Target.Fields = specE.Fields 1443 if specE.ID.Value != nil { 1444 edge.Target.Fields = append(edge.Target.Fields, specE.ID) 1445 } 1446 _spec.Edges.Add = append(_spec.Edges.Add, edge) 1447 } 1448 if fuo.mutation.SubscriptionsCleared() { 1449 edge := &sqlgraph.EdgeSpec{ 1450 Rel: sqlgraph.O2M, 1451 Inverse: true, 1452 Table: feed.SubscriptionsTable, 1453 Columns: []string{feed.SubscriptionsColumn}, 1454 Bidi: false, 1455 Target: &sqlgraph.EdgeTarget{ 1456 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 1457 }, 1458 } 1459 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1460 } 1461 if nodes := fuo.mutation.RemovedSubscriptionsIDs(); len(nodes) > 0 && !fuo.mutation.SubscriptionsCleared() { 1462 edge := &sqlgraph.EdgeSpec{ 1463 Rel: sqlgraph.O2M, 1464 Inverse: true, 1465 Table: feed.SubscriptionsTable, 1466 Columns: []string{feed.SubscriptionsColumn}, 1467 Bidi: false, 1468 Target: &sqlgraph.EdgeTarget{ 1469 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 1470 }, 1471 } 1472 for _, k := range nodes { 1473 edge.Target.Nodes = append(edge.Target.Nodes, k) 1474 } 1475 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 1476 } 1477 if nodes := fuo.mutation.SubscriptionsIDs(); len(nodes) > 0 { 1478 edge := &sqlgraph.EdgeSpec{ 1479 Rel: sqlgraph.O2M, 1480 Inverse: true, 1481 Table: feed.SubscriptionsTable, 1482 Columns: []string{feed.SubscriptionsColumn}, 1483 Bidi: false, 1484 Target: &sqlgraph.EdgeTarget{ 1485 IDSpec: sqlgraph.NewFieldSpec(subscription.FieldID, field.TypeUUID), 1486 }, 1487 } 1488 for _, k := range nodes { 1489 edge.Target.Nodes = append(edge.Target.Nodes, k) 1490 } 1491 _spec.Edges.Add = append(_spec.Edges.Add, edge) 1492 } 1493 _node = &Feed{config: fuo.config} 1494 _spec.Assign = _node.assignValues 1495 _spec.ScanValues = _node.scanValues 1496 if err = sqlgraph.UpdateNode(ctx, fuo.driver, _spec); err != nil { 1497 if _, ok := err.(*sqlgraph.NotFoundError); ok { 1498 err = &NotFoundError{feed.Label} 1499 } else if sqlgraph.IsConstraintError(err) { 1500 err = &ConstraintError{msg: err.Error(), wrap: err} 1501 } 1502 return nil, err 1503 } 1504 fuo.mutation.done = true 1505 return _node, nil 1506 }