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