github.com/geneva/gqlgen@v0.17.7-0.20230801155730-7b9317164836/plugin/federation/testdata/entityresolver/generated/federation.go (about) 1 // Code generated by github.com/geneva/gqlgen, DO NOT EDIT. 2 3 package generated 4 5 import ( 6 "context" 7 "errors" 8 "fmt" 9 "strings" 10 "sync" 11 12 "github.com/geneva/gqlgen/plugin/federation/fedruntime" 13 "github.com/geneva/gqlgen/plugin/federation/testdata/entityresolver/generated/model" 14 ) 15 16 var ( 17 ErrUnknownType = errors.New("unknown type") 18 ErrTypeNotFound = errors.New("type not found") 19 ) 20 21 func (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) { 22 if ec.DisableIntrospection { 23 return fedruntime.Service{}, errors.New("federated introspection disabled") 24 } 25 26 var sdl []string 27 28 for _, src := range sources { 29 if src.BuiltIn { 30 continue 31 } 32 sdl = append(sdl, src.Input) 33 } 34 35 return fedruntime.Service{ 36 SDL: strings.Join(sdl, "\n"), 37 }, nil 38 } 39 40 func (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]interface{}) []fedruntime.Entity { 41 list := make([]fedruntime.Entity, len(representations)) 42 43 repsMap := map[string]struct { 44 i []int 45 r []map[string]interface{} 46 }{} 47 48 // We group entities by typename so that we can parallelize their resolution. 49 // This is particularly helpful when there are entity groups in multi mode. 50 buildRepresentationGroups := func(reps []map[string]interface{}) { 51 for i, rep := range reps { 52 typeName, ok := rep["__typename"].(string) 53 if !ok { 54 // If there is no __typename, we just skip the representation; 55 // we just won't be resolving these unknown types. 56 ec.Error(ctx, errors.New("__typename must be an existing string")) 57 continue 58 } 59 60 _r := repsMap[typeName] 61 _r.i = append(_r.i, i) 62 _r.r = append(_r.r, rep) 63 repsMap[typeName] = _r 64 } 65 } 66 67 isMulti := func(typeName string) bool { 68 switch typeName { 69 case "MultiHello": 70 return true 71 case "MultiHelloMultipleRequires": 72 return true 73 case "MultiHelloRequires": 74 return true 75 case "MultiHelloWithError": 76 return true 77 case "MultiPlanetRequiresNested": 78 return true 79 default: 80 return false 81 } 82 } 83 84 resolveEntity := func(ctx context.Context, typeName string, rep map[string]interface{}, idx []int, i int) (err error) { 85 // we need to do our own panic handling, because we may be called in a 86 // goroutine, where the usual panic handling can't catch us 87 defer func() { 88 if r := recover(); r != nil { 89 err = ec.Recover(ctx, r) 90 } 91 }() 92 93 switch typeName { 94 case "Hello": 95 resolverName, err := entityResolverNameForHello(ctx, rep) 96 if err != nil { 97 return fmt.Errorf(`finding resolver for Entity "Hello": %w`, err) 98 } 99 switch resolverName { 100 101 case "findHelloByName": 102 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 103 if err != nil { 104 return fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err) 105 } 106 entity, err := ec.resolvers.Entity().FindHelloByName(ctx, id0) 107 if err != nil { 108 return fmt.Errorf(`resolving Entity "Hello": %w`, err) 109 } 110 111 list[idx[i]] = entity 112 return nil 113 } 114 case "HelloMultiSingleKeys": 115 resolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep) 116 if err != nil { 117 return fmt.Errorf(`finding resolver for Entity "HelloMultiSingleKeys": %w`, err) 118 } 119 switch resolverName { 120 121 case "findHelloMultiSingleKeysByKey1AndKey2": 122 id0, err := ec.unmarshalNString2string(ctx, rep["key1"]) 123 if err != nil { 124 return fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err) 125 } 126 id1, err := ec.unmarshalNString2string(ctx, rep["key2"]) 127 if err != nil { 128 return fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err) 129 } 130 entity, err := ec.resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1) 131 if err != nil { 132 return fmt.Errorf(`resolving Entity "HelloMultiSingleKeys": %w`, err) 133 } 134 135 list[idx[i]] = entity 136 return nil 137 } 138 case "HelloWithErrors": 139 resolverName, err := entityResolverNameForHelloWithErrors(ctx, rep) 140 if err != nil { 141 return fmt.Errorf(`finding resolver for Entity "HelloWithErrors": %w`, err) 142 } 143 switch resolverName { 144 145 case "findHelloWithErrorsByName": 146 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 147 if err != nil { 148 return fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err) 149 } 150 entity, err := ec.resolvers.Entity().FindHelloWithErrorsByName(ctx, id0) 151 if err != nil { 152 return fmt.Errorf(`resolving Entity "HelloWithErrors": %w`, err) 153 } 154 155 list[idx[i]] = entity 156 return nil 157 } 158 case "PlanetMultipleRequires": 159 resolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep) 160 if err != nil { 161 return fmt.Errorf(`finding resolver for Entity "PlanetMultipleRequires": %w`, err) 162 } 163 switch resolverName { 164 165 case "findPlanetMultipleRequiresByName": 166 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 167 if err != nil { 168 return fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err) 169 } 170 entity, err := ec.resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0) 171 if err != nil { 172 return fmt.Errorf(`resolving Entity "PlanetMultipleRequires": %w`, err) 173 } 174 175 entity.Diameter, err = ec.unmarshalNInt2int(ctx, rep["diameter"]) 176 if err != nil { 177 return err 178 } 179 entity.Density, err = ec.unmarshalNInt2int(ctx, rep["density"]) 180 if err != nil { 181 return err 182 } 183 list[idx[i]] = entity 184 return nil 185 } 186 case "PlanetRequires": 187 resolverName, err := entityResolverNameForPlanetRequires(ctx, rep) 188 if err != nil { 189 return fmt.Errorf(`finding resolver for Entity "PlanetRequires": %w`, err) 190 } 191 switch resolverName { 192 193 case "findPlanetRequiresByName": 194 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 195 if err != nil { 196 return fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err) 197 } 198 entity, err := ec.resolvers.Entity().FindPlanetRequiresByName(ctx, id0) 199 if err != nil { 200 return fmt.Errorf(`resolving Entity "PlanetRequires": %w`, err) 201 } 202 203 entity.Diameter, err = ec.unmarshalNInt2int(ctx, rep["diameter"]) 204 if err != nil { 205 return err 206 } 207 list[idx[i]] = entity 208 return nil 209 } 210 case "PlanetRequiresNested": 211 resolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep) 212 if err != nil { 213 return fmt.Errorf(`finding resolver for Entity "PlanetRequiresNested": %w`, err) 214 } 215 switch resolverName { 216 217 case "findPlanetRequiresNestedByName": 218 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 219 if err != nil { 220 return fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err) 221 } 222 entity, err := ec.resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0) 223 if err != nil { 224 return fmt.Errorf(`resolving Entity "PlanetRequiresNested": %w`, err) 225 } 226 227 entity.World.Foo, err = ec.unmarshalNString2string(ctx, rep["world"].(map[string]interface{})["foo"]) 228 if err != nil { 229 return err 230 } 231 list[idx[i]] = entity 232 return nil 233 } 234 case "World": 235 resolverName, err := entityResolverNameForWorld(ctx, rep) 236 if err != nil { 237 return fmt.Errorf(`finding resolver for Entity "World": %w`, err) 238 } 239 switch resolverName { 240 241 case "findWorldByHelloNameAndFoo": 242 id0, err := ec.unmarshalNString2string(ctx, rep["hello"].(map[string]interface{})["name"]) 243 if err != nil { 244 return fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err) 245 } 246 id1, err := ec.unmarshalNString2string(ctx, rep["foo"]) 247 if err != nil { 248 return fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err) 249 } 250 entity, err := ec.resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1) 251 if err != nil { 252 return fmt.Errorf(`resolving Entity "World": %w`, err) 253 } 254 255 list[idx[i]] = entity 256 return nil 257 } 258 case "WorldName": 259 resolverName, err := entityResolverNameForWorldName(ctx, rep) 260 if err != nil { 261 return fmt.Errorf(`finding resolver for Entity "WorldName": %w`, err) 262 } 263 switch resolverName { 264 265 case "findWorldNameByName": 266 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 267 if err != nil { 268 return fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err) 269 } 270 entity, err := ec.resolvers.Entity().FindWorldNameByName(ctx, id0) 271 if err != nil { 272 return fmt.Errorf(`resolving Entity "WorldName": %w`, err) 273 } 274 275 list[idx[i]] = entity 276 return nil 277 } 278 case "WorldWithMultipleKeys": 279 resolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep) 280 if err != nil { 281 return fmt.Errorf(`finding resolver for Entity "WorldWithMultipleKeys": %w`, err) 282 } 283 switch resolverName { 284 285 case "findWorldWithMultipleKeysByHelloNameAndFoo": 286 id0, err := ec.unmarshalNString2string(ctx, rep["hello"].(map[string]interface{})["name"]) 287 if err != nil { 288 return fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err) 289 } 290 id1, err := ec.unmarshalNString2string(ctx, rep["foo"]) 291 if err != nil { 292 return fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err) 293 } 294 entity, err := ec.resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1) 295 if err != nil { 296 return fmt.Errorf(`resolving Entity "WorldWithMultipleKeys": %w`, err) 297 } 298 299 list[idx[i]] = entity 300 return nil 301 case "findWorldWithMultipleKeysByBar": 302 id0, err := ec.unmarshalNInt2int(ctx, rep["bar"]) 303 if err != nil { 304 return fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err) 305 } 306 entity, err := ec.resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0) 307 if err != nil { 308 return fmt.Errorf(`resolving Entity "WorldWithMultipleKeys": %w`, err) 309 } 310 311 list[idx[i]] = entity 312 return nil 313 } 314 315 } 316 return fmt.Errorf("%w: %s", ErrUnknownType, typeName) 317 } 318 319 resolveManyEntities := func(ctx context.Context, typeName string, reps []map[string]interface{}, idx []int) (err error) { 320 // we need to do our own panic handling, because we may be called in a 321 // goroutine, where the usual panic handling can't catch us 322 defer func() { 323 if r := recover(); r != nil { 324 err = ec.Recover(ctx, r) 325 } 326 }() 327 328 switch typeName { 329 330 case "MultiHello": 331 _reps := make([]*model.MultiHelloByNamesInput, len(reps)) 332 333 for i, rep := range reps { 334 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 335 if err != nil { 336 return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name")) 337 } 338 339 _reps[i] = &model.MultiHelloByNamesInput{ 340 Name: id0, 341 } 342 } 343 344 entities, err := ec.resolvers.Entity().FindManyMultiHelloByNames(ctx, _reps) 345 if err != nil { 346 return err 347 } 348 349 for i, entity := range entities { 350 list[idx[i]] = entity 351 } 352 return nil 353 354 case "MultiHelloMultipleRequires": 355 _reps := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(reps)) 356 357 for i, rep := range reps { 358 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 359 if err != nil { 360 return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name")) 361 } 362 363 _reps[i] = &model.MultiHelloMultipleRequiresByNamesInput{ 364 Name: id0, 365 } 366 } 367 368 entities, err := ec.resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, _reps) 369 if err != nil { 370 return err 371 } 372 373 for i, entity := range entities { 374 entity.Key1, err = ec.unmarshalNString2string(ctx, reps[i]["key1"]) 375 if err != nil { 376 return err 377 } 378 entity.Key2, err = ec.unmarshalNString2string(ctx, reps[i]["key2"]) 379 if err != nil { 380 return err 381 } 382 list[idx[i]] = entity 383 } 384 return nil 385 386 case "MultiHelloRequires": 387 _reps := make([]*model.MultiHelloRequiresByNamesInput, len(reps)) 388 389 for i, rep := range reps { 390 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 391 if err != nil { 392 return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name")) 393 } 394 395 _reps[i] = &model.MultiHelloRequiresByNamesInput{ 396 Name: id0, 397 } 398 } 399 400 entities, err := ec.resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, _reps) 401 if err != nil { 402 return err 403 } 404 405 for i, entity := range entities { 406 entity.Key1, err = ec.unmarshalNString2string(ctx, reps[i]["key1"]) 407 if err != nil { 408 return err 409 } 410 list[idx[i]] = entity 411 } 412 return nil 413 414 case "MultiHelloWithError": 415 _reps := make([]*model.MultiHelloWithErrorByNamesInput, len(reps)) 416 417 for i, rep := range reps { 418 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 419 if err != nil { 420 return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name")) 421 } 422 423 _reps[i] = &model.MultiHelloWithErrorByNamesInput{ 424 Name: id0, 425 } 426 } 427 428 entities, err := ec.resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, _reps) 429 if err != nil { 430 return err 431 } 432 433 for i, entity := range entities { 434 list[idx[i]] = entity 435 } 436 return nil 437 438 case "MultiPlanetRequiresNested": 439 _reps := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(reps)) 440 441 for i, rep := range reps { 442 id0, err := ec.unmarshalNString2string(ctx, rep["name"]) 443 if err != nil { 444 return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name")) 445 } 446 447 _reps[i] = &model.MultiPlanetRequiresNestedByNamesInput{ 448 Name: id0, 449 } 450 } 451 452 entities, err := ec.resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, _reps) 453 if err != nil { 454 return err 455 } 456 457 for i, entity := range entities { 458 entity.World.Foo, err = ec.unmarshalNString2string(ctx, reps[i]["world"].(map[string]interface{})["foo"]) 459 if err != nil { 460 return err 461 } 462 list[idx[i]] = entity 463 } 464 return nil 465 466 default: 467 return errors.New("unknown type: " + typeName) 468 } 469 } 470 471 resolveEntityGroup := func(typeName string, reps []map[string]interface{}, idx []int) { 472 if isMulti(typeName) { 473 err := resolveManyEntities(ctx, typeName, reps, idx) 474 if err != nil { 475 ec.Error(ctx, err) 476 } 477 } else { 478 // if there are multiple entities to resolve, parallelize (similar to 479 // graphql.FieldSet.Dispatch) 480 var e sync.WaitGroup 481 e.Add(len(reps)) 482 for i, rep := range reps { 483 i, rep := i, rep 484 go func(i int, rep map[string]interface{}) { 485 err := resolveEntity(ctx, typeName, rep, idx, i) 486 if err != nil { 487 ec.Error(ctx, err) 488 } 489 e.Done() 490 }(i, rep) 491 } 492 e.Wait() 493 } 494 } 495 buildRepresentationGroups(representations) 496 497 switch len(repsMap) { 498 case 0: 499 return list 500 case 1: 501 for typeName, reps := range repsMap { 502 resolveEntityGroup(typeName, reps.r, reps.i) 503 } 504 return list 505 default: 506 var g sync.WaitGroup 507 g.Add(len(repsMap)) 508 for typeName, reps := range repsMap { 509 go func(typeName string, reps []map[string]interface{}, idx []int) { 510 resolveEntityGroup(typeName, reps, idx) 511 g.Done() 512 }(typeName, reps.r, reps.i) 513 } 514 g.Wait() 515 return list 516 } 517 } 518 519 func entityResolverNameForHello(ctx context.Context, rep map[string]interface{}) (string, error) { 520 for { 521 var ( 522 m map[string]interface{} 523 val interface{} 524 ok bool 525 ) 526 _ = val 527 m = rep 528 if _, ok = m["name"]; !ok { 529 break 530 } 531 return "findHelloByName", nil 532 } 533 return "", fmt.Errorf("%w for Hello", ErrTypeNotFound) 534 } 535 536 func entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep map[string]interface{}) (string, error) { 537 for { 538 var ( 539 m map[string]interface{} 540 val interface{} 541 ok bool 542 ) 543 _ = val 544 m = rep 545 if _, ok = m["key1"]; !ok { 546 break 547 } 548 m = rep 549 if _, ok = m["key2"]; !ok { 550 break 551 } 552 return "findHelloMultiSingleKeysByKey1AndKey2", nil 553 } 554 return "", fmt.Errorf("%w for HelloMultiSingleKeys", ErrTypeNotFound) 555 } 556 557 func entityResolverNameForHelloWithErrors(ctx context.Context, rep map[string]interface{}) (string, error) { 558 for { 559 var ( 560 m map[string]interface{} 561 val interface{} 562 ok bool 563 ) 564 _ = val 565 m = rep 566 if _, ok = m["name"]; !ok { 567 break 568 } 569 return "findHelloWithErrorsByName", nil 570 } 571 return "", fmt.Errorf("%w for HelloWithErrors", ErrTypeNotFound) 572 } 573 574 func entityResolverNameForMultiHello(ctx context.Context, rep map[string]interface{}) (string, error) { 575 for { 576 var ( 577 m map[string]interface{} 578 val interface{} 579 ok bool 580 ) 581 _ = val 582 m = rep 583 if _, ok = m["name"]; !ok { 584 break 585 } 586 return "findManyMultiHelloByNames", nil 587 } 588 return "", fmt.Errorf("%w for MultiHello", ErrTypeNotFound) 589 } 590 591 func entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep map[string]interface{}) (string, error) { 592 for { 593 var ( 594 m map[string]interface{} 595 val interface{} 596 ok bool 597 ) 598 _ = val 599 m = rep 600 if _, ok = m["name"]; !ok { 601 break 602 } 603 return "findManyMultiHelloMultipleRequiresByNames", nil 604 } 605 return "", fmt.Errorf("%w for MultiHelloMultipleRequires", ErrTypeNotFound) 606 } 607 608 func entityResolverNameForMultiHelloRequires(ctx context.Context, rep map[string]interface{}) (string, error) { 609 for { 610 var ( 611 m map[string]interface{} 612 val interface{} 613 ok bool 614 ) 615 _ = val 616 m = rep 617 if _, ok = m["name"]; !ok { 618 break 619 } 620 return "findManyMultiHelloRequiresByNames", nil 621 } 622 return "", fmt.Errorf("%w for MultiHelloRequires", ErrTypeNotFound) 623 } 624 625 func entityResolverNameForMultiHelloWithError(ctx context.Context, rep map[string]interface{}) (string, error) { 626 for { 627 var ( 628 m map[string]interface{} 629 val interface{} 630 ok bool 631 ) 632 _ = val 633 m = rep 634 if _, ok = m["name"]; !ok { 635 break 636 } 637 return "findManyMultiHelloWithErrorByNames", nil 638 } 639 return "", fmt.Errorf("%w for MultiHelloWithError", ErrTypeNotFound) 640 } 641 642 func entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep map[string]interface{}) (string, error) { 643 for { 644 var ( 645 m map[string]interface{} 646 val interface{} 647 ok bool 648 ) 649 _ = val 650 m = rep 651 if _, ok = m["name"]; !ok { 652 break 653 } 654 return "findManyMultiPlanetRequiresNestedByNames", nil 655 } 656 return "", fmt.Errorf("%w for MultiPlanetRequiresNested", ErrTypeNotFound) 657 } 658 659 func entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep map[string]interface{}) (string, error) { 660 for { 661 var ( 662 m map[string]interface{} 663 val interface{} 664 ok bool 665 ) 666 _ = val 667 m = rep 668 if _, ok = m["name"]; !ok { 669 break 670 } 671 return "findPlanetMultipleRequiresByName", nil 672 } 673 return "", fmt.Errorf("%w for PlanetMultipleRequires", ErrTypeNotFound) 674 } 675 676 func entityResolverNameForPlanetRequires(ctx context.Context, rep map[string]interface{}) (string, error) { 677 for { 678 var ( 679 m map[string]interface{} 680 val interface{} 681 ok bool 682 ) 683 _ = val 684 m = rep 685 if _, ok = m["name"]; !ok { 686 break 687 } 688 return "findPlanetRequiresByName", nil 689 } 690 return "", fmt.Errorf("%w for PlanetRequires", ErrTypeNotFound) 691 } 692 693 func entityResolverNameForPlanetRequiresNested(ctx context.Context, rep map[string]interface{}) (string, error) { 694 for { 695 var ( 696 m map[string]interface{} 697 val interface{} 698 ok bool 699 ) 700 _ = val 701 m = rep 702 if _, ok = m["name"]; !ok { 703 break 704 } 705 return "findPlanetRequiresNestedByName", nil 706 } 707 return "", fmt.Errorf("%w for PlanetRequiresNested", ErrTypeNotFound) 708 } 709 710 func entityResolverNameForWorld(ctx context.Context, rep map[string]interface{}) (string, error) { 711 for { 712 var ( 713 m map[string]interface{} 714 val interface{} 715 ok bool 716 ) 717 _ = val 718 m = rep 719 if val, ok = m["hello"]; !ok { 720 break 721 } 722 if m, ok = val.(map[string]interface{}); !ok { 723 break 724 } 725 if _, ok = m["name"]; !ok { 726 break 727 } 728 m = rep 729 if _, ok = m["foo"]; !ok { 730 break 731 } 732 return "findWorldByHelloNameAndFoo", nil 733 } 734 return "", fmt.Errorf("%w for World", ErrTypeNotFound) 735 } 736 737 func entityResolverNameForWorldName(ctx context.Context, rep map[string]interface{}) (string, error) { 738 for { 739 var ( 740 m map[string]interface{} 741 val interface{} 742 ok bool 743 ) 744 _ = val 745 m = rep 746 if _, ok = m["name"]; !ok { 747 break 748 } 749 return "findWorldNameByName", nil 750 } 751 return "", fmt.Errorf("%w for WorldName", ErrTypeNotFound) 752 } 753 754 func entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep map[string]interface{}) (string, error) { 755 for { 756 var ( 757 m map[string]interface{} 758 val interface{} 759 ok bool 760 ) 761 _ = val 762 m = rep 763 if val, ok = m["hello"]; !ok { 764 break 765 } 766 if m, ok = val.(map[string]interface{}); !ok { 767 break 768 } 769 if _, ok = m["name"]; !ok { 770 break 771 } 772 m = rep 773 if _, ok = m["foo"]; !ok { 774 break 775 } 776 return "findWorldWithMultipleKeysByHelloNameAndFoo", nil 777 } 778 for { 779 var ( 780 m map[string]interface{} 781 val interface{} 782 ok bool 783 ) 784 _ = val 785 m = rep 786 if _, ok = m["bar"]; !ok { 787 break 788 } 789 return "findWorldWithMultipleKeysByBar", nil 790 } 791 return "", fmt.Errorf("%w for WorldWithMultipleKeys", ErrTypeNotFound) 792 }