From 6e814adae697868bc4e77568b12e56a870a19e5f Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sun, 21 Jun 2020 11:30:01 +0200 Subject: [PATCH] rename ennoblement -> liveennoblement, bump github.com/tribalwarshelp/shared --- ennoblement/repository.go | 11 - ennoblement/usecase.go | 11 - go.mod | 3 +- go.sum | 29 +- graphql/generated/generated.go | 758 +++++++++--------- graphql/gqlgen.yml | 4 +- .../{ennoblement.go => live_ennoblement.go} | 10 +- graphql/resolvers/resolver.go | 28 +- ...ement.graphql => live_ennoblement.graphql} | 4 +- {ennoblement => liveennoblement}/constants.go | 2 +- liveennoblement/repository.go | 11 + .../repository/helpers.go | 0 .../repository/line_parser.go | 10 +- .../repository/pg_repository.go | 26 +- liveennoblement/usecase.go | 11 + .../usecase/usecase.go | 8 +- main.go | 18 +- 17 files changed, 460 insertions(+), 484 deletions(-) delete mode 100644 ennoblement/repository.go delete mode 100644 ennoblement/usecase.go rename graphql/resolvers/{ennoblement.go => live_ennoblement.go} (72%) rename graphql/schema/{ennoblement.graphql => live_ennoblement.graphql} (70%) rename {ennoblement => liveennoblement}/constants.go (76%) create mode 100644 liveennoblement/repository.go rename {ennoblement => liveennoblement}/repository/helpers.go (100%) rename {ennoblement => liveennoblement}/repository/line_parser.go (73%) rename {ennoblement => liveennoblement}/repository/pg_repository.go (68%) create mode 100644 liveennoblement/usecase.go rename {ennoblement => liveennoblement}/usecase/usecase.go (56%) diff --git a/ennoblement/repository.go b/ennoblement/repository.go deleted file mode 100644 index d1721b4..0000000 --- a/ennoblement/repository.go +++ /dev/null @@ -1,11 +0,0 @@ -package ennoblement - -import ( - "context" - - "github.com/tribalwarshelp/shared/models" -) - -type Repository interface { - Fetch(ctx context.Context, server string) ([]*models.Ennoblement, error) -} diff --git a/ennoblement/usecase.go b/ennoblement/usecase.go deleted file mode 100644 index b06f40d..0000000 --- a/ennoblement/usecase.go +++ /dev/null @@ -1,11 +0,0 @@ -package ennoblement - -import ( - "context" - - "github.com/tribalwarshelp/shared/models" -) - -type Usecase interface { - Fetch(ctx context.Context, server string) ([]*models.Ennoblement, error) -} diff --git a/go.mod b/go.mod index 3fbe85e..dcdc8e4 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,8 @@ require ( github.com/modern-go/reflect2 v1.0.1 // indirect github.com/pkg/errors v0.9.1 github.com/segmentio/encoding v0.1.14 // indirect - github.com/tribalwarshelp/shared v0.0.0-20200619170430-9ae1e58e717a + github.com/tribalwarshelp/shared v0.0.0-20200621083628-e0fdaa9bdff6 github.com/vektah/gqlparser/v2 v2.0.1 - golang.org/x/net v0.0.0-20200602114024-627f9648deb9 // indirect golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index 0032c9d..a27a806 100644 --- a/go.sum +++ b/go.sum @@ -42,8 +42,6 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/go-chi/chi v3.3.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-pg/pg/v10 v10.0.0-beta.1 h1:GD65aZVx9yR6fxxXdglBlook89oxxg2FYE11TDd9Now= -github.com/go-pg/pg/v10 v10.0.0-beta.1/go.mod h1:JYxBTzIz9dpSAa+bphD1U7A/PBCwiuw1o8pYNDSsQ+4= github.com/go-pg/pg/v10 v10.0.0-beta.2 h1:8tNEJLtOEw5/Df0BLLBOHCiLaYAiu4uhdngjK955MK8= github.com/go-pg/pg/v10 v10.0.0-beta.2/go.mod h1:UAuqGPC94ySi4rJ3DC5e4SY1rlwugZbJA/XoJ/kf5Rw= github.com/go-pg/pg/v9 v9.0.0-beta.14/go.mod h1:T2Sr6bpTCOr2lUqOUMiXLMJqZHSUBKk1LdgSqjwhZfA= @@ -149,8 +147,6 @@ github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/segmentio/encoding v0.1.10/go.mod h1:RWhr02uzMB9gQC1x+MfYxedtmBibb9cZ6Vv9VxRSSbw= -github.com/segmentio/encoding v0.1.12 h1:SwIDXReTDnlYqOcLachzJEczAEihST7Mx7nGlAWCJ3Q= -github.com/segmentio/encoding v0.1.12/go.mod h1:RWhr02uzMB9gQC1x+MfYxedtmBibb9cZ6Vv9VxRSSbw= github.com/segmentio/encoding v0.1.13 h1:izH8HknGvMZvlqplu+kmCmbsW5VEvz4yBsZpdUUKUDM= github.com/segmentio/encoding v0.1.13/go.mod h1:RWhr02uzMB9gQC1x+MfYxedtmBibb9cZ6Vv9VxRSSbw= github.com/segmentio/encoding v0.1.14 h1:BfnglNbNRohLaBLf93uP5/IwKqeWrezXK/g6IRnj75c= @@ -172,20 +168,8 @@ github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo= github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= -github.com/tribalwarshelp/shared v0.0.0-20200618150949-896cd6c98d06 h1:T87o4fice0XTUdAG/tctFCDiuyUGb10bY1hdWvwlrro= -github.com/tribalwarshelp/shared v0.0.0-20200618150949-896cd6c98d06/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619133428-b2cab5452bdc h1:Rx6Mi32rNCp0YZ2KfVDBttPCZ4UMC3WWjyHGMhAbJ/4= -github.com/tribalwarshelp/shared v0.0.0-20200619133428-b2cab5452bdc/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619155726-3476188924c3 h1:vJyTmEdxs6b3BJ3c2QsobHWQgfCQl9ninyVLnLD2yFk= -github.com/tribalwarshelp/shared v0.0.0-20200619155726-3476188924c3/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619160727-e6290ee856b4 h1:3YxJkIVpqXxr8QmHu28sH2z1rMQLlwBQY7Ofiw1HubQ= -github.com/tribalwarshelp/shared v0.0.0-20200619160727-e6290ee856b4/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619160938-496316e74a8b h1:EK/RSHhBB+xalIhBWCpw78POvtNmJQw//w6v7oyo5Pg= -github.com/tribalwarshelp/shared v0.0.0-20200619160938-496316e74a8b/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619163026-783d3512bc3e h1:u54k/lorToKUmhruBLLLtykF4MBC3qu5xrzDTk2WLjY= -github.com/tribalwarshelp/shared v0.0.0-20200619163026-783d3512bc3e/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= -github.com/tribalwarshelp/shared v0.0.0-20200619170430-9ae1e58e717a h1:DvZaFa0q43ME/j9vBQMgI2v23Re/Dx11pxqpXw5NzC4= -github.com/tribalwarshelp/shared v0.0.0-20200619170430-9ae1e58e717a/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= +github.com/tribalwarshelp/shared v0.0.0-20200621083628-e0fdaa9bdff6 h1:HjOXWkYjCl9cs6Jd0VUByJEPKE8TXVz6CHB88f8wPXk= +github.com/tribalwarshelp/shared v0.0.0-20200621083628-e0fdaa9bdff6/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= @@ -202,8 +186,6 @@ github.com/vmihailenco/msgpack/v4 v4.3.5/go.mod h1:DuaveEe48abshDmz5UBKyZ+yDugva github.com/vmihailenco/msgpack/v4 v4.3.7/go.mod h1:Ii+PksJlvFT5ZRcB/4YLAInMIp6a0WOCm0L3BU0aNG4= github.com/vmihailenco/msgpack/v4 v4.3.11 h1:Q47CePddpNGNhk4GCnAx9DDtASi2rasatE0cd26cZoE= github.com/vmihailenco/msgpack/v4 v4.3.11/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/msgpack/v5 v5.0.0-alpha.2 h1:0jVpYJSRJzGY7m21n9V5uIkl7Zre64W8DR1dxEKX2g4= -github.com/vmihailenco/msgpack/v5 v5.0.0-alpha.2/go.mod h1:LDfrk4wJpSFwkzNOJxrCWiSm8c7Iqw/hXNPT2fzQfE8= github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1 h1:d71/KA0LhvkrJ/Ok+Wx9qK7bU8meKA1Hk0jpVI5kJjk= github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1/go.mod h1:xlngVLeyQ/Qi05oQxhQ+oTuqa03RjMwMfk/7/TCs+QI= github.com/vmihailenco/tagparser v0.1.0/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= @@ -218,8 +200,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191029031824-8986dd9e96cf/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191128160524-b544559bb6d1/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 h1:cg5LA/zNPRzIXIWSCxQW10Rvpy94aQh3LT/ShoCpkHw= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM= golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -241,8 +221,6 @@ golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222033325-078779b8f2d8/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2 h1:eDrdRpKgkcCqKZQwyZRyeFZgfqt37SL7Kv3tok06cKE= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -259,9 +237,6 @@ golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602100848-8d3cce7afc34 h1:u6CI7A++8r4SItZHYe2cWeAEndN4p1p+3Oum/Ft2EzM= -golang.org/x/sys v0.0.0-20200602100848-8d3cce7afc34/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980 h1:OjiUf46hAmXblsZdnoSXsEUSKU8r1UEzcL5RVZ4gO9Y= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80= diff --git a/graphql/generated/generated.go b/graphql/generated/generated.go index 0ffa6e5..9a7a7d3 100644 --- a/graphql/generated/generated.go +++ b/graphql/generated/generated.go @@ -36,7 +36,7 @@ type Config struct { } type ResolverRoot interface { - Ennoblement() EnnoblementResolver + LiveEnnoblement() LiveEnnoblementResolver Player() PlayerResolver Query() QueryResolver Server() ServerResolver @@ -82,13 +82,6 @@ type ComplexityRoot struct { Wood func(childComplexity int) int } - Ennoblement struct { - EnnobledAt func(childComplexity int) int - NewOwner func(childComplexity int) int - OldOwner func(childComplexity int) int - Village func(childComplexity int) int - } - LangVersion struct { Host func(childComplexity int) int Name func(childComplexity int) int @@ -101,6 +94,13 @@ type ComplexityRoot struct { Total func(childComplexity int) int } + LiveEnnoblement struct { + EnnobledAt func(childComplexity int) int + NewOwner func(childComplexity int) int + OldOwner func(childComplexity int) int + Village func(childComplexity int) int + } + Player struct { Exist func(childComplexity int) int ID func(childComplexity int) int @@ -125,17 +125,17 @@ type ComplexityRoot struct { } Query struct { - Ennoblements func(childComplexity int, server string) int - LangVersion func(childComplexity int, tag models.LanguageTag) int - LangVersions func(childComplexity int, filter *models.LangVersionFilter) int - Player func(childComplexity int, server string, id int) int - Players func(childComplexity int, server string, filter *models.PlayerFilter) int - Server func(childComplexity int, key string) int - Servers func(childComplexity int, filter *models.ServerFilter) int - Tribe func(childComplexity int, server string, id int) int - Tribes func(childComplexity int, server string, filter *models.TribeFilter) int - Village func(childComplexity int, server string, id int) int - Villages func(childComplexity int, server string, filter *models.VillageFilter) int + LangVersion func(childComplexity int, tag models.LanguageTag) int + LangVersions func(childComplexity int, filter *models.LangVersionFilter) int + LiveEnnoblements func(childComplexity int, server string) int + Player func(childComplexity int, server string, id int) int + Players func(childComplexity int, server string, filter *models.PlayerFilter) int + Server func(childComplexity int, key string) int + Servers func(childComplexity int, filter *models.ServerFilter) int + Tribe func(childComplexity int, server string, id int) int + Tribes func(childComplexity int, server string, filter *models.TribeFilter) int + Village func(childComplexity int, server string, id int) int + Villages func(childComplexity int, server string, filter *models.VillageFilter) int } Server struct { @@ -370,18 +370,18 @@ type ComplexityRoot struct { } } -type EnnoblementResolver interface { - Village(ctx context.Context, obj *models.Ennoblement) (*models.Village, error) - NewOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) - OldOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) +type LiveEnnoblementResolver interface { + Village(ctx context.Context, obj *models.LiveEnnoblement) (*models.Village, error) + NewOwner(ctx context.Context, obj *models.LiveEnnoblement) (*models.Player, error) + OldOwner(ctx context.Context, obj *models.LiveEnnoblement) (*models.Player, error) } type PlayerResolver interface { Tribe(ctx context.Context, obj *models.Player) (*models.Tribe, error) } type QueryResolver interface { - Ennoblements(ctx context.Context, server string) ([]*models.Ennoblement, error) LangVersions(ctx context.Context, filter *models.LangVersionFilter) (*LangVersionsList, error) LangVersion(ctx context.Context, tag models.LanguageTag) (*models.LangVersion, error) + LiveEnnoblements(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) Players(ctx context.Context, server string, filter *models.PlayerFilter) (*PlayersList, error) Player(ctx context.Context, server string, id int) (*models.Player, error) Servers(ctx context.Context, filter *models.ServerFilter) (*ServersList, error) @@ -618,34 +618,6 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.BuildingConfig.Wood(childComplexity), true - case "Ennoblement.ennobledAt": - if e.complexity.Ennoblement.EnnobledAt == nil { - break - } - - return e.complexity.Ennoblement.EnnobledAt(childComplexity), true - - case "Ennoblement.newOwner": - if e.complexity.Ennoblement.NewOwner == nil { - break - } - - return e.complexity.Ennoblement.NewOwner(childComplexity), true - - case "Ennoblement.oldOwner": - if e.complexity.Ennoblement.OldOwner == nil { - break - } - - return e.complexity.Ennoblement.OldOwner(childComplexity), true - - case "Ennoblement.village": - if e.complexity.Ennoblement.Village == nil { - break - } - - return e.complexity.Ennoblement.Village(childComplexity), true - case "LangVersion.host": if e.complexity.LangVersion.Host == nil { break @@ -688,6 +660,34 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.LangVersionsList.Total(childComplexity), true + case "LiveEnnoblement.ennobledAt": + if e.complexity.LiveEnnoblement.EnnobledAt == nil { + break + } + + return e.complexity.LiveEnnoblement.EnnobledAt(childComplexity), true + + case "LiveEnnoblement.newOwner": + if e.complexity.LiveEnnoblement.NewOwner == nil { + break + } + + return e.complexity.LiveEnnoblement.NewOwner(childComplexity), true + + case "LiveEnnoblement.oldOwner": + if e.complexity.LiveEnnoblement.OldOwner == nil { + break + } + + return e.complexity.LiveEnnoblement.OldOwner(childComplexity), true + + case "LiveEnnoblement.village": + if e.complexity.LiveEnnoblement.Village == nil { + break + } + + return e.complexity.LiveEnnoblement.Village(childComplexity), true + case "Player.exist": if e.complexity.Player.Exist == nil { break @@ -807,18 +807,6 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.PlayersList.Total(childComplexity), true - case "Query.ennoblements": - if e.complexity.Query.Ennoblements == nil { - break - } - - args, err := ec.field_Query_ennoblements_args(context.TODO(), rawArgs) - if err != nil { - return 0, false - } - - return e.complexity.Query.Ennoblements(childComplexity, args["server"].(string)), true - case "Query.langVersion": if e.complexity.Query.LangVersion == nil { break @@ -843,6 +831,18 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Query.LangVersions(childComplexity, args["filter"].(*models.LangVersionFilter)), true + case "Query.liveEnnoblements": + if e.complexity.Query.LiveEnnoblements == nil { + break + } + + args, err := ec.field_Query_liveEnnoblements_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Query.LiveEnnoblements(childComplexity, args["server"].(string)), true + case "Query.player": if e.complexity.Query.Player == nil { break @@ -2183,17 +2183,6 @@ type BuildingConfig { forceResolver: Boolean name: String ) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION -`, BuiltIn: false}, - &ast.Source{Name: "schema/ennoblement.graphql", Input: `type Ennoblement { - village: Village @goField(forceResolver: true) - newOwner: Player @goField(forceResolver: true) - oldOwner: Player @goField(forceResolver: true) - ennobledAt: Time! -} - -extend type Query { - ennoblements(server: String!): [Ennoblement!] -} `, BuiltIn: false}, &ast.Source{Name: "schema/lang_version.graphql", Input: `enum LanguageTag { PL @@ -2231,6 +2220,17 @@ extend type Query { langVersions(filter: LangVersionFilter): LangVersionsList! langVersion(tag: LanguageTag!): LangVersion } +`, BuiltIn: false}, + &ast.Source{Name: "schema/live_ennoblement.graphql", Input: `type LiveEnnoblement { + village: Village @goField(forceResolver: true) + newOwner: Player @goField(forceResolver: true) + oldOwner: Player @goField(forceResolver: true) + ennobledAt: Time! +} + +extend type Query { + liveEnnoblements(server: String!): [LiveEnnoblement!] +} `, BuiltIn: false}, &ast.Source{Name: "schema/player.graphql", Input: `type Player { id: Int! @@ -2762,20 +2762,6 @@ func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs return args, nil } -func (ec *executionContext) field_Query_ennoblements_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - var arg0 string - if tmp, ok := rawArgs["server"]; ok { - arg0, err = ec.unmarshalNString2string(ctx, tmp) - if err != nil { - return nil, err - } - } - args["server"] = arg0 - return args, nil -} - func (ec *executionContext) field_Query_langVersion_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { var err error args := map[string]interface{}{} @@ -2804,6 +2790,20 @@ func (ec *executionContext) field_Query_langVersions_args(ctx context.Context, r return args, nil } +func (ec *executionContext) field_Query_liveEnnoblements_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { + var err error + args := map[string]interface{}{} + var arg0 string + if tmp, ok := rawArgs["server"]; ok { + arg0, err = ec.unmarshalNString2string(ctx, tmp) + if err != nil { + return nil, err + } + } + args["server"] = arg0 + return args, nil +} + func (ec *executionContext) field_Query_player_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { var err error args := map[string]interface{}{} @@ -3986,133 +3986,6 @@ func (ec *executionContext) _BuildingConfig_wall(ctx context.Context, field grap return ec.marshalNBuilding2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐBuilding(ctx, field.Selections, res) } -func (ec *executionContext) _Ennoblement_village(ctx context.Context, field graphql.CollectedField, obj *models.Ennoblement) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Ennoblement", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Ennoblement().Village(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*models.Village) - fc.Result = res - return ec.marshalOVillage2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐVillage(ctx, field.Selections, res) -} - -func (ec *executionContext) _Ennoblement_newOwner(ctx context.Context, field graphql.CollectedField, obj *models.Ennoblement) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Ennoblement", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Ennoblement().NewOwner(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*models.Player) - fc.Result = res - return ec.marshalOPlayer2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx, field.Selections, res) -} - -func (ec *executionContext) _Ennoblement_oldOwner(ctx context.Context, field graphql.CollectedField, obj *models.Ennoblement) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Ennoblement", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Ennoblement().OldOwner(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*models.Player) - fc.Result = res - return ec.marshalOPlayer2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx, field.Selections, res) -} - -func (ec *executionContext) _Ennoblement_ennobledAt(ctx context.Context, field graphql.CollectedField, obj *models.Ennoblement) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Ennoblement", - Field: field, - Args: nil, - IsMethod: false, - } - - ctx = graphql.WithFieldContext(ctx, fc) - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return obj.EnnobledAt, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) -} - func (ec *executionContext) _LangVersion_tag(ctx context.Context, field graphql.CollectedField, obj *models.LangVersion) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { @@ -4314,6 +4187,133 @@ func (ec *executionContext) _LangVersionsList_total(ctx context.Context, field g return ec.marshalNInt2int(ctx, field.Selections, res) } +func (ec *executionContext) _LiveEnnoblement_village(ctx context.Context, field graphql.CollectedField, obj *models.LiveEnnoblement) (ret graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + fc := &graphql.FieldContext{ + Object: "LiveEnnoblement", + Field: field, + Args: nil, + IsMethod: true, + } + + ctx = graphql.WithFieldContext(ctx, fc) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.LiveEnnoblement().Village(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*models.Village) + fc.Result = res + return ec.marshalOVillage2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐVillage(ctx, field.Selections, res) +} + +func (ec *executionContext) _LiveEnnoblement_newOwner(ctx context.Context, field graphql.CollectedField, obj *models.LiveEnnoblement) (ret graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + fc := &graphql.FieldContext{ + Object: "LiveEnnoblement", + Field: field, + Args: nil, + IsMethod: true, + } + + ctx = graphql.WithFieldContext(ctx, fc) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.LiveEnnoblement().NewOwner(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*models.Player) + fc.Result = res + return ec.marshalOPlayer2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx, field.Selections, res) +} + +func (ec *executionContext) _LiveEnnoblement_oldOwner(ctx context.Context, field graphql.CollectedField, obj *models.LiveEnnoblement) (ret graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + fc := &graphql.FieldContext{ + Object: "LiveEnnoblement", + Field: field, + Args: nil, + IsMethod: true, + } + + ctx = graphql.WithFieldContext(ctx, fc) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.LiveEnnoblement().OldOwner(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*models.Player) + fc.Result = res + return ec.marshalOPlayer2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx, field.Selections, res) +} + +func (ec *executionContext) _LiveEnnoblement_ennobledAt(ctx context.Context, field graphql.CollectedField, obj *models.LiveEnnoblement) (ret graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + fc := &graphql.FieldContext{ + Object: "LiveEnnoblement", + Field: field, + Args: nil, + IsMethod: false, + } + + ctx = graphql.WithFieldContext(ctx, fc) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.EnnobledAt, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(time.Time) + fc.Result = res + return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) +} + func (ec *executionContext) _Player_id(ctx context.Context, field graphql.CollectedField, obj *models.Player) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { @@ -4886,44 +4886,6 @@ func (ec *executionContext) _PlayersList_total(ctx context.Context, field graphq return ec.marshalNInt2int(ctx, field.Selections, res) } -func (ec *executionContext) _Query_ennoblements(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - fc := &graphql.FieldContext{ - Object: "Query", - Field: field, - Args: nil, - IsMethod: true, - } - - ctx = graphql.WithFieldContext(ctx, fc) - rawArgs := field.ArgumentMap(ec.Variables) - args, err := ec.field_Query_ennoblements_args(ctx, rawArgs) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - fc.Args = args - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().Ennoblements(rctx, args["server"].(string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.([]*models.Ennoblement) - fc.Result = res - return ec.marshalOEnnoblement2ᚕᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐEnnoblementᚄ(ctx, field.Selections, res) -} - func (ec *executionContext) _Query_langVersions(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { @@ -5003,6 +4965,44 @@ func (ec *executionContext) _Query_langVersion(ctx context.Context, field graphq return ec.marshalOLangVersion2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLangVersion(ctx, field.Selections, res) } +func (ec *executionContext) _Query_liveEnnoblements(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + fc := &graphql.FieldContext{ + Object: "Query", + Field: field, + Args: nil, + IsMethod: true, + } + + ctx = graphql.WithFieldContext(ctx, fc) + rawArgs := field.ArgumentMap(ec.Variables) + args, err := ec.field_Query_liveEnnoblements_args(ctx, rawArgs) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + fc.Args = args + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().LiveEnnoblements(rctx, args["server"].(string)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]*models.LiveEnnoblement) + fc.Result = res + return ec.marshalOLiveEnnoblement2ᚕᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLiveEnnoblementᚄ(ctx, field.Selections, res) +} + func (ec *executionContext) _Query_players(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { defer func() { if r := recover(); r != nil { @@ -13405,66 +13405,6 @@ func (ec *executionContext) _BuildingConfig(ctx context.Context, sel ast.Selecti return out } -var ennoblementImplementors = []string{"Ennoblement"} - -func (ec *executionContext) _Ennoblement(ctx context.Context, sel ast.SelectionSet, obj *models.Ennoblement) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, ennoblementImplementors) - - out := graphql.NewFieldSet(fields) - var invalids uint32 - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Ennoblement") - case "village": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Ennoblement_village(ctx, field, obj) - return res - }) - case "newOwner": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Ennoblement_newOwner(ctx, field, obj) - return res - }) - case "oldOwner": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Ennoblement_oldOwner(ctx, field, obj) - return res - }) - case "ennobledAt": - out.Values[i] = ec._Ennoblement_ennobledAt(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch() - if invalids > 0 { - return graphql.Null - } - return out -} - var langVersionImplementors = []string{"LangVersion"} func (ec *executionContext) _LangVersion(ctx context.Context, sel ast.SelectionSet, obj *models.LangVersion) graphql.Marshaler { @@ -13536,6 +13476,66 @@ func (ec *executionContext) _LangVersionsList(ctx context.Context, sel ast.Selec return out } +var liveEnnoblementImplementors = []string{"LiveEnnoblement"} + +func (ec *executionContext) _LiveEnnoblement(ctx context.Context, sel ast.SelectionSet, obj *models.LiveEnnoblement) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, liveEnnoblementImplementors) + + out := graphql.NewFieldSet(fields) + var invalids uint32 + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LiveEnnoblement") + case "village": + field := field + out.Concurrently(i, func() (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._LiveEnnoblement_village(ctx, field, obj) + return res + }) + case "newOwner": + field := field + out.Concurrently(i, func() (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._LiveEnnoblement_newOwner(ctx, field, obj) + return res + }) + case "oldOwner": + field := field + out.Concurrently(i, func() (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._LiveEnnoblement_oldOwner(ctx, field, obj) + return res + }) + case "ennobledAt": + out.Values[i] = ec._LiveEnnoblement_ennobledAt(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&invalids, 1) + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch() + if invalids > 0 { + return graphql.Null + } + return out +} + var playerImplementors = []string{"Player"} func (ec *executionContext) _Player(ctx context.Context, sel ast.SelectionSet, obj *models.Player) graphql.Marshaler { @@ -13683,17 +13683,6 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr switch field.Name { case "__typename": out.Values[i] = graphql.MarshalString("Query") - case "ennoblements": - field := field - out.Concurrently(i, func() (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._Query_ennoblements(ctx, field) - return res - }) case "langVersions": field := field out.Concurrently(i, func() (res graphql.Marshaler) { @@ -13719,6 +13708,17 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr res = ec._Query_langVersion(ctx, field) return res }) + case "liveEnnoblements": + field := field + out.Concurrently(i, func() (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Query_liveEnnoblements(ctx, field) + return res + }) case "players": field := field out.Concurrently(i, func() (res graphql.Marshaler) { @@ -15440,20 +15440,6 @@ func (ec *executionContext) marshalNBuildingConfig2githubᚗcomᚋtribalwarshelp return ec._BuildingConfig(ctx, sel, &v) } -func (ec *executionContext) marshalNEnnoblement2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐEnnoblement(ctx context.Context, sel ast.SelectionSet, v models.Ennoblement) graphql.Marshaler { - return ec._Ennoblement(ctx, sel, &v) -} - -func (ec *executionContext) marshalNEnnoblement2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐEnnoblement(ctx context.Context, sel ast.SelectionSet, v *models.Ennoblement) graphql.Marshaler { - if v == nil { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - return ec._Ennoblement(ctx, sel, v) -} - func (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v interface{}) (float64, error) { return graphql.UnmarshalFloat(v) } @@ -15519,6 +15505,20 @@ func (ec *executionContext) marshalNLanguageTag2githubᚗcomᚋtribalwarshelpᚋ return v } +func (ec *executionContext) marshalNLiveEnnoblement2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLiveEnnoblement(ctx context.Context, sel ast.SelectionSet, v models.LiveEnnoblement) graphql.Marshaler { + return ec._LiveEnnoblement(ctx, sel, &v) +} + +func (ec *executionContext) marshalNLiveEnnoblement2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLiveEnnoblement(ctx context.Context, sel ast.SelectionSet, v *models.LiveEnnoblement) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + return ec._LiveEnnoblement(ctx, sel, v) +} + func (ec *executionContext) marshalNPlayer2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx context.Context, sel ast.SelectionSet, v models.Player) graphql.Marshaler { return ec._Player(ctx, sel, &v) } @@ -15999,46 +15999,6 @@ func (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast return ec.marshalOBoolean2bool(ctx, sel, *v) } -func (ec *executionContext) marshalOEnnoblement2ᚕᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐEnnoblementᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.Ennoblement) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNEnnoblement2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐEnnoblement(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - return ret -} - func (ec *executionContext) unmarshalOInt2int(ctx context.Context, v interface{}) (int, error) { return graphql.UnmarshalInt(v) } @@ -16202,6 +16162,46 @@ func (ec *executionContext) marshalOLanguageTag2ᚕgithubᚗcomᚋtribalwarshelp return ret } +func (ec *executionContext) marshalOLiveEnnoblement2ᚕᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLiveEnnoblementᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.LiveEnnoblement) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNLiveEnnoblement2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐLiveEnnoblement(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + return ret +} + func (ec *executionContext) marshalOPlayer2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayer(ctx context.Context, sel ast.SelectionSet, v models.Player) graphql.Marshaler { return ec._Player(ctx, sel, &v) } diff --git a/graphql/gqlgen.yml b/graphql/gqlgen.yml index 8e5dec1..cb8dea0 100644 --- a/graphql/gqlgen.yml +++ b/graphql/gqlgen.yml @@ -72,5 +72,5 @@ models: model: github.com/tribalwarshelp/shared/models.Village VillageFilter: model: github.com/tribalwarshelp/shared/models.VillageFilter - Ennoblement: - model: github.com/tribalwarshelp/shared/models.Ennoblement + LiveEnnoblement: + model: github.com/tribalwarshelp/shared/models.LiveEnnoblement diff --git a/graphql/resolvers/ennoblement.go b/graphql/resolvers/live_ennoblement.go similarity index 72% rename from graphql/resolvers/ennoblement.go rename to graphql/resolvers/live_ennoblement.go index c192e7a..a1ff979 100644 --- a/graphql/resolvers/ennoblement.go +++ b/graphql/resolvers/live_ennoblement.go @@ -8,7 +8,7 @@ import ( "github.com/tribalwarshelp/shared/models" ) -func (r *ennoblementResolver) NewOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) { +func (r *liveEnnoblementResolver) NewOwner(ctx context.Context, obj *models.LiveEnnoblement) (*models.Player, error) { if obj.NewOwner != nil { return obj.NewOwner, nil } @@ -28,7 +28,7 @@ func (r *ennoblementResolver) NewOwner(ctx context.Context, obj *models.Ennoblem return nil, nil } -func (r *ennoblementResolver) OldOwner(ctx context.Context, obj *models.Ennoblement) (*models.Player, error) { +func (r *liveEnnoblementResolver) OldOwner(ctx context.Context, obj *models.LiveEnnoblement) (*models.Player, error) { if obj.OldOwner != nil { return obj.OldOwner, nil } @@ -48,7 +48,7 @@ func (r *ennoblementResolver) OldOwner(ctx context.Context, obj *models.Ennoblem return nil, nil } -func (r *ennoblementResolver) Village(ctx context.Context, obj *models.Ennoblement) (*models.Village, error) { +func (r *liveEnnoblementResolver) Village(ctx context.Context, obj *models.LiveEnnoblement) (*models.Village, error) { if obj.Village != nil { return obj.Village, nil } @@ -68,6 +68,6 @@ func (r *ennoblementResolver) Village(ctx context.Context, obj *models.Ennobleme return nil, nil } -func (r *queryResolver) Ennoblements(ctx context.Context, server string) ([]*models.Ennoblement, error) { - return r.EnnoblementUcase.Fetch(ctx, server) +func (r *queryResolver) LiveEnnoblements(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) { + return r.LiveEnnoblementUcase.Fetch(ctx, server) } diff --git a/graphql/resolvers/resolver.go b/graphql/resolvers/resolver.go index 97fe449..bed7b05 100644 --- a/graphql/resolvers/resolver.go +++ b/graphql/resolvers/resolver.go @@ -1,9 +1,9 @@ package resolvers import ( - "github.com/tribalwarshelp/api/ennoblement" "github.com/tribalwarshelp/api/graphql/generated" "github.com/tribalwarshelp/api/langversion" + "github.com/tribalwarshelp/api/liveennoblement" "github.com/tribalwarshelp/api/player" "github.com/tribalwarshelp/api/server" "github.com/tribalwarshelp/api/tribe" @@ -11,23 +11,25 @@ import ( ) type Resolver struct { - LangVersionUcase langversion.Usecase - ServerUcase server.Usecase - PlayerUcase player.Usecase - TribeUcase tribe.Usecase - VillageUcase village.Usecase - EnnoblementUcase ennoblement.Usecase + LangVersionUcase langversion.Usecase + ServerUcase server.Usecase + PlayerUcase player.Usecase + TribeUcase tribe.Usecase + VillageUcase village.Usecase + LiveEnnoblementUcase liveennoblement.Usecase } // Query returns generated.QueryResolver implementation. -func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} } -func (r *Resolver) Player() generated.PlayerResolver { return &playerResolver{r} } -func (r *Resolver) Village() generated.VillageResolver { return &villageResolver{r} } -func (r *Resolver) Ennoblement() generated.EnnoblementResolver { return &ennoblementResolver{r} } -func (r *Resolver) Server() generated.ServerResolver { return &serverResolver{r} } +func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} } +func (r *Resolver) Player() generated.PlayerResolver { return &playerResolver{r} } +func (r *Resolver) Village() generated.VillageResolver { return &villageResolver{r} } +func (r *Resolver) LiveEnnoblement() generated.LiveEnnoblementResolver { + return &liveEnnoblementResolver{r} +} +func (r *Resolver) Server() generated.ServerResolver { return &serverResolver{r} } type queryResolver struct{ *Resolver } type playerResolver struct{ *Resolver } type villageResolver struct{ *Resolver } -type ennoblementResolver struct{ *Resolver } +type liveEnnoblementResolver struct{ *Resolver } type serverResolver struct{ *Resolver } diff --git a/graphql/schema/ennoblement.graphql b/graphql/schema/live_ennoblement.graphql similarity index 70% rename from graphql/schema/ennoblement.graphql rename to graphql/schema/live_ennoblement.graphql index 4105d55..d52c1d9 100644 --- a/graphql/schema/ennoblement.graphql +++ b/graphql/schema/live_ennoblement.graphql @@ -1,4 +1,4 @@ -type Ennoblement { +type LiveEnnoblement { village: Village @goField(forceResolver: true) newOwner: Player @goField(forceResolver: true) oldOwner: Player @goField(forceResolver: true) @@ -6,5 +6,5 @@ type Ennoblement { } extend type Query { - ennoblements(server: String!): [Ennoblement!] + liveEnnoblements(server: String!): [LiveEnnoblement!] } diff --git a/ennoblement/constants.go b/liveennoblement/constants.go similarity index 76% rename from ennoblement/constants.go rename to liveennoblement/constants.go index 88e0c10..3e9bdbf 100644 --- a/ennoblement/constants.go +++ b/liveennoblement/constants.go @@ -1,4 +1,4 @@ -package ennoblement +package liveennoblement const ( EndpointGetConquer = "/interface.php?func=get_conquer&since=%d" diff --git a/liveennoblement/repository.go b/liveennoblement/repository.go new file mode 100644 index 0000000..b42e3b0 --- /dev/null +++ b/liveennoblement/repository.go @@ -0,0 +1,11 @@ +package liveennoblement + +import ( + "context" + + "github.com/tribalwarshelp/shared/models" +) + +type Repository interface { + Fetch(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) +} diff --git a/ennoblement/repository/helpers.go b/liveennoblement/repository/helpers.go similarity index 100% rename from ennoblement/repository/helpers.go rename to liveennoblement/repository/helpers.go diff --git a/ennoblement/repository/line_parser.go b/liveennoblement/repository/line_parser.go similarity index 73% rename from ennoblement/repository/line_parser.go rename to liveennoblement/repository/line_parser.go index 3fa3189..3cc5099 100644 --- a/ennoblement/repository/line_parser.go +++ b/liveennoblement/repository/line_parser.go @@ -22,15 +22,15 @@ func newLineParser(timezone string) (*lineParser, error) { nil } -func (parser *lineParser) parse(line []string) (*models.Ennoblement, error) { +func (parser *lineParser) parse(line []string) (*models.LiveEnnoblement, error) { if len(line) != 4 { return nil, fmt.Errorf("Invalid line format (should be village_id,timestamp,new_owner,old_owner)") } var err error - e := &models.Ennoblement{} + e := &models.LiveEnnoblement{} e.VillageID, err = strconv.Atoi(line[0]) if err != nil { - return nil, errors.Wrap(err, "*models.Ennoblement.VillageID") + return nil, errors.Wrap(err, "*models.LiveEnnoblement.VillageID") } timestamp, err := strconv.Atoi(line[1]) if err != nil { @@ -39,11 +39,11 @@ func (parser *lineParser) parse(line []string) (*models.Ennoblement, error) { e.EnnobledAt = time.Unix(int64(timestamp), 0).In(parser.location) e.NewOwnerID, err = strconv.Atoi(line[2]) if err != nil { - return nil, errors.Wrap(err, "*models.Ennoblement.NewOwnerID") + return nil, errors.Wrap(err, "*models.LiveEnnoblement.NewOwnerID") } e.OldOwnerID, err = strconv.Atoi(line[3]) if err != nil { - return nil, errors.Wrap(err, "*models.Ennoblement.OldOwnerID") + return nil, errors.Wrap(err, "*models.LiveEnnoblement.OldOwnerID") } return e, nil diff --git a/ennoblement/repository/pg_repository.go b/liveennoblement/repository/pg_repository.go similarity index 68% rename from ennoblement/repository/pg_repository.go rename to liveennoblement/repository/pg_repository.go index 1343a57..ffe5873 100644 --- a/ennoblement/repository/pg_repository.go +++ b/liveennoblement/repository/pg_repository.go @@ -8,7 +8,7 @@ import ( "github.com/go-redis/redis/v8" - "github.com/tribalwarshelp/api/ennoblement" + "github.com/tribalwarshelp/api/liveennoblement" "github.com/go-pg/pg/v10" "github.com/pkg/errors" @@ -25,13 +25,13 @@ type pgRepository struct { cache redis.UniversalClient } -func NewPGRepository(db *pg.DB, cache redis.UniversalClient) ennoblement.Repository { +func NewPGRepository(db *pg.DB, cache redis.UniversalClient) liveennoblement.Repository { return &pgRepository{db, cache} } -func (repo *pgRepository) Fetch(ctx context.Context, server string) ([]*models.Ennoblement, error) { - if ennoblements, loaded := repo.loadEnnoblementsFromCache(server); loaded { - return ennoblements, nil +func (repo *pgRepository) Fetch(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) { + if liveennoblements, loaded := repo.loadLiveEnnoblementsFromCache(server); loaded { + return liveennoblements, nil } s := &models.Server{} @@ -48,13 +48,13 @@ func (repo *pgRepository) Fetch(ctx context.Context, server string) ([]*models.E } url := "https://" + s.Key + "." + s.LangVersion.Host + - fmt.Sprintf(ennoblement.EndpointGetConquer, time.Now().Add(-1*time.Hour).Unix()) + fmt.Sprintf(liveennoblement.EndpointGetConquer, time.Now().Add(-1*time.Hour).Unix()) lines, err := getCSVData(url) if err != nil { return nil, errors.Wrap(err, "Cannot fetch ennoblements") } - e := []*models.Ennoblement{} + e := []*models.LiveEnnoblement{} lineParser, err := newLineParser(s.LangVersion.Timezone) if err != nil { return nil, err @@ -67,30 +67,30 @@ func (repo *pgRepository) Fetch(ctx context.Context, server string) ([]*models.E e = append(e, ennoblement) } - go repo.cacheEnnoblements(server, e) + go repo.cacheLiveEnnoblements(server, e) return e, nil } -func (repo *pgRepository) loadEnnoblementsFromCache(server string) ([]*models.Ennoblement, bool) { +func (repo *pgRepository) loadLiveEnnoblementsFromCache(server string) ([]*models.LiveEnnoblement, bool) { ennoblementsJSON, err := repo.cache.Get(context.Background(), fmt.Sprintf(cacheKey, server)).Result() if err != nil || ennoblementsJSON == "" { return nil, false } - ennoblements := []*models.Ennoblement{} + ennoblements := []*models.LiveEnnoblement{} if json.Unmarshal([]byte(ennoblementsJSON), &ennoblements) != nil { return nil, false } return ennoblements, true } -func (repo *pgRepository) cacheEnnoblements(server string, ennoblements []*models.Ennoblement) error { +func (repo *pgRepository) cacheLiveEnnoblements(server string, ennoblements []*models.LiveEnnoblement) error { ennoblementsJSON, err := json.Marshal(&ennoblements) if err != nil { - return errors.Wrap(err, "cacheEnnoblements") + return errors.Wrap(err, "cacheLiveEnnoblements") } if err := repo.cache.Set(context.Background(), fmt.Sprintf(cacheKey, server), ennoblementsJSON, expiration).Err(); err != nil { - return errors.Wrap(err, "cacheEnnoblements") + return errors.Wrap(err, "cacheLiveEnnoblements") } return nil } diff --git a/liveennoblement/usecase.go b/liveennoblement/usecase.go new file mode 100644 index 0000000..36412b5 --- /dev/null +++ b/liveennoblement/usecase.go @@ -0,0 +1,11 @@ +package liveennoblement + +import ( + "context" + + "github.com/tribalwarshelp/shared/models" +) + +type Usecase interface { + Fetch(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) +} diff --git a/ennoblement/usecase/usecase.go b/liveennoblement/usecase/usecase.go similarity index 56% rename from ennoblement/usecase/usecase.go rename to liveennoblement/usecase/usecase.go index e88ccf5..c776c62 100644 --- a/ennoblement/usecase/usecase.go +++ b/liveennoblement/usecase/usecase.go @@ -3,20 +3,20 @@ package usecase import ( "context" - "github.com/tribalwarshelp/api/ennoblement" + "github.com/tribalwarshelp/api/liveennoblement" "github.com/tribalwarshelp/shared/models" ) type usecase struct { - repo ennoblement.Repository + repo liveennoblement.Repository } -func New(repo ennoblement.Repository) ennoblement.Usecase { +func New(repo liveennoblement.Repository) liveennoblement.Usecase { return &usecase{ repo, } } -func (ucase *usecase) Fetch(ctx context.Context, server string) ([]*models.Ennoblement, error) { +func (ucase *usecase) Fetch(ctx context.Context, server string) ([]*models.LiveEnnoblement, error) { return ucase.repo.Fetch(ctx, server) } diff --git a/main.go b/main.go index d4e5194..86378a1 100644 --- a/main.go +++ b/main.go @@ -17,10 +17,10 @@ import ( "github.com/tribalwarshelp/api/graphql/dataloaders" - ennoblementrepo "github.com/tribalwarshelp/api/ennoblement/repository" - ennoblementucase "github.com/tribalwarshelp/api/ennoblement/usecase" langversionrepo "github.com/tribalwarshelp/api/langversion/repository" langversionucase "github.com/tribalwarshelp/api/langversion/usecase" + liveennoblementrepo "github.com/tribalwarshelp/api/liveennoblement/repository" + liveennoblementucase "github.com/tribalwarshelp/api/liveennoblement/usecase" "github.com/tribalwarshelp/api/middleware" playerrepo "github.com/tribalwarshelp/api/player/repository" playerucase "github.com/tribalwarshelp/api/player/usecase" @@ -83,7 +83,7 @@ func main() { tribeRepo := triberepo.NewPGRepository(db) playerRepo := playerrepo.NewPGRepository(db) villageRepo := villagerepo.NewPGRepository(db) - ennoblementRepo := ennoblementrepo.NewPGRepository(db, redisClient) + liveennoblementRepo := liveennoblementrepo.NewPGRepository(db, redisClient) router := gin.Default() v1 := router.Group("") @@ -96,12 +96,12 @@ func main() { httpdelivery.Attach(httpdelivery.Config{ RouterGroup: v1, Resolver: &resolvers.Resolver{ - LangVersionUcase: langversionucase.New(langversionRepo), - ServerUcase: serverucase.New(serverRepo), - TribeUcase: tribeucase.New(tribeRepo), - PlayerUcase: playerucase.New(playerRepo), - VillageUcase: villageucase.New(villageRepo), - EnnoblementUcase: ennoblementucase.New(ennoblementRepo), + LangVersionUcase: langversionucase.New(langversionRepo), + ServerUcase: serverucase.New(serverRepo), + TribeUcase: tribeucase.New(tribeRepo), + PlayerUcase: playerucase.New(playerRepo), + VillageUcase: villageucase.New(villageRepo), + LiveEnnoblementUcase: liveennoblementucase.New(liveennoblementRepo), }, })