2020-06-03 15:21:28 +00:00
|
|
|
package resolvers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"github.com/99designs/gqlgen/graphql"
|
|
|
|
"github.com/tribalwarshelp/api/middleware"
|
|
|
|
"github.com/tribalwarshelp/shared/models"
|
|
|
|
)
|
|
|
|
|
|
|
|
func (r *ennoblementResolver) NewOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) {
|
|
|
|
if obj.NewOwner != nil {
|
|
|
|
return obj.NewOwner, nil
|
|
|
|
}
|
|
|
|
|
2020-06-04 15:45:56 +00:00
|
|
|
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
|
2020-06-18 14:44:02 +00:00
|
|
|
dataloaders := middleware.ServerDataLoadersFromContext(ctx)
|
2020-06-03 15:21:28 +00:00
|
|
|
if dataloaders != nil {
|
|
|
|
if dataloader, ok := dataloaders[server]; ok {
|
|
|
|
player, _ := dataloader.PlayerByID.Load(obj.NewOwnerID)
|
|
|
|
if player != nil {
|
|
|
|
return player, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (r *ennoblementResolver) OldOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) {
|
|
|
|
if obj.OldOwner != nil {
|
|
|
|
return obj.OldOwner, nil
|
|
|
|
}
|
|
|
|
|
2020-06-04 15:45:56 +00:00
|
|
|
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
|
2020-06-18 14:44:02 +00:00
|
|
|
dataloaders := middleware.ServerDataLoadersFromContext(ctx)
|
2020-06-03 15:21:28 +00:00
|
|
|
if dataloaders != nil {
|
|
|
|
if dataloader, ok := dataloaders[server]; ok {
|
|
|
|
player, _ := dataloader.PlayerByID.Load(obj.OldOwnerID)
|
|
|
|
if player != nil {
|
|
|
|
return player, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (r *ennoblementResolver) Village(ctx context.Context, obj *models.Ennoblement) (*models.Village, error) {
|
|
|
|
if obj.Village != nil {
|
|
|
|
return obj.Village, nil
|
|
|
|
}
|
|
|
|
|
2020-06-04 15:45:56 +00:00
|
|
|
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
|
2020-06-18 14:44:02 +00:00
|
|
|
dataloaders := middleware.ServerDataLoadersFromContext(ctx)
|
2020-06-03 15:21:28 +00:00
|
|
|
if dataloaders != nil {
|
|
|
|
if dataloader, ok := dataloaders[server]; ok {
|
|
|
|
village, _ := dataloader.VillageByID.Load(obj.VillageID)
|
|
|
|
if village != nil {
|
|
|
|
return village, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (r *queryResolver) Ennoblements(ctx context.Context, server string) ([]*models.Ennoblement, error) {
|
|
|
|
return r.EnnoblementUcase.Fetch(ctx, server)
|
|
|
|
}
|