add or filter to TribeChange | bump github.com/tribalwarshelp/shared

This commit is contained in:
Dawid Wysokiński 2020-07-18 11:16:37 +02:00
parent dd9f7bd880
commit cfd5cbfb69
9 changed files with 89 additions and 7 deletions

View File

@ -7,7 +7,7 @@ import (
"github.com/tribalwarshelp/shared/models"
)
func appendWhereClauseForEnnoblementFilterOr(or *models.EnnoblementFilterOr) func(*orm.Query) (*orm.Query, error) {
func appendEnnoblementFilterOr(or *models.EnnoblementFilterOr) func(*orm.Query) (*orm.Query, error) {
return func(q *orm.Query) (*orm.Query, error) {
if or != nil {
if len(or.NewOwnerID) > 0 {

View File

@ -35,7 +35,7 @@ func (repo *pgRepository) Fetch(ctx context.Context, cfg ennoblement.FetchConfig
query = query.Order(cfg.Filter.Sort)
}
query = query.WhereGroup(appendWhereClauseForEnnoblementFilterOr(cfg.Filter.Or))
query = query.WhereGroup(appendEnnoblementFilterOr(cfg.Filter.Or))
}
if cfg.Count {

2
go.mod
View File

@ -16,7 +16,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/segmentio/encoding v0.1.14 // indirect
github.com/tribalwarshelp/map-generator v0.0.0-20200623143352-cc037d744be2
github.com/tribalwarshelp/shared v0.0.0-20200717091627-87f23d34cff8
github.com/tribalwarshelp/shared v0.0.0-20200718090428-c0e8f4b03f39
github.com/vektah/gqlparser/v2 v2.0.1
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect
google.golang.org/protobuf v1.25.0 // indirect

6
go.sum
View File

@ -187,10 +187,8 @@ github.com/tribalwarshelp/map-generator v0.0.0-20200623143352-cc037d744be2 h1:jk
github.com/tribalwarshelp/map-generator v0.0.0-20200623143352-cc037d744be2/go.mod h1:h3INS/arc4MelQjePKvXdrqWjHVVm2s4PKSrsMmkZx8=
github.com/tribalwarshelp/shared v0.0.0-20200622084436-3a768c8bf574 h1:y2EoH6zRK9Uc0AeswnJRYUUIQYcSLZB5VDFuxPCKxNM=
github.com/tribalwarshelp/shared v0.0.0-20200622084436-3a768c8bf574/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y=
github.com/tribalwarshelp/shared v0.0.0-20200716113106-11ff9ddf1bda h1:bMO271vY8rLlypSHzSfANe7rz7dUi/+uNkcv7qUOWxw=
github.com/tribalwarshelp/shared v0.0.0-20200716113106-11ff9ddf1bda/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y=
github.com/tribalwarshelp/shared v0.0.0-20200717091627-87f23d34cff8 h1:oHu1004MQm/Y/474uvp1iYAABQjSZsdrb3pxjRSdOb4=
github.com/tribalwarshelp/shared v0.0.0-20200717091627-87f23d34cff8/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y=
github.com/tribalwarshelp/shared v0.0.0-20200718090428-c0e8f4b03f39 h1:D+JMUryrPTiXZt09QY3OLLQfX4IOxIGd6/rcJWqRWH0=
github.com/tribalwarshelp/shared v0.0.0-20200718090428-c0e8f4b03f39/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=

View File

@ -4064,6 +4064,11 @@ type TribeChanges {
items: [TribeChangeRecord!]
}
input TribeChangeFilterOr {
oldTribeID: [Int!]
newTribeID: [Int!]
}
input TribeChangeFilter {
playerID: [Int!]
playerIDNEQ: [Int!]
@ -4080,6 +4085,8 @@ input TribeChangeFilter {
createdAtLT: Time
createdAtLTE: Time
or: TribeChangeFilterOr
offset: Int
limit: Int
sort: String
@ -19035,6 +19042,12 @@ func (ec *executionContext) unmarshalInputTribeChangeFilter(ctx context.Context,
if err != nil {
return it, err
}
case "or":
var err error
it.Or, err = ec.unmarshalOTribeChangeFilterOr2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeChangeFilterOr(ctx, v)
if err != nil {
return it, err
}
case "offset":
var err error
it.Offset, err = ec.unmarshalOInt2int(ctx, v)
@ -19059,6 +19072,30 @@ func (ec *executionContext) unmarshalInputTribeChangeFilter(ctx context.Context,
return it, nil
}
func (ec *executionContext) unmarshalInputTribeChangeFilterOr(ctx context.Context, obj interface{}) (models.TribeChangeFilterOr, error) {
var it models.TribeChangeFilterOr
var asMap = obj.(map[string]interface{})
for k, v := range asMap {
switch k {
case "oldTribeID":
var err error
it.OldTribeID, err = ec.unmarshalOInt2ᚕintᚄ(ctx, v)
if err != nil {
return it, err
}
case "newTribeID":
var err error
it.NewTribeID, err = ec.unmarshalOInt2ᚕintᚄ(ctx, v)
if err != nil {
return it, err
}
}
}
return it, nil
}
func (ec *executionContext) unmarshalInputTribeFilter(ctx context.Context, obj interface{}) (models.TribeFilter, error) {
var it models.TribeFilter
var asMap = obj.(map[string]interface{})
@ -24742,6 +24779,18 @@ func (ec *executionContext) unmarshalOTribeChangeFilter2ᚖgithubᚗcomᚋtribal
return &res, err
}
func (ec *executionContext) unmarshalOTribeChangeFilterOr2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeChangeFilterOr(ctx context.Context, v interface{}) (models.TribeChangeFilterOr, error) {
return ec.unmarshalInputTribeChangeFilterOr(ctx, v)
}
func (ec *executionContext) unmarshalOTribeChangeFilterOr2ᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeChangeFilterOr(ctx context.Context, v interface{}) (*models.TribeChangeFilterOr, error) {
if v == nil {
return nil, nil
}
res, err := ec.unmarshalOTribeChangeFilterOr2githubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeChangeFilterOr(ctx, v)
return &res, err
}
func (ec *executionContext) marshalOTribeChangeRecord2ᚕᚖgithubᚗcomᚋtribalwarshelpᚋsharedᚋmodelsᚐTribeChangeᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.TribeChange) graphql.Marshaler {
if v == nil {
return graphql.Null

View File

@ -96,6 +96,8 @@ models:
model: github.com/tribalwarshelp/shared/models.TribeChange
TribeChangeFilter:
model: github.com/tribalwarshelp/shared/models.TribeChangeFilter
TribeChangeFilterOr:
model: github.com/tribalwarshelp/shared/models.TribeChangeFilterOr
DailyPlayerStatsRecord:
model: github.com/tribalwarshelp/shared/models.DailyPlayerStats
DailyPlayerStatsFilter:

View File

@ -10,6 +10,11 @@ type TribeChanges {
items: [TribeChangeRecord!]
}
input TribeChangeFilterOr {
oldTribeID: [Int!]
newTribeID: [Int!]
}
input TribeChangeFilter {
playerID: [Int!]
playerIDNEQ: [Int!]
@ -26,6 +31,8 @@ input TribeChangeFilter {
createdAtLT: Time
createdAtLTE: Time
or: TribeChangeFilterOr
offset: Int
limit: Int
sort: String

View File

@ -0,0 +1,22 @@
package repository
import (
"github.com/go-pg/pg/v10"
"github.com/go-pg/pg/v10/orm"
"github.com/tribalwarshelp/shared/models"
)
func appendTribeChangeFilterOr(or *models.TribeChangeFilterOr) func(*orm.Query) (*orm.Query, error) {
return func(q *orm.Query) (*orm.Query, error) {
if or != nil {
if len(or.NewTribeID) > 0 {
q = q.WhereOr("new_tribe_id IN (?)", pg.In(or.NewTribeID))
}
if len(or.OldTribeID) > 0 {
q = q.WhereOr("old_tribe_id IN (?)", pg.In(or.OldTribeID))
}
}
return q, nil
}
}

View File

@ -34,6 +34,10 @@ func (repo *pgRepository) Fetch(ctx context.Context, cfg tribechange.FetchConfig
if cfg.Filter.Sort != "" {
query = query.Order(cfg.Filter.Sort)
}
if cfg.Filter.Or != nil {
query = query.WhereGroup(appendTribeChangeFilterOr(cfg.Filter.Or))
}
}
if cfg.Count {