From 5f6f734029a258fdabe1abe240b989029021cb7d Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Fri, 31 Dec 2021 16:21:49 +0100 Subject: [PATCH] update of price cards work --- src/serra/card.go | 2 +- src/serra/root.go | 31 ++++++++++++++++++++++++------- src/serra/storage.go | 11 ++++------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/serra/card.go b/src/serra/card.go index 3009b88..861454e 100644 --- a/src/serra/card.go +++ b/src/serra/card.go @@ -153,7 +153,7 @@ func fetch_card(path string) (*Card, error) { val.SerraCount = val.SerraCount + 1 // Set created Time - card.SerraCreated = primitive.NewDateTimeFromTime(time.Now()) + val.SerraCreated = primitive.NewDateTimeFromTime(time.Now()) // Increase Price val.SerraPrices = append(val.SerraPrices, PriceEntry{primitive.NewDateTimeFromTime(time.Now()), val.Prices.Eur}) diff --git a/src/serra/root.go b/src/serra/root.go index dc3a2f9..582ead1 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -2,8 +2,10 @@ package serra import ( "fmt" + "time" "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" ) const ( @@ -85,19 +87,34 @@ func Update() { coll := client.Database("serra").Collection("cards") sort := bson.D{{"_id", 1}} - filter := bson.D{{"_id", "0d4f3c1d-d25e-4263-ab2b-19534c852678"}} + filter := bson.D{{}} cards, _ := storage_find(coll, filter, sort) - for _, card := range cards { - fmt.Printf("%s (%s) %.2f\n", card.Name, card.Set, card.Prices.Eur) + for i, card := range cards { + fmt.Printf("Updating (%d/%d): %s (%s)...\n", i+1, len(cards), card.Name, card.SetName) - // db.cards.update({'_id':'8fa2ecf9-b53c-4f1d-9028-ca3820d043cb'},{$set:{'serra_updated':ISODate("2021-11-02T09:28:56.504Z")}, $push: {"serra_prices": { date: ISODate("2021-11-02T09:28:56.504Z"), value: 0.1 }}}); + /* db.cards.update( + {'_id':'8fa2ecf9-b53c-4f1d-9028-ca3820d043cb'}, + {$set:{'serra_updated':ISODate("2021-11-02T09:28:56.504Z")}, + $push: {"serra_prices": { date: ISODate("2021-11-02T09:28:56.504Z"), value: 0.1 }}}); + */ + + // TODO fetch new card + + updated_card, err := fetch_card(fmt.Sprintf("%s/%s", card.Set, card.CollectorNumber)) + if err != nil { + LogMessage(fmt.Sprintf("%v", err), "red") + continue + } - // Declare an _id filter to get a specific MongoDB document filter := bson.M{"_id": bson.M{"$eq": card.ID}} - // Declare a filter that will change a field's integer value to `42` - update := bson.M{"$set": bson.M{"textless": true}} + update := bson.M{ + "$set": bson.M{"serra_updated": primitive.NewDateTimeFromTime(time.Now())}, + "$push": bson.M{"serra_prices": bson.M{"date": primitive.NewDateTimeFromTime(time.Now()), + "value": updated_card.Prices.Eur}}} + + storage_update(coll, filter, update) } storage_disconnect(client) diff --git a/src/serra/storage.go b/src/serra/storage.go index 0db85be..8f1b81a 100644 --- a/src/serra/storage.go +++ b/src/serra/storage.go @@ -2,7 +2,6 @@ package serra import ( "context" - "fmt" "log" "os" "time" @@ -79,22 +78,20 @@ func storage_aggregate(coll *mongo.Collection, groupstage bson.D) ([]primitive.M } -func storage_update(coll *mongo.Collection, filter, update bson.M) ([]primitive.M, error) { +func storage_update(coll *mongo.Collection, filter, update bson.M) error { // Call the driver's UpdateOne() method and pass filter and update to it - result, err := col.UpdateOne( + _, err := coll.UpdateOne( context.Background(), filter, update, ) if err != nil { log.Fatal(err) + return err } - fmt.Println(result) - - // Get a list of all returned documents and print them out. - // See the mongo.Cursor documentation for more examples of using cursors. + return nil } func storage_disconnect(client *mongo.Client) error {