Skip to content

Commit bf7104c

Browse files
committed
bug: fix bson doc filter
1 parent 3e548e6 commit bf7104c

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

src/makeline-service/mongodb.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"crypto/tls"
66
"log"
7+
"strconv"
78

89
"go.mongodb.org/mongo-driver/bson"
910
"go.mongodb.org/mongo-driver/mongo"
@@ -86,9 +87,21 @@ func (r *MongoDBOrderRepo) GetPendingOrders() ([]Order, error) {
8687
func (r *MongoDBOrderRepo) GetOrder(id string) (Order, error) {
8788
var ctx = context.TODO()
8889

89-
singleResult := r.db.FindOne(ctx, bson.M{"orderid": id})
90+
var sanitizedId string
91+
// ensure id is a valid orderId that can be converted to int
92+
_, err := strconv.Atoi(id)
93+
if err != nil {
94+
log.Printf("Invalid order id: %s", err)
95+
return Order{}, err
96+
} else {
97+
sanitizedId = id
98+
}
99+
100+
filter := bson.M{"orderid": bson.M{"$eq": sanitizedId}}
101+
singleResult := r.db.FindOne(ctx, filter)
102+
90103
var order Order
91-
err := singleResult.Decode(&order)
104+
err = singleResult.Decode(&order)
92105
if err != nil {
93106
log.Printf("Failed to decode order: %s", err)
94107
return order, err
@@ -123,12 +136,23 @@ func (r *MongoDBOrderRepo) InsertOrders(orders []Order) error {
123136
func (r *MongoDBOrderRepo) UpdateOrder(order Order) error {
124137
var ctx = context.TODO()
125138

126-
log.Printf("Updating order: %v", order)
139+
var sanitizedId string
140+
// ensure id can be converted to int
141+
_, err := strconv.Atoi(order.OrderID)
142+
if err != nil {
143+
log.Printf("Invalid order id: %s", err)
144+
return err
145+
} else {
146+
sanitizedId = order.OrderID
147+
}
148+
149+
filter := bson.M{"orderid": bson.M{"$eq": sanitizedId}}
127150

128151
// Update the order
152+
log.Printf("Updating order: %v", order)
129153
updateResult, err := r.db.UpdateMany(
130154
ctx,
131-
bson.M{"orderid": order.OrderID},
155+
filter,
132156
bson.D{
133157
{Key: "$set", Value: bson.D{{Key: "status", Value: order.Status}}},
134158
},

0 commit comments

Comments
 (0)