Skip to content

Commit

Permalink
#207 Added multiclass query
Browse files Browse the repository at this point in the history
  • Loading branch information
lxgr-linux committed Feb 27, 2024
1 parent 98a4f2f commit a374214
Show file tree
Hide file tree
Showing 4 changed files with 195 additions and 132 deletions.
4 changes: 4 additions & 0 deletions docs/static/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33324,6 +33324,10 @@ paths:
- exceptional
- unique
collectionFormat: multi
- name: multiClassOnly
in: query
required: false
type: boolean
tags:
- Query
/DecentralCardGame/Cardchain/cardchain/q_council/{councilId}:
Expand Down
1 change: 1 addition & 0 deletions proto/cardchain/cardchain/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ message QueryQCardsRequest {
bool onlyStarterCard = 9;
bool onlyBalanceAnchors = 10;
repeated CardRarity rarities = 11;
bool multiClassOnly = 12;
}

message QueryQCardsResponse {
Expand Down
38 changes: 27 additions & 11 deletions x/cardchain/keeper/grpc_query_q_cards.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,35 @@ func (k Keeper) QCards(goCtx context.Context, req *types.QueryQCardsRequest) (*t
if len(req.Classes) == 0 {
return true
}
if bool(cardobjClass.Mysticism) && slices.Contains(req.Classes, types.CardClass_mysticism) {
return true
}
if bool(cardobjClass.Nature) && slices.Contains(req.Classes, types.CardClass_nature) {
return true
}
if bool(cardobjClass.Technology) && slices.Contains(req.Classes, types.CardClass_technology) {
return true
}
if bool(cardobjClass.Culture) && slices.Contains(req.Classes, types.CardClass_culture) {
if !req.MultiClassOnly {
if bool(cardobjClass.Mysticism) && slices.Contains(req.Classes, types.CardClass_mysticism) {
return true
}
if bool(cardobjClass.Nature) && slices.Contains(req.Classes, types.CardClass_nature) {
return true
}
if bool(cardobjClass.Technology) && slices.Contains(req.Classes, types.CardClass_technology) {
return true
}
if bool(cardobjClass.Culture) && slices.Contains(req.Classes, types.CardClass_culture) {
return true
}
return false
} else {
if bool(cardobjClass.Mysticism) != slices.Contains(req.Classes, types.CardClass_mysticism) {
return false
}
if bool(cardobjClass.Nature) != slices.Contains(req.Classes, types.CardClass_nature) {
return false
}
if bool(cardobjClass.Technology) != slices.Contains(req.Classes, types.CardClass_technology) {
return false
}
if bool(cardobjClass.Culture) != slices.Contains(req.Classes, types.CardClass_culture) {
return false
}
return true
}
return false
}

iterator := k.Cards.GetItemIterator(ctx)
Expand Down
Loading

0 comments on commit a374214

Please sign in to comment.