add sorting option

This commit is contained in:
Florian Baumann 2022-01-13 10:50:09 +01:00
parent c78c766825
commit 35bc36ad88
2 changed files with 16 additions and 4 deletions

View File

@ -23,6 +23,7 @@ var opts struct {
CardId []string `docopt:"<cardid>"` CardId []string `docopt:"<cardid>"`
SetCode string `docopt:"<setcode>,--set"` SetCode string `docopt:"<setcode>,--set"`
Count int64 `docopt:"--count"` Count int64 `docopt:"--count"`
Sort string `docopt:"--sort"`
Rarity string `docopt:"--rarity"` Rarity string `docopt:"--rarity"`
} }
@ -34,7 +35,7 @@ func main() {
Usage: Usage:
serra add <cardid>... [--count=<number>] serra add <cardid>... [--count=<number>]
serra remove <cardid>... serra remove <cardid>...
serra cards [--rarity=<rarity>] [--set=<setcode>] serra cards [--rarity=<rarity>] [--set=<setcode>] [--sort=<sort>]
serra card <cardid>... serra card <cardid>...
serra missing <setcode> serra missing <setcode>
serra set <setcode> serra set <setcode>
@ -60,7 +61,7 @@ Options:
} else if opts.Remove { } else if opts.Remove {
serra.Remove(opts.CardId) serra.Remove(opts.CardId)
} else if opts.Cards { } else if opts.Cards {
serra.Cards(opts.Rarity, opts.SetCode) serra.Cards(opts.Rarity, opts.SetCode, opts.Sort)
} else if opts.Card { } else if opts.Card {
serra.ShowCard(opts.CardId) serra.ShowCard(opts.CardId)
} else if opts.Sets { } else if opts.Sets {

View File

@ -80,7 +80,7 @@ func Remove(cards []string) {
} }
} }
func Cards(rarity, set string) { func Cards(rarity, set, sort string) {
var total float64 var total float64
client := storage_connect() client := storage_connect()
@ -98,11 +98,22 @@ func Cards(rarity, set string) {
filter = append(filter, bson.E{"rarity", "rare"}) filter = append(filter, bson.E{"rarity", "rare"})
} }
var sortStage bson.D
switch sort {
case "value":
sortStage = bson.D{{"prices.eur", 1}}
case "collectornumber":
sortStage = bson.D{{"collectornumber", 1}}
case "name":
sortStage = bson.D{{"name", 1}}
}
fmt.Println(sortStage)
if len(set) > 0 { if len(set) > 0 {
filter = append(filter, bson.E{"set", set}) filter = append(filter, bson.E{"set", set})
} }
cards, _ := coll.storage_find(filter, bson.D{{"name", 1}}) cards, _ := coll.storage_find(filter, sortStage)
for _, card := range cards { for _, card := range cards {
LogMessage(fmt.Sprintf("* %dx %s%s%s (%s/%s) %s%.2f EUR%s", card.SerraCount, Purple, card.Name, Reset, card.Set, card.CollectorNumber, Yellow, card.Prices.Eur, Reset), "normal") LogMessage(fmt.Sprintf("* %dx %s%s%s (%s/%s) %s%.2f EUR%s", card.SerraCount, Purple, card.Name, Reset, card.Set, card.CollectorNumber, Yellow, card.Prices.Eur, Reset), "normal")