Skip to content

Commit

Permalink
fix(hadnler): change queries and fix time comparison (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZigBalthazar authored Sep 25, 2024
1 parent 5c2f428 commit 15b33bc
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 60 deletions.
61 changes: 4 additions & 57 deletions handler/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"context"
"errors"
"fmt"
"time"

"github.com/dezh-tech/immortal/types/event"
"go.mongodb.org/mongo-driver/bson"
Expand All @@ -30,21 +29,9 @@ func (h *Handler) HandleEvent(e *event.Event) error {
return nil
}

var query bson.D
var filter bson.D

if e.Kind.IsReplaceable() {
query = bson.D{
bson.E{
Key: "pubkey",
Value: e.PublicKey,
},
bson.E{
Key: "kind",
Value: e.Kind,
},
}

filter = bson.D{
bson.E{
Key: "pubkey",
Expand All @@ -57,7 +44,7 @@ func (h *Handler) HandleEvent(e *event.Event) error {
{
Key: "created_at",
Value: bson.M{
"$lte": time.Unix(e.CreatedAt, 0),
"$lte": e.CreatedAt,
},
},
}
Expand All @@ -81,28 +68,6 @@ func (h *Handler) HandleEvent(e *event.Event) error {
return errors.New("no d tag found")
}

query = bson.D{
bson.E{
Key: "pubkey",
Value: e.PublicKey,
},
bson.E{
Key: "kind",
Value: e.Kind,
},
bson.E{
Key: "$and",
Value: bson.M{
"tags": bson.M{
"$elemMatch": bson.M{
"0": "d",
"1": dTag,
},
},
},
},
}

filter = bson.D{
bson.E{
Key: "pubkey",
Expand All @@ -115,7 +80,7 @@ func (h *Handler) HandleEvent(e *event.Event) error {
{
Key: "created_at",
Value: bson.M{
"$lte": time.Unix(e.CreatedAt, 0),
"$lte": e.CreatedAt,
},
},
bson.E{
Expand All @@ -132,26 +97,8 @@ func (h *Handler) HandleEvent(e *event.Event) error {
}
}

cursor, err := coll.Find(ctx, query)
if err != nil {
return err
}

var result []event.Event
if err := cursor.All(ctx, &result); err != nil {
return err
}

if len(result) == 0 {
_, err := coll.InsertOne(ctx, e)
if err != nil {
return err
}

return nil
}

_, err = coll.ReplaceOne(ctx, filter, e, &options.ReplaceOptions{})
opts := options.Replace().SetUpsert(true)
_, err := coll.ReplaceOne(ctx, filter, e, opts)
if err != nil {
return err
}
Expand Down
5 changes: 2 additions & 3 deletions handler/req.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package handler

import (
"context"
"time"

"github.com/dezh-tech/immortal/types"
"github.com/dezh-tech/immortal/types/event"
Expand Down Expand Up @@ -117,12 +116,12 @@ func FilterToQuery(fq *filterQuery) (bson.D, *options.FindOptions, error) {

// Filter by Since (created_at >=)
if fq.Since > 0 {
query = append(query, bson.E{Key: "created_at", Value: bson.M{"$gte": time.Unix(fq.Since, 0)}})
query = append(query, bson.E{Key: "created_at", Value: bson.M{"$gte": fq.Since}})
}

// Filter by Until (created_at <=)
if fq.Until > 0 {
query = append(query, bson.E{Key: "created_at", Value: bson.M{"$lte": time.Unix(fq.Until, 0)}})
query = append(query, bson.E{Key: "created_at", Value: bson.M{"$lte": fq.Since}})
}

// Add Limit to options
Expand Down

0 comments on commit 15b33bc

Please sign in to comment.