github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/ent/role_update.go (about) 1 // Code generated by entc, 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/ngocphuongnb/tetua/packages/entrepository/ent/permission" 15 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/predicate" 16 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/role" 17 "github.com/ngocphuongnb/tetua/packages/entrepository/ent/user" 18 ) 19 20 // RoleUpdate is the builder for updating Role entities. 21 type RoleUpdate struct { 22 config 23 hooks []Hook 24 mutation *RoleMutation 25 } 26 27 // Where appends a list predicates to the RoleUpdate builder. 28 func (ru *RoleUpdate) Where(ps ...predicate.Role) *RoleUpdate { 29 ru.mutation.Where(ps...) 30 return ru 31 } 32 33 // SetUpdatedAt sets the "updated_at" field. 34 func (ru *RoleUpdate) SetUpdatedAt(t time.Time) *RoleUpdate { 35 ru.mutation.SetUpdatedAt(t) 36 return ru 37 } 38 39 // SetDeletedAt sets the "deleted_at" field. 40 func (ru *RoleUpdate) SetDeletedAt(t time.Time) *RoleUpdate { 41 ru.mutation.SetDeletedAt(t) 42 return ru 43 } 44 45 // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. 46 func (ru *RoleUpdate) SetNillableDeletedAt(t *time.Time) *RoleUpdate { 47 if t != nil { 48 ru.SetDeletedAt(*t) 49 } 50 return ru 51 } 52 53 // ClearDeletedAt clears the value of the "deleted_at" field. 54 func (ru *RoleUpdate) ClearDeletedAt() *RoleUpdate { 55 ru.mutation.ClearDeletedAt() 56 return ru 57 } 58 59 // SetName sets the "name" field. 60 func (ru *RoleUpdate) SetName(s string) *RoleUpdate { 61 ru.mutation.SetName(s) 62 return ru 63 } 64 65 // SetDescription sets the "description" field. 66 func (ru *RoleUpdate) SetDescription(s string) *RoleUpdate { 67 ru.mutation.SetDescription(s) 68 return ru 69 } 70 71 // SetNillableDescription sets the "description" field if the given value is not nil. 72 func (ru *RoleUpdate) SetNillableDescription(s *string) *RoleUpdate { 73 if s != nil { 74 ru.SetDescription(*s) 75 } 76 return ru 77 } 78 79 // ClearDescription clears the value of the "description" field. 80 func (ru *RoleUpdate) ClearDescription() *RoleUpdate { 81 ru.mutation.ClearDescription() 82 return ru 83 } 84 85 // SetRoot sets the "root" field. 86 func (ru *RoleUpdate) SetRoot(b bool) *RoleUpdate { 87 ru.mutation.SetRoot(b) 88 return ru 89 } 90 91 // SetNillableRoot sets the "root" field if the given value is not nil. 92 func (ru *RoleUpdate) SetNillableRoot(b *bool) *RoleUpdate { 93 if b != nil { 94 ru.SetRoot(*b) 95 } 96 return ru 97 } 98 99 // ClearRoot clears the value of the "root" field. 100 func (ru *RoleUpdate) ClearRoot() *RoleUpdate { 101 ru.mutation.ClearRoot() 102 return ru 103 } 104 105 // AddPermissionIDs adds the "permissions" edge to the Permission entity by IDs. 106 func (ru *RoleUpdate) AddPermissionIDs(ids ...int) *RoleUpdate { 107 ru.mutation.AddPermissionIDs(ids...) 108 return ru 109 } 110 111 // AddPermissions adds the "permissions" edges to the Permission entity. 112 func (ru *RoleUpdate) AddPermissions(p ...*Permission) *RoleUpdate { 113 ids := make([]int, len(p)) 114 for i := range p { 115 ids[i] = p[i].ID 116 } 117 return ru.AddPermissionIDs(ids...) 118 } 119 120 // AddUserIDs adds the "users" edge to the User entity by IDs. 121 func (ru *RoleUpdate) AddUserIDs(ids ...int) *RoleUpdate { 122 ru.mutation.AddUserIDs(ids...) 123 return ru 124 } 125 126 // AddUsers adds the "users" edges to the User entity. 127 func (ru *RoleUpdate) AddUsers(u ...*User) *RoleUpdate { 128 ids := make([]int, len(u)) 129 for i := range u { 130 ids[i] = u[i].ID 131 } 132 return ru.AddUserIDs(ids...) 133 } 134 135 // Mutation returns the RoleMutation object of the builder. 136 func (ru *RoleUpdate) Mutation() *RoleMutation { 137 return ru.mutation 138 } 139 140 // ClearPermissions clears all "permissions" edges to the Permission entity. 141 func (ru *RoleUpdate) ClearPermissions() *RoleUpdate { 142 ru.mutation.ClearPermissions() 143 return ru 144 } 145 146 // RemovePermissionIDs removes the "permissions" edge to Permission entities by IDs. 147 func (ru *RoleUpdate) RemovePermissionIDs(ids ...int) *RoleUpdate { 148 ru.mutation.RemovePermissionIDs(ids...) 149 return ru 150 } 151 152 // RemovePermissions removes "permissions" edges to Permission entities. 153 func (ru *RoleUpdate) RemovePermissions(p ...*Permission) *RoleUpdate { 154 ids := make([]int, len(p)) 155 for i := range p { 156 ids[i] = p[i].ID 157 } 158 return ru.RemovePermissionIDs(ids...) 159 } 160 161 // ClearUsers clears all "users" edges to the User entity. 162 func (ru *RoleUpdate) ClearUsers() *RoleUpdate { 163 ru.mutation.ClearUsers() 164 return ru 165 } 166 167 // RemoveUserIDs removes the "users" edge to User entities by IDs. 168 func (ru *RoleUpdate) RemoveUserIDs(ids ...int) *RoleUpdate { 169 ru.mutation.RemoveUserIDs(ids...) 170 return ru 171 } 172 173 // RemoveUsers removes "users" edges to User entities. 174 func (ru *RoleUpdate) RemoveUsers(u ...*User) *RoleUpdate { 175 ids := make([]int, len(u)) 176 for i := range u { 177 ids[i] = u[i].ID 178 } 179 return ru.RemoveUserIDs(ids...) 180 } 181 182 // Save executes the query and returns the number of nodes affected by the update operation. 183 func (ru *RoleUpdate) Save(ctx context.Context) (int, error) { 184 var ( 185 err error 186 affected int 187 ) 188 ru.defaults() 189 if len(ru.hooks) == 0 { 190 affected, err = ru.sqlSave(ctx) 191 } else { 192 var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { 193 mutation, ok := m.(*RoleMutation) 194 if !ok { 195 return nil, fmt.Errorf("unexpected mutation type %T", m) 196 } 197 ru.mutation = mutation 198 affected, err = ru.sqlSave(ctx) 199 mutation.done = true 200 return affected, err 201 }) 202 for i := len(ru.hooks) - 1; i >= 0; i-- { 203 if ru.hooks[i] == nil { 204 return 0, fmt.Errorf("ent: uninitialized hook (forgotten import ent/runtime?)") 205 } 206 mut = ru.hooks[i](mut) 207 } 208 if _, err := mut.Mutate(ctx, ru.mutation); err != nil { 209 return 0, err 210 } 211 } 212 return affected, err 213 } 214 215 // SaveX is like Save, but panics if an error occurs. 216 func (ru *RoleUpdate) SaveX(ctx context.Context) int { 217 affected, err := ru.Save(ctx) 218 if err != nil { 219 panic(err) 220 } 221 return affected 222 } 223 224 // Exec executes the query. 225 func (ru *RoleUpdate) Exec(ctx context.Context) error { 226 _, err := ru.Save(ctx) 227 return err 228 } 229 230 // ExecX is like Exec, but panics if an error occurs. 231 func (ru *RoleUpdate) ExecX(ctx context.Context) { 232 if err := ru.Exec(ctx); err != nil { 233 panic(err) 234 } 235 } 236 237 // defaults sets the default values of the builder before save. 238 func (ru *RoleUpdate) defaults() { 239 if _, ok := ru.mutation.UpdatedAt(); !ok { 240 v := role.UpdateDefaultUpdatedAt() 241 ru.mutation.SetUpdatedAt(v) 242 } 243 } 244 245 func (ru *RoleUpdate) sqlSave(ctx context.Context) (n int, err error) { 246 _spec := &sqlgraph.UpdateSpec{ 247 Node: &sqlgraph.NodeSpec{ 248 Table: role.Table, 249 Columns: role.Columns, 250 ID: &sqlgraph.FieldSpec{ 251 Type: field.TypeInt, 252 Column: role.FieldID, 253 }, 254 }, 255 } 256 if ps := ru.mutation.predicates; len(ps) > 0 { 257 _spec.Predicate = func(selector *sql.Selector) { 258 for i := range ps { 259 ps[i](selector) 260 } 261 } 262 } 263 if value, ok := ru.mutation.UpdatedAt(); ok { 264 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 265 Type: field.TypeTime, 266 Value: value, 267 Column: role.FieldUpdatedAt, 268 }) 269 } 270 if value, ok := ru.mutation.DeletedAt(); ok { 271 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 272 Type: field.TypeTime, 273 Value: value, 274 Column: role.FieldDeletedAt, 275 }) 276 } 277 if ru.mutation.DeletedAtCleared() { 278 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 279 Type: field.TypeTime, 280 Column: role.FieldDeletedAt, 281 }) 282 } 283 if value, ok := ru.mutation.Name(); ok { 284 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 285 Type: field.TypeString, 286 Value: value, 287 Column: role.FieldName, 288 }) 289 } 290 if value, ok := ru.mutation.Description(); ok { 291 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 292 Type: field.TypeString, 293 Value: value, 294 Column: role.FieldDescription, 295 }) 296 } 297 if ru.mutation.DescriptionCleared() { 298 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 299 Type: field.TypeString, 300 Column: role.FieldDescription, 301 }) 302 } 303 if value, ok := ru.mutation.Root(); ok { 304 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 305 Type: field.TypeBool, 306 Value: value, 307 Column: role.FieldRoot, 308 }) 309 } 310 if ru.mutation.RootCleared() { 311 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 312 Type: field.TypeBool, 313 Column: role.FieldRoot, 314 }) 315 } 316 if ru.mutation.PermissionsCleared() { 317 edge := &sqlgraph.EdgeSpec{ 318 Rel: sqlgraph.O2M, 319 Inverse: false, 320 Table: role.PermissionsTable, 321 Columns: []string{role.PermissionsColumn}, 322 Bidi: false, 323 Target: &sqlgraph.EdgeTarget{ 324 IDSpec: &sqlgraph.FieldSpec{ 325 Type: field.TypeInt, 326 Column: permission.FieldID, 327 }, 328 }, 329 } 330 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 331 } 332 if nodes := ru.mutation.RemovedPermissionsIDs(); len(nodes) > 0 && !ru.mutation.PermissionsCleared() { 333 edge := &sqlgraph.EdgeSpec{ 334 Rel: sqlgraph.O2M, 335 Inverse: false, 336 Table: role.PermissionsTable, 337 Columns: []string{role.PermissionsColumn}, 338 Bidi: false, 339 Target: &sqlgraph.EdgeTarget{ 340 IDSpec: &sqlgraph.FieldSpec{ 341 Type: field.TypeInt, 342 Column: permission.FieldID, 343 }, 344 }, 345 } 346 for _, k := range nodes { 347 edge.Target.Nodes = append(edge.Target.Nodes, k) 348 } 349 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 350 } 351 if nodes := ru.mutation.PermissionsIDs(); len(nodes) > 0 { 352 edge := &sqlgraph.EdgeSpec{ 353 Rel: sqlgraph.O2M, 354 Inverse: false, 355 Table: role.PermissionsTable, 356 Columns: []string{role.PermissionsColumn}, 357 Bidi: false, 358 Target: &sqlgraph.EdgeTarget{ 359 IDSpec: &sqlgraph.FieldSpec{ 360 Type: field.TypeInt, 361 Column: permission.FieldID, 362 }, 363 }, 364 } 365 for _, k := range nodes { 366 edge.Target.Nodes = append(edge.Target.Nodes, k) 367 } 368 _spec.Edges.Add = append(_spec.Edges.Add, edge) 369 } 370 if ru.mutation.UsersCleared() { 371 edge := &sqlgraph.EdgeSpec{ 372 Rel: sqlgraph.M2M, 373 Inverse: false, 374 Table: role.UsersTable, 375 Columns: role.UsersPrimaryKey, 376 Bidi: false, 377 Target: &sqlgraph.EdgeTarget{ 378 IDSpec: &sqlgraph.FieldSpec{ 379 Type: field.TypeInt, 380 Column: user.FieldID, 381 }, 382 }, 383 } 384 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 385 } 386 if nodes := ru.mutation.RemovedUsersIDs(); len(nodes) > 0 && !ru.mutation.UsersCleared() { 387 edge := &sqlgraph.EdgeSpec{ 388 Rel: sqlgraph.M2M, 389 Inverse: false, 390 Table: role.UsersTable, 391 Columns: role.UsersPrimaryKey, 392 Bidi: false, 393 Target: &sqlgraph.EdgeTarget{ 394 IDSpec: &sqlgraph.FieldSpec{ 395 Type: field.TypeInt, 396 Column: user.FieldID, 397 }, 398 }, 399 } 400 for _, k := range nodes { 401 edge.Target.Nodes = append(edge.Target.Nodes, k) 402 } 403 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 404 } 405 if nodes := ru.mutation.UsersIDs(); len(nodes) > 0 { 406 edge := &sqlgraph.EdgeSpec{ 407 Rel: sqlgraph.M2M, 408 Inverse: false, 409 Table: role.UsersTable, 410 Columns: role.UsersPrimaryKey, 411 Bidi: false, 412 Target: &sqlgraph.EdgeTarget{ 413 IDSpec: &sqlgraph.FieldSpec{ 414 Type: field.TypeInt, 415 Column: user.FieldID, 416 }, 417 }, 418 } 419 for _, k := range nodes { 420 edge.Target.Nodes = append(edge.Target.Nodes, k) 421 } 422 _spec.Edges.Add = append(_spec.Edges.Add, edge) 423 } 424 if n, err = sqlgraph.UpdateNodes(ctx, ru.driver, _spec); err != nil { 425 if _, ok := err.(*sqlgraph.NotFoundError); ok { 426 err = &NotFoundError{role.Label} 427 } else if sqlgraph.IsConstraintError(err) { 428 err = &ConstraintError{err.Error(), err} 429 } 430 return 0, err 431 } 432 return n, nil 433 } 434 435 // RoleUpdateOne is the builder for updating a single Role entity. 436 type RoleUpdateOne struct { 437 config 438 fields []string 439 hooks []Hook 440 mutation *RoleMutation 441 } 442 443 // SetUpdatedAt sets the "updated_at" field. 444 func (ruo *RoleUpdateOne) SetUpdatedAt(t time.Time) *RoleUpdateOne { 445 ruo.mutation.SetUpdatedAt(t) 446 return ruo 447 } 448 449 // SetDeletedAt sets the "deleted_at" field. 450 func (ruo *RoleUpdateOne) SetDeletedAt(t time.Time) *RoleUpdateOne { 451 ruo.mutation.SetDeletedAt(t) 452 return ruo 453 } 454 455 // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. 456 func (ruo *RoleUpdateOne) SetNillableDeletedAt(t *time.Time) *RoleUpdateOne { 457 if t != nil { 458 ruo.SetDeletedAt(*t) 459 } 460 return ruo 461 } 462 463 // ClearDeletedAt clears the value of the "deleted_at" field. 464 func (ruo *RoleUpdateOne) ClearDeletedAt() *RoleUpdateOne { 465 ruo.mutation.ClearDeletedAt() 466 return ruo 467 } 468 469 // SetName sets the "name" field. 470 func (ruo *RoleUpdateOne) SetName(s string) *RoleUpdateOne { 471 ruo.mutation.SetName(s) 472 return ruo 473 } 474 475 // SetDescription sets the "description" field. 476 func (ruo *RoleUpdateOne) SetDescription(s string) *RoleUpdateOne { 477 ruo.mutation.SetDescription(s) 478 return ruo 479 } 480 481 // SetNillableDescription sets the "description" field if the given value is not nil. 482 func (ruo *RoleUpdateOne) SetNillableDescription(s *string) *RoleUpdateOne { 483 if s != nil { 484 ruo.SetDescription(*s) 485 } 486 return ruo 487 } 488 489 // ClearDescription clears the value of the "description" field. 490 func (ruo *RoleUpdateOne) ClearDescription() *RoleUpdateOne { 491 ruo.mutation.ClearDescription() 492 return ruo 493 } 494 495 // SetRoot sets the "root" field. 496 func (ruo *RoleUpdateOne) SetRoot(b bool) *RoleUpdateOne { 497 ruo.mutation.SetRoot(b) 498 return ruo 499 } 500 501 // SetNillableRoot sets the "root" field if the given value is not nil. 502 func (ruo *RoleUpdateOne) SetNillableRoot(b *bool) *RoleUpdateOne { 503 if b != nil { 504 ruo.SetRoot(*b) 505 } 506 return ruo 507 } 508 509 // ClearRoot clears the value of the "root" field. 510 func (ruo *RoleUpdateOne) ClearRoot() *RoleUpdateOne { 511 ruo.mutation.ClearRoot() 512 return ruo 513 } 514 515 // AddPermissionIDs adds the "permissions" edge to the Permission entity by IDs. 516 func (ruo *RoleUpdateOne) AddPermissionIDs(ids ...int) *RoleUpdateOne { 517 ruo.mutation.AddPermissionIDs(ids...) 518 return ruo 519 } 520 521 // AddPermissions adds the "permissions" edges to the Permission entity. 522 func (ruo *RoleUpdateOne) AddPermissions(p ...*Permission) *RoleUpdateOne { 523 ids := make([]int, len(p)) 524 for i := range p { 525 ids[i] = p[i].ID 526 } 527 return ruo.AddPermissionIDs(ids...) 528 } 529 530 // AddUserIDs adds the "users" edge to the User entity by IDs. 531 func (ruo *RoleUpdateOne) AddUserIDs(ids ...int) *RoleUpdateOne { 532 ruo.mutation.AddUserIDs(ids...) 533 return ruo 534 } 535 536 // AddUsers adds the "users" edges to the User entity. 537 func (ruo *RoleUpdateOne) AddUsers(u ...*User) *RoleUpdateOne { 538 ids := make([]int, len(u)) 539 for i := range u { 540 ids[i] = u[i].ID 541 } 542 return ruo.AddUserIDs(ids...) 543 } 544 545 // Mutation returns the RoleMutation object of the builder. 546 func (ruo *RoleUpdateOne) Mutation() *RoleMutation { 547 return ruo.mutation 548 } 549 550 // ClearPermissions clears all "permissions" edges to the Permission entity. 551 func (ruo *RoleUpdateOne) ClearPermissions() *RoleUpdateOne { 552 ruo.mutation.ClearPermissions() 553 return ruo 554 } 555 556 // RemovePermissionIDs removes the "permissions" edge to Permission entities by IDs. 557 func (ruo *RoleUpdateOne) RemovePermissionIDs(ids ...int) *RoleUpdateOne { 558 ruo.mutation.RemovePermissionIDs(ids...) 559 return ruo 560 } 561 562 // RemovePermissions removes "permissions" edges to Permission entities. 563 func (ruo *RoleUpdateOne) RemovePermissions(p ...*Permission) *RoleUpdateOne { 564 ids := make([]int, len(p)) 565 for i := range p { 566 ids[i] = p[i].ID 567 } 568 return ruo.RemovePermissionIDs(ids...) 569 } 570 571 // ClearUsers clears all "users" edges to the User entity. 572 func (ruo *RoleUpdateOne) ClearUsers() *RoleUpdateOne { 573 ruo.mutation.ClearUsers() 574 return ruo 575 } 576 577 // RemoveUserIDs removes the "users" edge to User entities by IDs. 578 func (ruo *RoleUpdateOne) RemoveUserIDs(ids ...int) *RoleUpdateOne { 579 ruo.mutation.RemoveUserIDs(ids...) 580 return ruo 581 } 582 583 // RemoveUsers removes "users" edges to User entities. 584 func (ruo *RoleUpdateOne) RemoveUsers(u ...*User) *RoleUpdateOne { 585 ids := make([]int, len(u)) 586 for i := range u { 587 ids[i] = u[i].ID 588 } 589 return ruo.RemoveUserIDs(ids...) 590 } 591 592 // Select allows selecting one or more fields (columns) of the returned entity. 593 // The default is selecting all fields defined in the entity schema. 594 func (ruo *RoleUpdateOne) Select(field string, fields ...string) *RoleUpdateOne { 595 ruo.fields = append([]string{field}, fields...) 596 return ruo 597 } 598 599 // Save executes the query and returns the updated Role entity. 600 func (ruo *RoleUpdateOne) Save(ctx context.Context) (*Role, error) { 601 var ( 602 err error 603 node *Role 604 ) 605 ruo.defaults() 606 if len(ruo.hooks) == 0 { 607 node, err = ruo.sqlSave(ctx) 608 } else { 609 var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { 610 mutation, ok := m.(*RoleMutation) 611 if !ok { 612 return nil, fmt.Errorf("unexpected mutation type %T", m) 613 } 614 ruo.mutation = mutation 615 node, err = ruo.sqlSave(ctx) 616 mutation.done = true 617 return node, err 618 }) 619 for i := len(ruo.hooks) - 1; i >= 0; i-- { 620 if ruo.hooks[i] == nil { 621 return nil, fmt.Errorf("ent: uninitialized hook (forgotten import ent/runtime?)") 622 } 623 mut = ruo.hooks[i](mut) 624 } 625 if _, err := mut.Mutate(ctx, ruo.mutation); err != nil { 626 return nil, err 627 } 628 } 629 return node, err 630 } 631 632 // SaveX is like Save, but panics if an error occurs. 633 func (ruo *RoleUpdateOne) SaveX(ctx context.Context) *Role { 634 node, err := ruo.Save(ctx) 635 if err != nil { 636 panic(err) 637 } 638 return node 639 } 640 641 // Exec executes the query on the entity. 642 func (ruo *RoleUpdateOne) Exec(ctx context.Context) error { 643 _, err := ruo.Save(ctx) 644 return err 645 } 646 647 // ExecX is like Exec, but panics if an error occurs. 648 func (ruo *RoleUpdateOne) ExecX(ctx context.Context) { 649 if err := ruo.Exec(ctx); err != nil { 650 panic(err) 651 } 652 } 653 654 // defaults sets the default values of the builder before save. 655 func (ruo *RoleUpdateOne) defaults() { 656 if _, ok := ruo.mutation.UpdatedAt(); !ok { 657 v := role.UpdateDefaultUpdatedAt() 658 ruo.mutation.SetUpdatedAt(v) 659 } 660 } 661 662 func (ruo *RoleUpdateOne) sqlSave(ctx context.Context) (_node *Role, err error) { 663 _spec := &sqlgraph.UpdateSpec{ 664 Node: &sqlgraph.NodeSpec{ 665 Table: role.Table, 666 Columns: role.Columns, 667 ID: &sqlgraph.FieldSpec{ 668 Type: field.TypeInt, 669 Column: role.FieldID, 670 }, 671 }, 672 } 673 id, ok := ruo.mutation.ID() 674 if !ok { 675 return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "Role.id" for update`)} 676 } 677 _spec.Node.ID.Value = id 678 if fields := ruo.fields; len(fields) > 0 { 679 _spec.Node.Columns = make([]string, 0, len(fields)) 680 _spec.Node.Columns = append(_spec.Node.Columns, role.FieldID) 681 for _, f := range fields { 682 if !role.ValidColumn(f) { 683 return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} 684 } 685 if f != role.FieldID { 686 _spec.Node.Columns = append(_spec.Node.Columns, f) 687 } 688 } 689 } 690 if ps := ruo.mutation.predicates; len(ps) > 0 { 691 _spec.Predicate = func(selector *sql.Selector) { 692 for i := range ps { 693 ps[i](selector) 694 } 695 } 696 } 697 if value, ok := ruo.mutation.UpdatedAt(); ok { 698 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 699 Type: field.TypeTime, 700 Value: value, 701 Column: role.FieldUpdatedAt, 702 }) 703 } 704 if value, ok := ruo.mutation.DeletedAt(); ok { 705 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 706 Type: field.TypeTime, 707 Value: value, 708 Column: role.FieldDeletedAt, 709 }) 710 } 711 if ruo.mutation.DeletedAtCleared() { 712 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 713 Type: field.TypeTime, 714 Column: role.FieldDeletedAt, 715 }) 716 } 717 if value, ok := ruo.mutation.Name(); ok { 718 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 719 Type: field.TypeString, 720 Value: value, 721 Column: role.FieldName, 722 }) 723 } 724 if value, ok := ruo.mutation.Description(); ok { 725 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 726 Type: field.TypeString, 727 Value: value, 728 Column: role.FieldDescription, 729 }) 730 } 731 if ruo.mutation.DescriptionCleared() { 732 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 733 Type: field.TypeString, 734 Column: role.FieldDescription, 735 }) 736 } 737 if value, ok := ruo.mutation.Root(); ok { 738 _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ 739 Type: field.TypeBool, 740 Value: value, 741 Column: role.FieldRoot, 742 }) 743 } 744 if ruo.mutation.RootCleared() { 745 _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ 746 Type: field.TypeBool, 747 Column: role.FieldRoot, 748 }) 749 } 750 if ruo.mutation.PermissionsCleared() { 751 edge := &sqlgraph.EdgeSpec{ 752 Rel: sqlgraph.O2M, 753 Inverse: false, 754 Table: role.PermissionsTable, 755 Columns: []string{role.PermissionsColumn}, 756 Bidi: false, 757 Target: &sqlgraph.EdgeTarget{ 758 IDSpec: &sqlgraph.FieldSpec{ 759 Type: field.TypeInt, 760 Column: permission.FieldID, 761 }, 762 }, 763 } 764 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 765 } 766 if nodes := ruo.mutation.RemovedPermissionsIDs(); len(nodes) > 0 && !ruo.mutation.PermissionsCleared() { 767 edge := &sqlgraph.EdgeSpec{ 768 Rel: sqlgraph.O2M, 769 Inverse: false, 770 Table: role.PermissionsTable, 771 Columns: []string{role.PermissionsColumn}, 772 Bidi: false, 773 Target: &sqlgraph.EdgeTarget{ 774 IDSpec: &sqlgraph.FieldSpec{ 775 Type: field.TypeInt, 776 Column: permission.FieldID, 777 }, 778 }, 779 } 780 for _, k := range nodes { 781 edge.Target.Nodes = append(edge.Target.Nodes, k) 782 } 783 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 784 } 785 if nodes := ruo.mutation.PermissionsIDs(); len(nodes) > 0 { 786 edge := &sqlgraph.EdgeSpec{ 787 Rel: sqlgraph.O2M, 788 Inverse: false, 789 Table: role.PermissionsTable, 790 Columns: []string{role.PermissionsColumn}, 791 Bidi: false, 792 Target: &sqlgraph.EdgeTarget{ 793 IDSpec: &sqlgraph.FieldSpec{ 794 Type: field.TypeInt, 795 Column: permission.FieldID, 796 }, 797 }, 798 } 799 for _, k := range nodes { 800 edge.Target.Nodes = append(edge.Target.Nodes, k) 801 } 802 _spec.Edges.Add = append(_spec.Edges.Add, edge) 803 } 804 if ruo.mutation.UsersCleared() { 805 edge := &sqlgraph.EdgeSpec{ 806 Rel: sqlgraph.M2M, 807 Inverse: false, 808 Table: role.UsersTable, 809 Columns: role.UsersPrimaryKey, 810 Bidi: false, 811 Target: &sqlgraph.EdgeTarget{ 812 IDSpec: &sqlgraph.FieldSpec{ 813 Type: field.TypeInt, 814 Column: user.FieldID, 815 }, 816 }, 817 } 818 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 819 } 820 if nodes := ruo.mutation.RemovedUsersIDs(); len(nodes) > 0 && !ruo.mutation.UsersCleared() { 821 edge := &sqlgraph.EdgeSpec{ 822 Rel: sqlgraph.M2M, 823 Inverse: false, 824 Table: role.UsersTable, 825 Columns: role.UsersPrimaryKey, 826 Bidi: false, 827 Target: &sqlgraph.EdgeTarget{ 828 IDSpec: &sqlgraph.FieldSpec{ 829 Type: field.TypeInt, 830 Column: user.FieldID, 831 }, 832 }, 833 } 834 for _, k := range nodes { 835 edge.Target.Nodes = append(edge.Target.Nodes, k) 836 } 837 _spec.Edges.Clear = append(_spec.Edges.Clear, edge) 838 } 839 if nodes := ruo.mutation.UsersIDs(); len(nodes) > 0 { 840 edge := &sqlgraph.EdgeSpec{ 841 Rel: sqlgraph.M2M, 842 Inverse: false, 843 Table: role.UsersTable, 844 Columns: role.UsersPrimaryKey, 845 Bidi: false, 846 Target: &sqlgraph.EdgeTarget{ 847 IDSpec: &sqlgraph.FieldSpec{ 848 Type: field.TypeInt, 849 Column: user.FieldID, 850 }, 851 }, 852 } 853 for _, k := range nodes { 854 edge.Target.Nodes = append(edge.Target.Nodes, k) 855 } 856 _spec.Edges.Add = append(_spec.Edges.Add, edge) 857 } 858 _node = &Role{config: ruo.config} 859 _spec.Assign = _node.assignValues 860 _spec.ScanValues = _node.scanValues 861 if err = sqlgraph.UpdateNode(ctx, ruo.driver, _spec); err != nil { 862 if _, ok := err.(*sqlgraph.NotFoundError); ok { 863 err = &NotFoundError{role.Label} 864 } else if sqlgraph.IsConstraintError(err) { 865 err = &ConstraintError{err.Error(), err} 866 } 867 return nil, err 868 } 869 return _node, nil 870 }