This repository has been archived on 2022-09-04. You can view files and clone it, but cannot push or open issues or pull requests.
api/graphql/resolvers/ennoblement.go
2020-06-04 17:45:56 +02:00

74 lines
1.8 KiB
Go

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
}
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
dataloaders := middleware.DataLoadersFromContext(ctx)
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
}
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
dataloaders := middleware.DataLoadersFromContext(ctx)
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
}
if server, ok := getServer(graphql.GetFieldContext(ctx)); ok {
dataloaders := middleware.DataLoadersFromContext(ctx)
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)
}