add PlayerFilter to VillageFilter and TribeFilter to PlayerFilter

This commit is contained in:
Dawid Wysokiński 2020-06-21 11:46:30 +02:00
parent 6e814adae6
commit 373288e925
5 changed files with 29 additions and 0 deletions

View File

@ -2333,6 +2333,7 @@ input PlayerFilter {
scoreTotalLTE: Int
tribeID: [Int!]
tribeFilter: TribeFilter
offset: Int
limit: Int
@ -2730,6 +2731,7 @@ input VillageFilter {
bonusLTE: Int
playerID: [Int!]
playerFilter: PlayerFilter
offset: Int
limit: Int
@ -12488,6 +12490,12 @@ func (ec *executionContext) unmarshalInputPlayerFilter(ctx context.Context, obj
if err != nil {
return it, err
}
case "tribeFilter":
var err error
it.TribeFilter, err = ec.unmarshalOTribeFilter2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeFilter(ctx, v)
if err != nil {
return it, err
}
case "offset":
var err error
it.Offset, err = ec.unmarshalOInt2int(ctx, v)
@ -13184,6 +13192,12 @@ func (ec *executionContext) unmarshalInputVillageFilter(ctx context.Context, obj
if err != nil {
return it, err
}
case "playerFilter":
var err error
it.PlayerFilter, err = ec.unmarshalOPlayerFilter2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐPlayerFilter(ctx, v)
if err != nil {
return it, err
}
case "offset":
var err error
it.Offset, err = ec.unmarshalOInt2int(ctx, v)

View File

@ -99,6 +99,7 @@ input PlayerFilter {
scoreTotalLTE: Int
tribeID: [Int!]
tribeFilter: TribeFilter
offset: Int
limit: Int

View File

@ -44,6 +44,7 @@ input VillageFilter {
bonusLTE: Int
playerID: [Int!]
playerFilter: PlayerFilter
offset: Int
limit: Int

View File

@ -37,6 +37,10 @@ func (repo *pgRepository) Fetch(ctx context.Context, server string, f *models.Pl
if f.Exist != nil {
query = query.Where("exist = ?", *f.Exist)
}
if f.TribeFilter != nil {
query = query.Relation("Tribe._").WhereStruct(f.TribeFilter)
}
}
total, err := query.SelectAndCount()

View File

@ -55,6 +55,15 @@ func (repo *pgRepository) Fetch(ctx context.Context, server string, f *models.Vi
if f.Sort != "" {
query = query.Order(f.Sort)
}
if f.PlayerFilter != nil {
query = query.Relation("Player._").WhereStruct(f.PlayerFilter)
if f.PlayerFilter.TribeFilter != nil {
query = query.
Join("LEFT JOIN ?SERVER.tribes AS tribe ON tribe.id = player.tribe_id", server).
WhereStruct(f.PlayerFilter.TribeFilter)
}
}
}
total, err := query.SelectAndCount()