satellite/nodeevents: add method GetByID
Add method GetByID to get a node event by its ID. For easier testing. Change-Id: Ic9e0d201ffd682a2ff3bd7b4d02b58b06d0f8282
This commit is contained in:
parent
602f0cc132
commit
b27c6dd032
@ -21,6 +21,8 @@ type DB interface {
|
||||
GetLatestByEmailAndEvent(ctx context.Context, email string, event Type) (nodeEvent NodeEvent, err error)
|
||||
// GetNextBatch gets the next batch of events to combine into an email.
|
||||
GetNextBatch(ctx context.Context, firstSeenBefore time.Time) (events []NodeEvent, err error)
|
||||
// GetByID get a node event by id.
|
||||
GetByID(ctx context.Context, id uuid.UUID) (nodeEvent NodeEvent, err error)
|
||||
// UpdateEmailSent updates email_sent for a group of rows.
|
||||
UpdateEmailSent(ctx context.Context, ids []uuid.UUID, timestamp time.Time) (err error)
|
||||
}
|
||||
|
@ -56,6 +56,17 @@ func (ne *nodeEvents) GetLatestByEmailAndEvent(ctx context.Context, email string
|
||||
return fromDBX(dbxNE)
|
||||
}
|
||||
|
||||
// GetByID get a node event by id.
|
||||
func (ne *nodeEvents) GetByID(ctx context.Context, id uuid.UUID) (nodeEvent nodeevents.NodeEvent, err error) {
|
||||
defer mon.Task()(&ctx)(&err)
|
||||
|
||||
dbxNE, err := ne.db.Get_NodeEvent_By_Id(ctx, dbx.NodeEvent_Id(id[:]))
|
||||
if err != nil {
|
||||
return nodeEvent, err
|
||||
}
|
||||
return fromDBX(dbxNE)
|
||||
}
|
||||
|
||||
// GetNextBatch gets the next batch of events to combine into an email.
|
||||
// It selects one item that was inserted before 'firstSeenBefore', then selects
|
||||
// all entries with the same email and event so that they can be combined into a
|
||||
|
@ -81,6 +81,35 @@ func TestNodeEventsUpdateEmailSent(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestNodeEventsGetByID(t *testing.T) {
|
||||
satellitedbtest.Run(t, func(ctx *testcontext.Context, t *testing.T, db satellite.DB) {
|
||||
testID1 := teststorj.NodeIDFromString("test1")
|
||||
testID2 := teststorj.NodeIDFromString("test2")
|
||||
testEmail1 := "test1@storj.test"
|
||||
testEmail2 := "test2@storj.test"
|
||||
|
||||
eventType := nodeevents.Disqualified
|
||||
|
||||
event1, err := db.NodeEvents().Insert(ctx, testEmail1, testID1, eventType)
|
||||
require.NoError(t, err)
|
||||
|
||||
event2, err := db.NodeEvents().Insert(ctx, testEmail2, testID2, eventType)
|
||||
require.NoError(t, err)
|
||||
|
||||
res, err := db.NodeEvents().GetByID(ctx, event1.ID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, event1.Email, res.Email)
|
||||
require.Equal(t, event1.CreatedAt, res.CreatedAt)
|
||||
require.Equal(t, event1.Event, res.Event)
|
||||
|
||||
res, err = db.NodeEvents().GetByID(ctx, event2.ID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, event2.Email, res.Email)
|
||||
require.Equal(t, event2.CreatedAt, res.CreatedAt)
|
||||
require.Equal(t, event2.Event, res.Event)
|
||||
})
|
||||
}
|
||||
|
||||
func TestNodeEventsGetNextBatch(t *testing.T) {
|
||||
satellitedbtest.Run(t, func(ctx *testcontext.Context, t *testing.T, db satellite.DB) {
|
||||
testID1 := teststorj.NodeIDFromString("test1")
|
||||
|
Loading…
Reference in New Issue
Block a user