add dailyplayerstats/dailytribestats resolvers/usecases/repositories
This commit is contained in:
parent
96517c9108
commit
c19c510b24
5
dailyplayerstats/constants.go
Normal file
5
dailyplayerstats/constants.go
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
package dailyplayerstats
|
||||||
|
|
||||||
|
const (
|
||||||
|
PaginationLimit = 500
|
||||||
|
)
|
17
dailyplayerstats/repository.go
Normal file
17
dailyplayerstats/repository.go
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package dailyplayerstats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FetchConfig struct {
|
||||||
|
Server string
|
||||||
|
Filter *models.DailyPlayerStatsFilter
|
||||||
|
Count bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type Repository interface {
|
||||||
|
Fetch(ctx context.Context, cfg FetchConfig) ([]*models.DailyPlayerStats, int, error)
|
||||||
|
}
|
52
dailyplayerstats/repository/pg_repository.go
Normal file
52
dailyplayerstats/repository/pg_repository.go
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package repository
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-pg/pg/v10"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
"github.com/tribalwarshelp/api/dailyplayerstats"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type pgRepository struct {
|
||||||
|
*pg.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPGRepository(db *pg.DB) dailyplayerstats.Repository {
|
||||||
|
return &pgRepository{db}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (repo *pgRepository) Fetch(ctx context.Context, cfg dailyplayerstats.FetchConfig) ([]*models.DailyPlayerStats, int, error) {
|
||||||
|
var err error
|
||||||
|
data := []*models.DailyPlayerStats{}
|
||||||
|
total := 0
|
||||||
|
query := repo.WithParam("SERVER", pg.Safe(cfg.Server)).Model(&data).Context(ctx)
|
||||||
|
|
||||||
|
if cfg.Filter != nil {
|
||||||
|
query = query.
|
||||||
|
WhereStruct(cfg.Filter).
|
||||||
|
Limit(cfg.Filter.Limit).
|
||||||
|
Offset(cfg.Filter.Offset)
|
||||||
|
|
||||||
|
if cfg.Filter.Sort != "" {
|
||||||
|
query = query.Order(cfg.Filter.Sort)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.Count {
|
||||||
|
total, err = query.SelectAndCount()
|
||||||
|
} else {
|
||||||
|
err = query.Select()
|
||||||
|
}
|
||||||
|
if err != nil && err != pg.ErrNoRows {
|
||||||
|
if strings.Contains(err.Error(), `relation "`+cfg.Server) {
|
||||||
|
return nil, 0, fmt.Errorf("Server not found")
|
||||||
|
}
|
||||||
|
return nil, 0, errors.Wrap(err, "Internal server error")
|
||||||
|
}
|
||||||
|
|
||||||
|
return data, total, nil
|
||||||
|
}
|
11
dailyplayerstats/usecase.go
Normal file
11
dailyplayerstats/usecase.go
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
package dailyplayerstats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Usecase interface {
|
||||||
|
Fetch(ctx context.Context, server string, filter *models.DailyPlayerStatsFilter) ([]*models.DailyPlayerStats, int, error)
|
||||||
|
}
|
32
dailyplayerstats/usecase/dailyplayerstats_usecase.go
Normal file
32
dailyplayerstats/usecase/dailyplayerstats_usecase.go
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package usecase
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/api/dailyplayerstats"
|
||||||
|
"github.com/tribalwarshelp/api/utils"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type usecase struct {
|
||||||
|
repo dailyplayerstats.Repository
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(repo dailyplayerstats.Repository) dailyplayerstats.Usecase {
|
||||||
|
return &usecase{repo}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ucase *usecase) Fetch(ctx context.Context, server string, filter *models.DailyPlayerStatsFilter) ([]*models.DailyPlayerStats, int, error) {
|
||||||
|
if filter == nil {
|
||||||
|
filter = &models.DailyPlayerStatsFilter{}
|
||||||
|
}
|
||||||
|
if filter.Limit > dailyplayerstats.PaginationLimit || filter.Limit <= 0 {
|
||||||
|
filter.Limit = dailyplayerstats.PaginationLimit
|
||||||
|
}
|
||||||
|
filter.Sort = utils.SanitizeSort(filter.Sort)
|
||||||
|
return ucase.repo.Fetch(ctx, dailyplayerstats.FetchConfig{
|
||||||
|
Server: server,
|
||||||
|
Filter: filter,
|
||||||
|
Count: true,
|
||||||
|
})
|
||||||
|
}
|
5
dailytribestats/constants.go
Normal file
5
dailytribestats/constants.go
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
package dailytribestats
|
||||||
|
|
||||||
|
const (
|
||||||
|
PaginationLimit = 500
|
||||||
|
)
|
17
dailytribestats/repository.go
Normal file
17
dailytribestats/repository.go
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package dailytribestats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FetchConfig struct {
|
||||||
|
Server string
|
||||||
|
Filter *models.DailyTribeStatsFilter
|
||||||
|
Count bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type Repository interface {
|
||||||
|
Fetch(ctx context.Context, cfg FetchConfig) ([]*models.DailyTribeStats, int, error)
|
||||||
|
}
|
52
dailytribestats/repository/pg_repository.go
Normal file
52
dailytribestats/repository/pg_repository.go
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package repository
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-pg/pg/v10"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
"github.com/tribalwarshelp/api/dailytribestats"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type pgRepository struct {
|
||||||
|
*pg.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPGRepository(db *pg.DB) dailytribestats.Repository {
|
||||||
|
return &pgRepository{db}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (repo *pgRepository) Fetch(ctx context.Context, cfg dailytribestats.FetchConfig) ([]*models.DailyTribeStats, int, error) {
|
||||||
|
var err error
|
||||||
|
data := []*models.DailyTribeStats{}
|
||||||
|
total := 0
|
||||||
|
query := repo.WithParam("SERVER", pg.Safe(cfg.Server)).Model(&data).Context(ctx)
|
||||||
|
|
||||||
|
if cfg.Filter != nil {
|
||||||
|
query = query.
|
||||||
|
WhereStruct(cfg.Filter).
|
||||||
|
Limit(cfg.Filter.Limit).
|
||||||
|
Offset(cfg.Filter.Offset)
|
||||||
|
|
||||||
|
if cfg.Filter.Sort != "" {
|
||||||
|
query = query.Order(cfg.Filter.Sort)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.Count {
|
||||||
|
total, err = query.SelectAndCount()
|
||||||
|
} else {
|
||||||
|
err = query.Select()
|
||||||
|
}
|
||||||
|
if err != nil && err != pg.ErrNoRows {
|
||||||
|
if strings.Contains(err.Error(), `relation "`+cfg.Server) {
|
||||||
|
return nil, 0, fmt.Errorf("Server not found")
|
||||||
|
}
|
||||||
|
return nil, 0, errors.Wrap(err, "Internal server error")
|
||||||
|
}
|
||||||
|
|
||||||
|
return data, total, nil
|
||||||
|
}
|
11
dailytribestats/usecase.go
Normal file
11
dailytribestats/usecase.go
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
package dailytribestats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Usecase interface {
|
||||||
|
Fetch(ctx context.Context, server string, filter *models.DailyTribeStatsFilter) ([]*models.DailyTribeStats, int, error)
|
||||||
|
}
|
32
dailytribestats/usecase/dailytribestats_usecase.go
Normal file
32
dailytribestats/usecase/dailytribestats_usecase.go
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package usecase
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/api/dailytribestats"
|
||||||
|
"github.com/tribalwarshelp/api/utils"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type usecase struct {
|
||||||
|
repo dailytribestats.Repository
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(repo dailytribestats.Repository) dailytribestats.Usecase {
|
||||||
|
return &usecase{repo}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ucase *usecase) Fetch(ctx context.Context, server string, filter *models.DailyTribeStatsFilter) ([]*models.DailyTribeStats, int, error) {
|
||||||
|
if filter == nil {
|
||||||
|
filter = &models.DailyTribeStatsFilter{}
|
||||||
|
}
|
||||||
|
if filter.Limit > dailytribestats.PaginationLimit || filter.Limit <= 0 {
|
||||||
|
filter.Limit = dailytribestats.PaginationLimit
|
||||||
|
}
|
||||||
|
filter.Sort = utils.SanitizeSort(filter.Sort)
|
||||||
|
return ucase.repo.Fetch(ctx, dailytribestats.FetchConfig{
|
||||||
|
Server: server,
|
||||||
|
Filter: filter,
|
||||||
|
Count: true,
|
||||||
|
})
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -6,6 +6,16 @@ import (
|
||||||
"github.com/tribalwarshelp/shared/models"
|
"github.com/tribalwarshelp/shared/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type DailyPlayerStats struct {
|
||||||
|
Total int `json:"total"`
|
||||||
|
Items []*models.DailyPlayerStats `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DailyTribeStats struct {
|
||||||
|
Total int `json:"total"`
|
||||||
|
Items []*models.DailyTribeStats `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
type EnnoblementsList struct {
|
type EnnoblementsList struct {
|
||||||
Items []*models.Ennoblement `json:"items"`
|
Items []*models.Ennoblement `json:"items"`
|
||||||
Total int `json:"total"`
|
Total int `json:"total"`
|
||||||
|
|
|
@ -94,5 +94,13 @@ models:
|
||||||
model: github.com/tribalwarshelp/shared/models.TribeChange
|
model: github.com/tribalwarshelp/shared/models.TribeChange
|
||||||
TribeChangeFilter:
|
TribeChangeFilter:
|
||||||
model: github.com/tribalwarshelp/shared/models.TribeChangeFilter
|
model: github.com/tribalwarshelp/shared/models.TribeChangeFilter
|
||||||
|
DailyPlayerStatsRecord:
|
||||||
|
model: github.com/tribalwarshelp/shared/models.DailyPlayerStats
|
||||||
|
DailyPlayerStatsFilter:
|
||||||
|
model: github.com/tribalwarshelp/shared/models.DailyPlayerStatsFilter
|
||||||
|
DailyTribeStatsRecord:
|
||||||
|
model: github.com/tribalwarshelp/shared/models.DailyTribeStats
|
||||||
|
DailyTribeStatsFilter:
|
||||||
|
model: github.com/tribalwarshelp/shared/models.DailyTribeStatsFilter
|
||||||
PlayerNameChange:
|
PlayerNameChange:
|
||||||
model: github.com/tribalwarshelp/shared/models.PlayerNameChange
|
model: github.com/tribalwarshelp/shared/models.PlayerNameChange
|
||||||
|
|
23
graphql/resolvers/daily_player_stats.go
Normal file
23
graphql/resolvers/daily_player_stats.go
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
package resolvers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/api/graphql/generated"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *dailyPlayerStatsRecordResolver) Player(ctx context.Context, obj *models.DailyPlayerStats) (*models.Player, error) {
|
||||||
|
if obj.Player != nil {
|
||||||
|
return obj.Player, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return getPlayer(ctx, obj.PlayerID), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *queryResolver) DailyPlayerStats(ctx context.Context, server string, filter *models.DailyPlayerStatsFilter) (*generated.DailyPlayerStats, error) {
|
||||||
|
var err error
|
||||||
|
list := &generated.DailyPlayerStats{}
|
||||||
|
list.Items, list.Total, err = r.DailyPlayerStatsUcase.Fetch(ctx, server, filter)
|
||||||
|
return list, err
|
||||||
|
}
|
23
graphql/resolvers/daily_tribe_stats.go
Normal file
23
graphql/resolvers/daily_tribe_stats.go
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
package resolvers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/tribalwarshelp/api/graphql/generated"
|
||||||
|
"github.com/tribalwarshelp/shared/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *dailyTribeStatsRecordResolver) Tribe(ctx context.Context, obj *models.DailyTribeStats) (*models.Tribe, error) {
|
||||||
|
if obj.Tribe != nil {
|
||||||
|
return obj.Tribe, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return getTribe(ctx, obj.TribeID), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *queryResolver) DailyTribeStats(ctx context.Context, server string, filter *models.DailyTribeStatsFilter) (*generated.DailyTribeStats, error) {
|
||||||
|
var err error
|
||||||
|
list := &generated.DailyTribeStats{}
|
||||||
|
list.Items, list.Total, err = r.DailyTribeStatsUcase.Fetch(ctx, server, filter)
|
||||||
|
return list, err
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
package resolvers
|
package resolvers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/tribalwarshelp/api/dailyplayerstats"
|
||||||
|
"github.com/tribalwarshelp/api/dailytribestats"
|
||||||
"github.com/tribalwarshelp/api/ennoblement"
|
"github.com/tribalwarshelp/api/ennoblement"
|
||||||
"github.com/tribalwarshelp/api/graphql/generated"
|
"github.com/tribalwarshelp/api/graphql/generated"
|
||||||
"github.com/tribalwarshelp/api/langversion"
|
"github.com/tribalwarshelp/api/langversion"
|
||||||
|
@ -27,6 +29,8 @@ type Resolver struct {
|
||||||
TribeHistoryUcase tribehistory.Usecase
|
TribeHistoryUcase tribehistory.Usecase
|
||||||
ServerStatsUcase serverstats.Usecase
|
ServerStatsUcase serverstats.Usecase
|
||||||
TribeChangeUcase tribechange.Usecase
|
TribeChangeUcase tribechange.Usecase
|
||||||
|
DailyTribeStatsUcase dailytribestats.Usecase
|
||||||
|
DailyPlayerStatsUcase dailyplayerstats.Usecase
|
||||||
}
|
}
|
||||||
|
|
||||||
// Query returns generated.QueryResolver implementation.
|
// Query returns generated.QueryResolver implementation.
|
||||||
|
@ -47,6 +51,12 @@ func (r *Resolver) TribeHistoryRecord() generated.TribeHistoryRecordResolver {
|
||||||
func (r *Resolver) TribeChangeRecord() generated.TribeChangeRecordResolver {
|
func (r *Resolver) TribeChangeRecord() generated.TribeChangeRecordResolver {
|
||||||
return &tribeChangeRecordResolver{r}
|
return &tribeChangeRecordResolver{r}
|
||||||
}
|
}
|
||||||
|
func (r *Resolver) DailyPlayerStatsRecord() generated.DailyPlayerStatsRecordResolver {
|
||||||
|
return &dailyPlayerStatsRecordResolver{r}
|
||||||
|
}
|
||||||
|
func (r *Resolver) DailyTribeStatsRecord() generated.DailyTribeStatsRecordResolver {
|
||||||
|
return &dailyTribeStatsRecordResolver{r}
|
||||||
|
}
|
||||||
|
|
||||||
type queryResolver struct{ *Resolver }
|
type queryResolver struct{ *Resolver }
|
||||||
type playerResolver struct{ *Resolver }
|
type playerResolver struct{ *Resolver }
|
||||||
|
@ -59,3 +69,5 @@ type playerHistoryRecordResolver struct{ *Resolver }
|
||||||
type tribeHistoryRecordResolver struct{ *Resolver }
|
type tribeHistoryRecordResolver struct{ *Resolver }
|
||||||
type serverStatsRecordResolver struct{ *Resolver }
|
type serverStatsRecordResolver struct{ *Resolver }
|
||||||
type tribeChangeRecordResolver struct{ *Resolver }
|
type tribeChangeRecordResolver struct{ *Resolver }
|
||||||
|
type dailyPlayerStatsRecordResolver struct{ *Resolver }
|
||||||
|
type dailyTribeStatsRecordResolver struct{ *Resolver }
|
||||||
|
|
42
graphql/schema/daily_player_stats.graphql
Normal file
42
graphql/schema/daily_player_stats.graphql
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
type DailyPlayerStatsRecord {
|
||||||
|
player: Player @goField(forceResolver: true)
|
||||||
|
villages: Int!
|
||||||
|
points: Int!
|
||||||
|
rank: Int!
|
||||||
|
rankAtt: Int!
|
||||||
|
scoreAtt: Int!
|
||||||
|
rankDef: Int!
|
||||||
|
scoreDef: Int!
|
||||||
|
rankSup: Int!
|
||||||
|
scoreSup: Int!
|
||||||
|
rankTotal: Int!
|
||||||
|
scoreTotal: Int!
|
||||||
|
createdAt: Time!
|
||||||
|
}
|
||||||
|
|
||||||
|
type DailyPlayerStats {
|
||||||
|
total: Int!
|
||||||
|
items: [DailyPlayerStatsRecord!]
|
||||||
|
}
|
||||||
|
|
||||||
|
input DailyPlayerStatsFilter {
|
||||||
|
playerID: [Int!]
|
||||||
|
playerIDNEQ: [Int!]
|
||||||
|
|
||||||
|
createdAt: Time
|
||||||
|
createdAtGT: Time
|
||||||
|
createdAtGTE: Time
|
||||||
|
createdAtLT: Time
|
||||||
|
createdAtLTE: Time
|
||||||
|
|
||||||
|
offset: Int
|
||||||
|
limit: Int
|
||||||
|
sort: String
|
||||||
|
}
|
||||||
|
|
||||||
|
extend type Query {
|
||||||
|
dailyPlayerStats(
|
||||||
|
server: String!
|
||||||
|
filter: DailyPlayerStatsFilter
|
||||||
|
): DailyPlayerStats!
|
||||||
|
}
|
43
graphql/schema/daily_tribe_stats.graphql
Normal file
43
graphql/schema/daily_tribe_stats.graphql
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
type DailyTribeStatsRecord {
|
||||||
|
tribe: Tribe @goField(forceResolver: true)
|
||||||
|
members: Int!
|
||||||
|
villages: Int!
|
||||||
|
points: Int!
|
||||||
|
allPoints: Int!
|
||||||
|
rank: Int!
|
||||||
|
rankAtt: Int!
|
||||||
|
scoreAtt: Int!
|
||||||
|
rankDef: Int!
|
||||||
|
scoreDef: Int!
|
||||||
|
rankTotal: Int!
|
||||||
|
scoreTotal: Int!
|
||||||
|
dominance: Float!
|
||||||
|
createdAt: Time!
|
||||||
|
}
|
||||||
|
|
||||||
|
type DailyTribeStats {
|
||||||
|
total: Int!
|
||||||
|
items: [DailyTribeStatsRecord!]
|
||||||
|
}
|
||||||
|
|
||||||
|
input DailyTribeStatsFilter {
|
||||||
|
tribeID: [Int!]
|
||||||
|
tribeIDNEQ: [Int!]
|
||||||
|
|
||||||
|
createdAt: Time
|
||||||
|
createdAtGT: Time
|
||||||
|
createdAtGTE: Time
|
||||||
|
createdAtLT: Time
|
||||||
|
createdAtLTE: Time
|
||||||
|
|
||||||
|
offset: Int
|
||||||
|
limit: Int
|
||||||
|
sort: String
|
||||||
|
}
|
||||||
|
|
||||||
|
extend type Query {
|
||||||
|
dailyTribeStats(
|
||||||
|
server: String!
|
||||||
|
filter: DailyTribeStatsFilter
|
||||||
|
): DailyTribeStats!
|
||||||
|
}
|
8
main.go
8
main.go
|
@ -19,6 +19,10 @@ import (
|
||||||
|
|
||||||
"github.com/tribalwarshelp/api/graphql/dataloaders"
|
"github.com/tribalwarshelp/api/graphql/dataloaders"
|
||||||
|
|
||||||
|
dailyplayerstatsrepo "github.com/tribalwarshelp/api/dailyplayerstats/repository"
|
||||||
|
dailyplayerstatsucase "github.com/tribalwarshelp/api/dailyplayerstats/usecase"
|
||||||
|
dailytribestatsrepo "github.com/tribalwarshelp/api/dailytribestats/repository"
|
||||||
|
dailytribestatsucase "github.com/tribalwarshelp/api/dailytribestats/usecase"
|
||||||
ennoblementrepo "github.com/tribalwarshelp/api/ennoblement/repository"
|
ennoblementrepo "github.com/tribalwarshelp/api/ennoblement/repository"
|
||||||
ennoblementucase "github.com/tribalwarshelp/api/ennoblement/usecase"
|
ennoblementucase "github.com/tribalwarshelp/api/ennoblement/usecase"
|
||||||
langversionrepo "github.com/tribalwarshelp/api/langversion/repository"
|
langversionrepo "github.com/tribalwarshelp/api/langversion/repository"
|
||||||
|
@ -102,6 +106,8 @@ func main() {
|
||||||
playerhistoryRepo := playerhistoryrepo.NewPGRepository(db)
|
playerhistoryRepo := playerhistoryrepo.NewPGRepository(db)
|
||||||
serverstatsRepo := serverstatsrepo.NewPGRepository(db)
|
serverstatsRepo := serverstatsrepo.NewPGRepository(db)
|
||||||
tribeChangeRepo := tribechangerepo.NewPGRepository(db)
|
tribeChangeRepo := tribechangerepo.NewPGRepository(db)
|
||||||
|
dailyPlayerStatsRepo := dailyplayerstatsrepo.NewPGRepository(db)
|
||||||
|
dailyTribeStatsRepo := dailytribestatsrepo.NewPGRepository(db)
|
||||||
liveennoblementRepo := liveennoblementrepo.NewPGRepository(db, redisClient)
|
liveennoblementRepo := liveennoblementrepo.NewPGRepository(db, redisClient)
|
||||||
|
|
||||||
serverUcase := serverucase.New(serverRepo)
|
serverUcase := serverucase.New(serverRepo)
|
||||||
|
@ -134,6 +140,8 @@ func main() {
|
||||||
PlayerHistoryUcase: playerhistoryucase.New(playerhistoryRepo),
|
PlayerHistoryUcase: playerhistoryucase.New(playerhistoryRepo),
|
||||||
ServerStatsUcase: serverstatsucase.New(serverstatsRepo),
|
ServerStatsUcase: serverstatsucase.New(serverstatsRepo),
|
||||||
TribeChangeUcase: tribechangeucase.New(tribeChangeRepo),
|
TribeChangeUcase: tribechangeucase.New(tribeChangeRepo),
|
||||||
|
DailyPlayerStatsUcase: dailyplayerstatsucase.New(dailyPlayerStatsRepo),
|
||||||
|
DailyTribeStatsUcase: dailytribestatsucase.New(dailyTribeStatsRepo),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user