slices - use nil declaration
This commit is contained in:
parent
49b407ed23
commit
6a44193f31
|
@ -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)).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
)
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)).
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
Reference in New Issue