diff --git a/dailytribestats/repository/pg_repository.go b/dailytribestats/repository/pg_repository.go index a5d575f..36a7cc7 100644 --- a/dailytribestats/repository/pg_repository.go +++ b/dailytribestats/repository/pg_repository.go @@ -22,7 +22,7 @@ func NewPGRepository(db *pg.DB) dailytribestats.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg dailytribestats.FetchConfig) ([]*twmodel.DailyTribeStats, int, error) { var err error - data := []*twmodel.DailyTribeStats{} + var data []*twmodel.DailyTribeStats total := 0 query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). diff --git a/ennoblement/repository/pg_repository.go b/ennoblement/repository/pg_repository.go index 8f1141b..0b95240 100644 --- a/ennoblement/repository/pg_repository.go +++ b/ennoblement/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) ennoblement.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg ennoblement.FetchConfig) ([]*twmodel.Ennoblement, int, error) { var err error total := 0 - data := []*twmodel.Ennoblement{} + var data []*twmodel.Ennoblement query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). Model(&data). diff --git a/graphql/dataloaders/data_loaders.go b/graphql/dataloaders/data_loaders.go index efa0907..dc721cc 100644 --- a/graphql/dataloaders/data_loaders.go +++ b/graphql/dataloaders/data_loaders.go @@ -32,7 +32,7 @@ func NewDataLoaders(cfg Config) *DataLoaders { wait: wait, maxBatch: 0, fetch: func(keys []string) ([]*twmodel.Version, []error) { - codes := []twmodel.VersionCode{} + var codes []twmodel.VersionCode for _, code := range keys { codes = append(codes, twmodel.VersionCode(code)) } diff --git a/graphql/delivery/http/handler.go b/graphql/delivery/http/handler.go index 50dfced..ec3ebcb 100644 --- a/graphql/delivery/http/handler.go +++ b/graphql/delivery/http/handler.go @@ -5,9 +5,10 @@ import ( "fmt" "github.com/99designs/gqlgen/graphql" "github.com/pkg/errors" + "time" + "github.com/tribalwarshelp/api/graphql/querycomplexity" "github.com/tribalwarshelp/api/middleware" - "time" "github.com/99designs/gqlgen/graphql/handler" "github.com/99designs/gqlgen/graphql/handler/extension" @@ -15,6 +16,7 @@ import ( "github.com/99designs/gqlgen/graphql/handler/transport" "github.com/99designs/gqlgen/graphql/playground" "github.com/gin-gonic/gin" + "github.com/tribalwarshelp/api/graphql/generated" "github.com/tribalwarshelp/api/graphql/resolvers" ) diff --git a/graphql/resolvers/resolver.go b/graphql/resolvers/resolver.go index 3bc4a7f..4989337 100644 --- a/graphql/resolvers/resolver.go +++ b/graphql/resolvers/resolver.go @@ -61,13 +61,10 @@ func (r *Resolver) DailyTribeStatsRecord() generated.DailyTribeStatsRecordResolv type queryResolver struct{ *Resolver } type playerResolver struct{ *Resolver } type villageResolver struct{ *Resolver } -type tribeResolver struct{ *Resolver } type ennoblementResolver struct{ *Resolver } type serverResolver struct{ *Resolver } type playerHistoryRecordResolver struct{ *Resolver } type tribeHistoryRecordResolver struct{ *Resolver } -type serverStatsRecordResolver struct{ *Resolver } type tribeChangeRecordResolver struct{ *Resolver } type dailyPlayerStatsRecordResolver struct{ *Resolver } type dailyTribeStatsRecordResolver struct{ *Resolver } -type versionResolver struct{ *Resolver } diff --git a/middleware/limit_whitelist.go b/middleware/limit_whitelist.go index 2d71027..7d7a7d0 100644 --- a/middleware/limit_whitelist.go +++ b/middleware/limit_whitelist.go @@ -10,13 +10,13 @@ import ( var limitWhitelistContextKey ContextKey = "limitWhitelist" -type NetworksAndIps struct { +type networksAndIPs struct { Networks []*net.IPNet - Ips []net.IP + IPs []net.IP } -func (networksAndIps NetworksAndIps) Contains(ip net.IP) bool { - for _, whitelistedIP := range networksAndIps.Ips { +func (networksAndIps networksAndIPs) Contains(ip net.IP) bool { + for _, whitelistedIP := range networksAndIps.IPs { if whitelistedIP.Equal(ip) { return true } @@ -33,9 +33,9 @@ type LimitWhitelistConfig struct { IPAddresses []string } -func (cfg LimitWhitelistConfig) GetNetworksAndIps() NetworksAndIps { - networks := []*net.IPNet{} - ips := []net.IP{} +func (cfg LimitWhitelistConfig) getNetworksAndIps() networksAndIPs { + var networks []*net.IPNet + var ips []net.IP for _, ip := range cfg.IPAddresses { _, network, err := net.ParseCIDR(ip) if err == nil { @@ -48,14 +48,14 @@ func (cfg LimitWhitelistConfig) GetNetworksAndIps() NetworksAndIps { ips = append(ips, parsed) } } - return NetworksAndIps{ + return networksAndIPs{ Networks: networks, - Ips: ips, + IPs: ips, } } func LimitWhitelist(cfg LimitWhitelistConfig) gin.HandlerFunc { - networksAndIps := cfg.GetNetworksAndIps() + networksAndIps := cfg.getNetworksAndIps() return func(c *gin.Context) { ctx := c.Request.Context() clientIP := net.ParseIP(c.ClientIP()) diff --git a/player/repository/pg_repository.go b/player/repository/pg_repository.go index 247bd44..b62d741 100644 --- a/player/repository/pg_repository.go +++ b/player/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) player.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg player.FetchConfig) ([]*twmodel.Player, int, error) { var err error - data := []*twmodel.Player{} + var data []*twmodel.Player total := 0 query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). @@ -60,11 +60,11 @@ type fetchPlayerServersQueryResult struct { } func (repo *pgRepository) FetchNameChanges(ctx context.Context, code twmodel.VersionCode, playerID ...int) (map[int][]*twmodel.PlayerNameChange, error) { - data := []*twmodel.PlayerNameChange{} + var data []*twmodel.PlayerNameChange if err := repo.Model(&data). Context(ctx). Where("version_code = ?", code). - Where("player_id IN (?)", pg.In(playerID)). + Where(gopgutil.BuildConditionArray("player_id"), pg.Array(playerID)). Order("change_date ASC"). Select(); err != nil && err != pg.ErrNoRows { return nil, errors.New("Internal server error") @@ -78,14 +78,14 @@ func (repo *pgRepository) FetchNameChanges(ctx context.Context, code twmodel.Ver } func (repo *pgRepository) FetchPlayerServers(ctx context.Context, code twmodel.VersionCode, playerID ...int) (map[int][]string, error) { - data := []*fetchPlayerServersQueryResult{} + var data []*fetchPlayerServersQueryResult if err := repo.Model(&twmodel.PlayerToServer{}). Context(ctx). Column("player_id"). ColumnExpr("array_agg(server_key) as servers"). Relation("Server._"). Where("version_code = ?", code). - Where("player_id IN (?)", pg.In(playerID)). + Where(gopgutil.BuildConditionArray("player_id"), pg.Array(playerID)). Group("player_id"). Select(&data); err != nil && err != pg.ErrNoRows { return nil, errors.New("Internal server error") @@ -99,7 +99,7 @@ func (repo *pgRepository) FetchPlayerServers(ctx context.Context, code twmodel.V } func (repo *pgRepository) SearchPlayer(ctx context.Context, cfg player.SearchPlayerConfig) ([]*twmodel.FoundPlayer, int, error) { - servers := []*twmodel.Server{} + var servers []*twmodel.Server if err := repo. Model(&servers). Context(ctx). @@ -110,7 +110,7 @@ func (repo *pgRepository) SearchPlayer(ctx context.Context, cfg player.SearchPla } var query *orm.Query - res := []*twmodel.FoundPlayer{} + var res []*twmodel.FoundPlayer whereClause := "player.id = ?1 OR player.name ILIKE ?0" if cfg.ID <= 0 { whereClause = "player.name ILIKE ?0" diff --git a/playerhistory/repository/pg_repository.go b/playerhistory/repository/pg_repository.go index ec6cfd5..028c2e8 100644 --- a/playerhistory/repository/pg_repository.go +++ b/playerhistory/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) playerhistory.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg playerhistory.FetchConfig) ([]*twmodel.PlayerHistory, int, error) { var err error total := 0 - data := []*twmodel.PlayerHistory{} + var data []*twmodel.PlayerHistory query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). Model(&data). diff --git a/server/repository/pg_repository.go b/server/repository/pg_repository.go index 31b4e85..9560b94 100644 --- a/server/repository/pg_repository.go +++ b/server/repository/pg_repository.go @@ -28,7 +28,7 @@ func NewPGRepository(db *pg.DB) (server.Repository, error) { func (repo *pgRepository) Fetch(ctx context.Context, cfg server.FetchConfig) ([]*twmodel.Server, int, error) { var err error total := 0 - data := []*twmodel.Server{} + var data []*twmodel.Server query := repo. Model(&data). Context(ctx). diff --git a/servermap/delivery/http/http_delivery.go b/servermap/delivery/http/http_delivery.go index 5178fc6..cca165c 100644 --- a/servermap/delivery/http/http_delivery.go +++ b/servermap/delivery/http/http_delivery.go @@ -75,7 +75,7 @@ func (h *handler) mapHandler(c *gin.Context) { centerX, _ := strconv.Atoi(c.Query("centerX")) centerY, _ := strconv.Atoi(c.Query("centerY")) - scale, _ := strconv.ParseFloat((c.Query("scale")), 32) + scale, _ := strconv.ParseFloat(c.Query("scale"), 32) if scale > maxScale { scale = maxScale } diff --git a/servermap/usecase/map_usecase.go b/servermap/usecase/map_usecase.go index c3c0824..b367361 100644 --- a/servermap/usecase/map_usecase.go +++ b/servermap/usecase/map_usecase.go @@ -43,7 +43,7 @@ func (ucase *usecase) GetMarkers(ctx context.Context, cfg servermap.GetMarkersCo return nil, err } - otherMarkers := []*generator.Marker{} + var otherMarkers []*generator.Marker var otherMarkersMutex sync.Mutex if cfg.ShowOtherPlayerVillages { color := cfg.PlayerVillageColor @@ -103,7 +103,7 @@ func (ucase *usecase) GetMarkers(ctx context.Context, cfg servermap.GetMarkersCo }) } - tribeMarkers := []*generator.Marker{} + var tribeMarkers []*generator.Marker var tribeMarkersMutex sync.Mutex for color, tribeIDs := range tribes { c := color @@ -135,7 +135,7 @@ func (ucase *usecase) GetMarkers(ctx context.Context, cfg servermap.GetMarkersCo }) } - playerMarkers := []*generator.Marker{} + var playerMarkers []*generator.Marker var playerMarkersMutex sync.Mutex for color, playerIDs := range players { c := color @@ -191,11 +191,11 @@ func concatMarkers(slices ...[]*generator.Marker) []*generator.Marker { } func toMarker(param string) (int, string, error) { - splitted := strings.Split(param, ",") - if len(splitted) != 2 { + parts := strings.Split(param, ",") + if len(parts) != 2 { return 0, "", errors.Errorf("%s: Invalid marker format (should be id,#hexcolor)", param) } - id, err := strconv.Atoi(splitted[0]) + id, err := strconv.Atoi(parts[0]) if err != nil { return 0, "", errors.Wrapf(err, "%s: Invalid marker format (should be id,#hexcolor)", param) } @@ -203,12 +203,12 @@ func toMarker(param string) (int, string, error) { return 0, "", errors.New("ID should be greater than 0") } - return id, splitted[1], nil + return id, parts[1], nil } func toMarkers(params []string) (map[string][]int, []int, error) { idsByColor := make(map[string][]int) - ids := []int{} + var ids []int cache := make(map[int]bool) for _, param := range params { //id,#color diff --git a/serverstats/repository/pg_repository.go b/serverstats/repository/pg_repository.go index 3656f3e..3c29af0 100644 --- a/serverstats/repository/pg_repository.go +++ b/serverstats/repository/pg_repository.go @@ -22,7 +22,7 @@ func NewPGRepository(db *pg.DB) serverstats.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg serverstats.FetchConfig) ([]*twmodel.ServerStats, int, error) { var err error - data := []*twmodel.ServerStats{} + var data []*twmodel.ServerStats total := 0 query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). diff --git a/serverstats/usecase/serverstats_usecase.go b/serverstats/usecase/serverstats_usecase.go index 1c3d7e2..9b77bb5 100644 --- a/serverstats/usecase/serverstats_usecase.go +++ b/serverstats/usecase/serverstats_usecase.go @@ -20,10 +20,8 @@ func (ucase *usecase) Fetch(ctx context.Context, cfg serverstats.FetchConfig) ([ if cfg.Filter == nil { cfg.Filter = &twmodel.ServerStatsFilter{} } - if !middleware.CanExceedLimit(ctx) && (cfg.Limit > serverstats.FetchLimit || cfg.Limit <= 0) { cfg.Limit = serverstats.FetchLimit } - return ucase.repo.Fetch(ctx, cfg) } diff --git a/tribe/repository/pg_repository.go b/tribe/repository/pg_repository.go index 032374d..9dd35d9 100644 --- a/tribe/repository/pg_repository.go +++ b/tribe/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) tribe.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg tribe.FetchConfig) ([]*twmodel.Tribe, int, error) { var err error - data := []*twmodel.Tribe{} + var data []*twmodel.Tribe total := 0 query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). @@ -55,7 +55,7 @@ func (repo *pgRepository) Fetch(ctx context.Context, cfg tribe.FetchConfig) ([]* } func (repo *pgRepository) SearchTribe(ctx context.Context, cfg tribe.SearchTribeConfig) ([]*twmodel.FoundTribe, int, error) { - servers := []*twmodel.Server{} + var servers []*twmodel.Server if err := repo. Model(&servers). Context(ctx). @@ -66,7 +66,7 @@ func (repo *pgRepository) SearchTribe(ctx context.Context, cfg tribe.SearchTribe } var query *orm.Query - res := []*twmodel.FoundTribe{} + var res []*twmodel.FoundTribe for _, server := range servers { safeKey := pg.Safe(server.Key) otherQuery := repo. diff --git a/tribechange/repository/pg_repository.go b/tribechange/repository/pg_repository.go index 4befe70..a973511 100644 --- a/tribechange/repository/pg_repository.go +++ b/tribechange/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) tribechange.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg tribechange.FetchConfig) ([]*twmodel.TribeChange, int, error) { var err error total := 0 - data := []*twmodel.TribeChange{} + var data []*twmodel.TribeChange query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). Model(&data). diff --git a/tribehistory/repository/pg_repository.go b/tribehistory/repository/pg_repository.go index 54a6500..7beb1d5 100644 --- a/tribehistory/repository/pg_repository.go +++ b/tribehistory/repository/pg_repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pg.DB) tribehistory.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg tribehistory.FetchConfig) ([]*twmodel.TribeHistory, int, error) { var err error total := 0 - data := []*twmodel.TribeHistory{} + var data []*twmodel.TribeHistory query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). Model(&data). diff --git a/version/repository/pg_repository.go b/version/repository/pg_repository.go index 2f449fc..6847a98 100644 --- a/version/repository/pg_repository.go +++ b/version/repository/pg_repository.go @@ -27,7 +27,7 @@ func NewPGRepository(db *pg.DB) (version.Repository, error) { func (repo *pgRepository) Fetch(ctx context.Context, cfg version.FetchConfig) ([]*twmodel.Version, int, error) { var err error - data := []*twmodel.Version{} + var data []*twmodel.Version total := 0 query := repo. Model(&data). diff --git a/village/repository/pg_repository.go b/village/repository/pg_repository.go index b4f1f28..03c0cf9 100644 --- a/village/repository/pg_repository.go +++ b/village/repository/pg_repository.go @@ -22,7 +22,7 @@ func NewPGRepository(db *pg.DB) village.Repository { func (repo *pgRepository) Fetch(ctx context.Context, cfg village.FetchConfig) ([]*twmodel.Village, int, error) { var err error - data := []*twmodel.Village{} + var data []*twmodel.Village query := repo. WithParam("SERVER", pg.Safe(cfg.Server)). Model(&data).