update of price cards work

This commit is contained in:
Florian Baumann 2021-12-31 16:21:49 +01:00
parent 222d0d5a4d
commit 5f6f734029
3 changed files with 29 additions and 15 deletions

View File

@ -153,7 +153,7 @@ func fetch_card(path string) (*Card, error) {
val.SerraCount = val.SerraCount + 1 val.SerraCount = val.SerraCount + 1
// Set created Time // Set created Time
card.SerraCreated = primitive.NewDateTimeFromTime(time.Now()) val.SerraCreated = primitive.NewDateTimeFromTime(time.Now())
// Increase Price // Increase Price
val.SerraPrices = append(val.SerraPrices, PriceEntry{primitive.NewDateTimeFromTime(time.Now()), val.Prices.Eur}) val.SerraPrices = append(val.SerraPrices, PriceEntry{primitive.NewDateTimeFromTime(time.Now()), val.Prices.Eur})

View File

@ -2,8 +2,10 @@ package serra
import ( import (
"fmt" "fmt"
"time"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
const ( const (
@ -85,19 +87,34 @@ func Update() {
coll := client.Database("serra").Collection("cards") coll := client.Database("serra").Collection("cards")
sort := bson.D{{"_id", 1}} sort := bson.D{{"_id", 1}}
filter := bson.D{{"_id", "0d4f3c1d-d25e-4263-ab2b-19534c852678"}} filter := bson.D{{}}
cards, _ := storage_find(coll, filter, sort) cards, _ := storage_find(coll, filter, sort)
for _, card := range cards { for i, card := range cards {
fmt.Printf("%s (%s) %.2f\n", card.Name, card.Set, card.Prices.Eur) 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}} 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{
update := bson.M{"$set": bson.M{"textless": true}} "$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) storage_disconnect(client)

View File

@ -2,7 +2,6 @@ package serra
import ( import (
"context" "context"
"fmt"
"log" "log"
"os" "os"
"time" "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 // Call the driver's UpdateOne() method and pass filter and update to it
result, err := col.UpdateOne( _, err := coll.UpdateOne(
context.Background(), context.Background(),
filter, filter,
update, update,
) )
if err != nil { if err != nil {
log.Fatal(err) 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 { func storage_disconnect(client *mongo.Client) error {