github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/core/datamodel/ioload.go (about) 1 // DO NOT EDIT -- auto-generated from rawadata.go 2 package datamodel 3 4 import ( 5 "encoding/json" 6 "hash/crc32" 7 8 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 9 ) 10 11 // BaseLocale stocke en mémoire vive toutes les informations nécessaires, 12 // sous forme brute. 13 type BaseLocale struct { 14 Personnes rd.Personnes 15 Camps rd.Camps 16 Groupes rd.Groupes 17 Sondages rd.Sondages 18 Participants rd.Participants 19 Equipiers rd.Equipiers 20 Participantsimples rd.Participantsimples 21 Structureaides rd.Structureaides 22 Aides rd.Aides 23 Organismes rd.Organismes 24 Dons rd.Dons 25 Contraintes rd.Contraintes 26 Documents rd.Documents 27 Paiements rd.Paiements 28 Factures rd.Factures 29 Messages rd.Messages 30 31 rd.Links 32 } 33 34 type RawLinks struct { 35 GroupeParticipants rd.GroupeParticipants 36 GroupeEquipiers rd.GroupeEquipiers 37 ParticipantEquipiers rd.ParticipantEquipiers 38 DonDonateurs rd.DonDonateurs 39 EquipierContraintes rd.EquipierContraintes 40 CampContraintes rd.CampContraintes 41 GroupeContraintes rd.GroupeContraintes 42 DocumentCamps rd.DocumentCamps 43 DocumentPersonnes rd.DocumentPersonnes 44 DocumentAides rd.DocumentAides 45 MessageDocuments rd.MessageDocuments 46 MessageSondages rd.MessageSondages 47 MessagePlaceliberes rd.MessagePlaceliberes 48 MessageAttestations rd.MessageAttestations 49 MessageMessages rd.MessageMessages 50 } 51 52 func LoadRemoteBaseLocale(db rd.DB) (base *BaseLocale, err error) { 53 base = new(BaseLocale) 54 var rl RawLinks 55 56 base.Personnes, err = rd.SelectAllPersonnes(db) 57 if err != nil { 58 return nil, err 59 } 60 61 base.Camps, err = rd.SelectAllCamps(db) 62 if err != nil { 63 return nil, err 64 } 65 66 base.Groupes, err = rd.SelectAllGroupes(db) 67 if err != nil { 68 return nil, err 69 } 70 71 base.Sondages, err = rd.SelectAllSondages(db) 72 if err != nil { 73 return nil, err 74 } 75 76 base.Participants, err = rd.SelectAllParticipants(db) 77 if err != nil { 78 return nil, err 79 } 80 81 base.Equipiers, err = rd.SelectAllEquipiers(db) 82 if err != nil { 83 return nil, err 84 } 85 86 base.Participantsimples, err = rd.SelectAllParticipantsimples(db) 87 if err != nil { 88 return nil, err 89 } 90 91 base.Structureaides, err = rd.SelectAllStructureaides(db) 92 if err != nil { 93 return nil, err 94 } 95 96 base.Aides, err = rd.SelectAllAides(db) 97 if err != nil { 98 return nil, err 99 } 100 101 base.Organismes, err = rd.SelectAllOrganismes(db) 102 if err != nil { 103 return nil, err 104 } 105 106 base.Dons, err = rd.SelectAllDons(db) 107 if err != nil { 108 return nil, err 109 } 110 111 base.Contraintes, err = rd.SelectAllContraintes(db) 112 if err != nil { 113 return nil, err 114 } 115 116 base.Documents, err = rd.SelectAllDocuments(db) 117 if err != nil { 118 return nil, err 119 } 120 121 base.Paiements, err = rd.SelectAllPaiements(db) 122 if err != nil { 123 return nil, err 124 } 125 126 base.Factures, err = rd.SelectAllFactures(db) 127 if err != nil { 128 return nil, err 129 } 130 131 base.Messages, err = rd.SelectAllMessages(db) 132 if err != nil { 133 return nil, err 134 } 135 136 rl.GroupeParticipants, err = rd.SelectAllGroupeParticipants(db) 137 if err != nil { 138 return nil, err 139 } 140 141 rl.GroupeEquipiers, err = rd.SelectAllGroupeEquipiers(db) 142 if err != nil { 143 return nil, err 144 } 145 146 rl.ParticipantEquipiers, err = rd.SelectAllParticipantEquipiers(db) 147 if err != nil { 148 return nil, err 149 } 150 151 rl.DonDonateurs, err = rd.SelectAllDonDonateurs(db) 152 if err != nil { 153 return nil, err 154 } 155 156 rl.EquipierContraintes, err = rd.SelectAllEquipierContraintes(db) 157 if err != nil { 158 return nil, err 159 } 160 161 rl.CampContraintes, err = rd.SelectAllCampContraintes(db) 162 if err != nil { 163 return nil, err 164 } 165 166 rl.GroupeContraintes, err = rd.SelectAllGroupeContraintes(db) 167 if err != nil { 168 return nil, err 169 } 170 171 rl.DocumentCamps, err = rd.SelectAllDocumentCamps(db) 172 if err != nil { 173 return nil, err 174 } 175 176 rl.DocumentPersonnes, err = rd.SelectAllDocumentPersonnes(db) 177 if err != nil { 178 return nil, err 179 } 180 181 rl.DocumentAides, err = rd.SelectAllDocumentAides(db) 182 if err != nil { 183 return nil, err 184 } 185 186 rl.MessageDocuments, err = rd.SelectAllMessageDocuments(db) 187 if err != nil { 188 return nil, err 189 } 190 191 rl.MessageSondages, err = rd.SelectAllMessageSondages(db) 192 if err != nil { 193 return nil, err 194 } 195 196 rl.MessagePlaceliberes, err = rd.SelectAllMessagePlaceliberes(db) 197 if err != nil { 198 return nil, err 199 } 200 201 rl.MessageAttestations, err = rd.SelectAllMessageAttestations(db) 202 if err != nil { 203 return nil, err 204 } 205 206 rl.MessageMessages, err = rd.SelectAllMessageMessages(db) 207 if err != nil { 208 return nil, err 209 } 210 211 base.ProcessRawLinks(rl) 212 213 return base, nil 214 } 215 216 func LoadRemoteBaseLocalePartiel(db rd.DB, items map[string][]int64) (base *BaseLocale, err error) { 217 base = new(BaseLocale) 218 219 base.Personnes, err = rd.SelectPersonnes(db, items["Personnes"]...) 220 if err != nil { 221 return nil, err 222 } 223 224 base.Camps, err = rd.SelectCamps(db, items["Camps"]...) 225 if err != nil { 226 return nil, err 227 } 228 229 base.Groupes, err = rd.SelectGroupes(db, items["Groupes"]...) 230 if err != nil { 231 return nil, err 232 } 233 234 base.Sondages, err = rd.SelectSondages(db, items["Sondages"]...) 235 if err != nil { 236 return nil, err 237 } 238 239 base.Participants, err = rd.SelectParticipants(db, items["Participants"]...) 240 if err != nil { 241 return nil, err 242 } 243 244 base.Equipiers, err = rd.SelectEquipiers(db, items["Equipiers"]...) 245 if err != nil { 246 return nil, err 247 } 248 249 base.Participantsimples, err = rd.SelectParticipantsimples(db, items["Participantsimples"]...) 250 if err != nil { 251 return nil, err 252 } 253 254 base.Structureaides, err = rd.SelectStructureaides(db, items["Structureaides"]...) 255 if err != nil { 256 return nil, err 257 } 258 259 base.Aides, err = rd.SelectAides(db, items["Aides"]...) 260 if err != nil { 261 return nil, err 262 } 263 264 base.Organismes, err = rd.SelectOrganismes(db, items["Organismes"]...) 265 if err != nil { 266 return nil, err 267 } 268 269 base.Dons, err = rd.SelectDons(db, items["Dons"]...) 270 if err != nil { 271 return nil, err 272 } 273 274 base.Contraintes, err = rd.SelectContraintes(db, items["Contraintes"]...) 275 if err != nil { 276 return nil, err 277 } 278 279 base.Documents, err = rd.SelectDocuments(db, items["Documents"]...) 280 if err != nil { 281 return nil, err 282 } 283 284 base.Paiements, err = rd.SelectPaiements(db, items["Paiements"]...) 285 if err != nil { 286 return nil, err 287 } 288 289 base.Factures, err = rd.SelectFactures(db, items["Factures"]...) 290 if err != nil { 291 return nil, err 292 } 293 294 base.Messages, err = rd.SelectMessages(db, items["Messages"]...) 295 if err != nil { 296 return nil, err 297 } 298 299 rl, err := loadLinksById(db, items) 300 if err != nil { 301 return nil, err 302 } 303 base.ProcessRawLinks(rl) 304 305 return base, nil 306 } 307 308 func (base BaseLocale) Hash() (BaseHash, error) { 309 baseHash := make(BaseHash) 310 var tmp map[int64]uint32 311 312 tmp = make(map[int64]uint32, len(base.Personnes)) 313 for id, v := range base.Personnes { 314 b, err := json.Marshal(v) 315 if err != nil { 316 return nil, err 317 } 318 tmp[id] = crc32.ChecksumIEEE(b) 319 } 320 baseHash["Personnes"] = tmp 321 322 tmp = make(map[int64]uint32, len(base.Camps)) 323 for id, v := range base.Camps { 324 b, err := json.Marshal(v) 325 if err != nil { 326 return nil, err 327 } 328 tmp[id] = crc32.ChecksumIEEE(b) 329 } 330 baseHash["Camps"] = tmp 331 332 tmp = make(map[int64]uint32, len(base.Groupes)) 333 for id, v := range base.Groupes { 334 b, err := json.Marshal(v) 335 if err != nil { 336 return nil, err 337 } 338 tmp[id] = crc32.ChecksumIEEE(b) 339 } 340 baseHash["Groupes"] = tmp 341 342 tmp = make(map[int64]uint32, len(base.Sondages)) 343 for id, v := range base.Sondages { 344 b, err := json.Marshal(v) 345 if err != nil { 346 return nil, err 347 } 348 tmp[id] = crc32.ChecksumIEEE(b) 349 } 350 baseHash["Sondages"] = tmp 351 352 tmp = make(map[int64]uint32, len(base.Participants)) 353 for id, v := range base.Participants { 354 b, err := json.Marshal(v) 355 if err != nil { 356 return nil, err 357 } 358 tmp[id] = crc32.ChecksumIEEE(b) 359 } 360 baseHash["Participants"] = tmp 361 362 tmp = make(map[int64]uint32, len(base.Equipiers)) 363 for id, v := range base.Equipiers { 364 b, err := json.Marshal(v) 365 if err != nil { 366 return nil, err 367 } 368 tmp[id] = crc32.ChecksumIEEE(b) 369 } 370 baseHash["Equipiers"] = tmp 371 372 tmp = make(map[int64]uint32, len(base.Participantsimples)) 373 for id, v := range base.Participantsimples { 374 b, err := json.Marshal(v) 375 if err != nil { 376 return nil, err 377 } 378 tmp[id] = crc32.ChecksumIEEE(b) 379 } 380 baseHash["Participantsimples"] = tmp 381 382 tmp = make(map[int64]uint32, len(base.Structureaides)) 383 for id, v := range base.Structureaides { 384 b, err := json.Marshal(v) 385 if err != nil { 386 return nil, err 387 } 388 tmp[id] = crc32.ChecksumIEEE(b) 389 } 390 baseHash["Structureaides"] = tmp 391 392 tmp = make(map[int64]uint32, len(base.Aides)) 393 for id, v := range base.Aides { 394 b, err := json.Marshal(v) 395 if err != nil { 396 return nil, err 397 } 398 tmp[id] = crc32.ChecksumIEEE(b) 399 } 400 baseHash["Aides"] = tmp 401 402 tmp = make(map[int64]uint32, len(base.Organismes)) 403 for id, v := range base.Organismes { 404 b, err := json.Marshal(v) 405 if err != nil { 406 return nil, err 407 } 408 tmp[id] = crc32.ChecksumIEEE(b) 409 } 410 baseHash["Organismes"] = tmp 411 412 tmp = make(map[int64]uint32, len(base.Dons)) 413 for id, v := range base.Dons { 414 b, err := json.Marshal(v) 415 if err != nil { 416 return nil, err 417 } 418 tmp[id] = crc32.ChecksumIEEE(b) 419 } 420 baseHash["Dons"] = tmp 421 422 tmp = make(map[int64]uint32, len(base.Contraintes)) 423 for id, v := range base.Contraintes { 424 b, err := json.Marshal(v) 425 if err != nil { 426 return nil, err 427 } 428 tmp[id] = crc32.ChecksumIEEE(b) 429 } 430 baseHash["Contraintes"] = tmp 431 432 tmp = make(map[int64]uint32, len(base.Documents)) 433 for id, v := range base.Documents { 434 b, err := json.Marshal(v) 435 if err != nil { 436 return nil, err 437 } 438 tmp[id] = crc32.ChecksumIEEE(b) 439 } 440 baseHash["Documents"] = tmp 441 442 tmp = make(map[int64]uint32, len(base.Paiements)) 443 for id, v := range base.Paiements { 444 b, err := json.Marshal(v) 445 if err != nil { 446 return nil, err 447 } 448 tmp[id] = crc32.ChecksumIEEE(b) 449 } 450 baseHash["Paiements"] = tmp 451 452 tmp = make(map[int64]uint32, len(base.Factures)) 453 for id, v := range base.Factures { 454 b, err := json.Marshal(v) 455 if err != nil { 456 return nil, err 457 } 458 tmp[id] = crc32.ChecksumIEEE(b) 459 } 460 baseHash["Factures"] = tmp 461 462 tmp = make(map[int64]uint32, len(base.Messages)) 463 for id, v := range base.Messages { 464 b, err := json.Marshal(v) 465 if err != nil { 466 return nil, err 467 } 468 tmp[id] = crc32.ChecksumIEEE(b) 469 } 470 baseHash["Messages"] = tmp 471 472 tmp = make(map[int64]uint32, len(base.EquipierContraintes)) 473 for id, v := range base.EquipierContraintes { 474 b, err := json.Marshal(v) 475 if err != nil { 476 return nil, err 477 } 478 tmp[id] = crc32.ChecksumIEEE(b) 479 } 480 baseHash["EquipierContraintes"] = tmp 481 482 tmp = make(map[int64]uint32, len(base.ParticipantGroupe)) 483 for id, v := range base.ParticipantGroupe { 484 b, err := json.Marshal(v) 485 if err != nil { 486 return nil, err 487 } 488 tmp[id] = crc32.ChecksumIEEE(b) 489 } 490 baseHash["ParticipantGroupe"] = tmp 491 492 tmp = make(map[int64]uint32, len(base.ParticipantEquipier)) 493 for id, v := range base.ParticipantEquipier { 494 b, err := json.Marshal(v) 495 if err != nil { 496 return nil, err 497 } 498 tmp[id] = crc32.ChecksumIEEE(b) 499 } 500 baseHash["ParticipantEquipier"] = tmp 501 502 tmp = make(map[int64]uint32, len(base.GroupeContraintes)) 503 for id, v := range base.GroupeContraintes { 504 b, err := json.Marshal(v) 505 if err != nil { 506 return nil, err 507 } 508 tmp[id] = crc32.ChecksumIEEE(b) 509 } 510 baseHash["GroupeContraintes"] = tmp 511 512 tmp = make(map[int64]uint32, len(base.CampContraintes)) 513 for id, v := range base.CampContraintes { 514 b, err := json.Marshal(v) 515 if err != nil { 516 return nil, err 517 } 518 tmp[id] = crc32.ChecksumIEEE(b) 519 } 520 baseHash["CampContraintes"] = tmp 521 522 tmp = make(map[int64]uint32, len(base.DocumentPersonnes)) 523 for id, v := range base.DocumentPersonnes { 524 b, err := json.Marshal(v) 525 if err != nil { 526 return nil, err 527 } 528 tmp[id] = crc32.ChecksumIEEE(b) 529 } 530 baseHash["DocumentPersonnes"] = tmp 531 532 tmp = make(map[int64]uint32, len(base.DocumentAides)) 533 for id, v := range base.DocumentAides { 534 b, err := json.Marshal(v) 535 if err != nil { 536 return nil, err 537 } 538 tmp[id] = crc32.ChecksumIEEE(b) 539 } 540 baseHash["DocumentAides"] = tmp 541 542 tmp = make(map[int64]uint32, len(base.DocumentCamps)) 543 for id, v := range base.DocumentCamps { 544 b, err := json.Marshal(v) 545 if err != nil { 546 return nil, err 547 } 548 tmp[id] = crc32.ChecksumIEEE(b) 549 } 550 baseHash["DocumentCamps"] = tmp 551 552 tmp = make(map[int64]uint32, len(base.MessageDocuments)) 553 for id, v := range base.MessageDocuments { 554 b, err := json.Marshal(v) 555 if err != nil { 556 return nil, err 557 } 558 tmp[id] = crc32.ChecksumIEEE(b) 559 } 560 baseHash["MessageDocuments"] = tmp 561 562 tmp = make(map[int64]uint32, len(base.MessageSondages)) 563 for id, v := range base.MessageSondages { 564 b, err := json.Marshal(v) 565 if err != nil { 566 return nil, err 567 } 568 tmp[id] = crc32.ChecksumIEEE(b) 569 } 570 baseHash["MessageSondages"] = tmp 571 572 tmp = make(map[int64]uint32, len(base.MessagePlaceliberes)) 573 for id, v := range base.MessagePlaceliberes { 574 b, err := json.Marshal(v) 575 if err != nil { 576 return nil, err 577 } 578 tmp[id] = crc32.ChecksumIEEE(b) 579 } 580 baseHash["MessagePlaceliberes"] = tmp 581 582 tmp = make(map[int64]uint32, len(base.MessageAttestations)) 583 for id, v := range base.MessageAttestations { 584 b, err := json.Marshal(v) 585 if err != nil { 586 return nil, err 587 } 588 tmp[id] = crc32.ChecksumIEEE(b) 589 } 590 baseHash["MessageAttestations"] = tmp 591 592 tmp = make(map[int64]uint32, len(base.MessageMessages)) 593 for id, v := range base.MessageMessages { 594 b, err := json.Marshal(v) 595 if err != nil { 596 return nil, err 597 } 598 tmp[id] = crc32.ChecksumIEEE(b) 599 } 600 baseHash["MessageMessages"] = tmp 601 602 tmp = make(map[int64]uint32, len(base.DonDonateurs)) 603 for id, v := range base.DonDonateurs { 604 b, err := json.Marshal(v) 605 if err != nil { 606 return nil, err 607 } 608 tmp[id] = crc32.ChecksumIEEE(b) 609 } 610 baseHash["DonDonateurs"] = tmp 611 612 return baseHash, nil 613 } 614 615 func (base *BaseLocale) MergeFrom(incomming BaseLocale, toDelete map[string][]int64) { 616 617 for id, v := range incomming.Personnes { 618 base.Personnes[id] = v 619 } 620 for _, id := range toDelete["Personnes"] { 621 delete(base.Personnes, id) 622 } 623 624 for id, v := range incomming.Camps { 625 base.Camps[id] = v 626 } 627 for _, id := range toDelete["Camps"] { 628 delete(base.Camps, id) 629 } 630 631 for id, v := range incomming.Groupes { 632 base.Groupes[id] = v 633 } 634 for _, id := range toDelete["Groupes"] { 635 delete(base.Groupes, id) 636 } 637 638 for id, v := range incomming.Sondages { 639 base.Sondages[id] = v 640 } 641 for _, id := range toDelete["Sondages"] { 642 delete(base.Sondages, id) 643 } 644 645 for id, v := range incomming.Participants { 646 base.Participants[id] = v 647 } 648 for _, id := range toDelete["Participants"] { 649 delete(base.Participants, id) 650 } 651 652 for id, v := range incomming.Equipiers { 653 base.Equipiers[id] = v 654 } 655 for _, id := range toDelete["Equipiers"] { 656 delete(base.Equipiers, id) 657 } 658 659 for id, v := range incomming.Participantsimples { 660 base.Participantsimples[id] = v 661 } 662 for _, id := range toDelete["Participantsimples"] { 663 delete(base.Participantsimples, id) 664 } 665 666 for id, v := range incomming.Structureaides { 667 base.Structureaides[id] = v 668 } 669 for _, id := range toDelete["Structureaides"] { 670 delete(base.Structureaides, id) 671 } 672 673 for id, v := range incomming.Aides { 674 base.Aides[id] = v 675 } 676 for _, id := range toDelete["Aides"] { 677 delete(base.Aides, id) 678 } 679 680 for id, v := range incomming.Organismes { 681 base.Organismes[id] = v 682 } 683 for _, id := range toDelete["Organismes"] { 684 delete(base.Organismes, id) 685 } 686 687 for id, v := range incomming.Dons { 688 base.Dons[id] = v 689 } 690 for _, id := range toDelete["Dons"] { 691 delete(base.Dons, id) 692 } 693 694 for id, v := range incomming.Contraintes { 695 base.Contraintes[id] = v 696 } 697 for _, id := range toDelete["Contraintes"] { 698 delete(base.Contraintes, id) 699 } 700 701 for id, v := range incomming.Documents { 702 base.Documents[id] = v 703 } 704 for _, id := range toDelete["Documents"] { 705 delete(base.Documents, id) 706 } 707 708 for id, v := range incomming.Paiements { 709 base.Paiements[id] = v 710 } 711 for _, id := range toDelete["Paiements"] { 712 delete(base.Paiements, id) 713 } 714 715 for id, v := range incomming.Factures { 716 base.Factures[id] = v 717 } 718 for _, id := range toDelete["Factures"] { 719 delete(base.Factures, id) 720 } 721 722 for id, v := range incomming.Messages { 723 base.Messages[id] = v 724 } 725 for _, id := range toDelete["Messages"] { 726 delete(base.Messages, id) 727 } 728 729 for id, v := range incomming.EquipierContraintes { 730 base.EquipierContraintes[id] = v 731 } 732 for _, id := range toDelete["EquipierContraintes"] { 733 delete(base.EquipierContraintes, id) 734 } 735 736 for id, v := range incomming.ParticipantGroupe { 737 base.ParticipantGroupe[id] = v 738 } 739 for _, id := range toDelete["ParticipantGroupe"] { 740 delete(base.ParticipantGroupe, id) 741 } 742 743 for id, v := range incomming.ParticipantEquipier { 744 base.ParticipantEquipier[id] = v 745 } 746 for _, id := range toDelete["ParticipantEquipier"] { 747 delete(base.ParticipantEquipier, id) 748 } 749 750 for id, v := range incomming.GroupeContraintes { 751 base.GroupeContraintes[id] = v 752 } 753 for _, id := range toDelete["GroupeContraintes"] { 754 delete(base.GroupeContraintes, id) 755 } 756 757 for id, v := range incomming.CampContraintes { 758 base.CampContraintes[id] = v 759 } 760 for _, id := range toDelete["CampContraintes"] { 761 delete(base.CampContraintes, id) 762 } 763 764 for id, v := range incomming.DocumentPersonnes { 765 base.DocumentPersonnes[id] = v 766 } 767 for _, id := range toDelete["DocumentPersonnes"] { 768 delete(base.DocumentPersonnes, id) 769 } 770 771 for id, v := range incomming.DocumentAides { 772 base.DocumentAides[id] = v 773 } 774 for _, id := range toDelete["DocumentAides"] { 775 delete(base.DocumentAides, id) 776 } 777 778 for id, v := range incomming.DocumentCamps { 779 base.DocumentCamps[id] = v 780 } 781 for _, id := range toDelete["DocumentCamps"] { 782 delete(base.DocumentCamps, id) 783 } 784 785 for id, v := range incomming.MessageDocuments { 786 base.MessageDocuments[id] = v 787 } 788 for _, id := range toDelete["MessageDocuments"] { 789 delete(base.MessageDocuments, id) 790 } 791 792 for id, v := range incomming.MessageSondages { 793 base.MessageSondages[id] = v 794 } 795 for _, id := range toDelete["MessageSondages"] { 796 delete(base.MessageSondages, id) 797 } 798 799 for id, v := range incomming.MessagePlaceliberes { 800 base.MessagePlaceliberes[id] = v 801 } 802 for _, id := range toDelete["MessagePlaceliberes"] { 803 delete(base.MessagePlaceliberes, id) 804 } 805 806 for id, v := range incomming.MessageAttestations { 807 base.MessageAttestations[id] = v 808 } 809 for _, id := range toDelete["MessageAttestations"] { 810 delete(base.MessageAttestations, id) 811 } 812 813 for id, v := range incomming.MessageMessages { 814 base.MessageMessages[id] = v 815 } 816 for _, id := range toDelete["MessageMessages"] { 817 delete(base.MessageMessages, id) 818 } 819 820 for id, v := range incomming.DonDonateurs { 821 base.DonDonateurs[id] = v 822 } 823 for _, id := range toDelete["DonDonateurs"] { 824 delete(base.DonDonateurs, id) 825 } 826 827 }