add http server
This commit is contained in:
32
internal/store/mock/store.go
Normal file
32
internal/store/mock/store.go
Normal file
@ -0,0 +1,32 @@
|
||||
package mock
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.loyso.art/frx/devsim/internal/entities"
|
||||
)
|
||||
|
||||
type MockedStore struct {
|
||||
onList func() ([]entities.DeviceStatistics, error)
|
||||
onUpsert func(stat entities.DeviceStatistics) (err error)
|
||||
}
|
||||
|
||||
func NewMock() *MockedStore {
|
||||
return &MockedStore{}
|
||||
}
|
||||
|
||||
func (m *MockedStore) RegisterOnList(f func() ([]entities.DeviceStatistics, error)) {
|
||||
m.onList = f
|
||||
}
|
||||
|
||||
func (m *MockedStore) RegisterOnUpsert(f func(entities.DeviceStatistics) error) {
|
||||
m.onUpsert = f
|
||||
}
|
||||
|
||||
func (m *MockedStore) List(context.Context) ([]entities.DeviceStatistics, error) {
|
||||
return m.onList()
|
||||
}
|
||||
|
||||
func (m *MockedStore) Upsert(_ context.Context, stats entities.DeviceStatistics) error {
|
||||
return m.onUpsert(stats)
|
||||
}
|
||||
@ -69,17 +69,17 @@ func (s deviceStatsDB) asDomain() entities.DeviceStatistics {
|
||||
}
|
||||
}
|
||||
|
||||
func (r statsRepository) Upsert(ctx context.Context, id entities.DeviceID, stats entities.DeviceStatistics) error {
|
||||
func (r statsRepository) Upsert(ctx context.Context, stats entities.DeviceStatistics) error {
|
||||
opts := options.Update().SetUpsert(true)
|
||||
|
||||
filter := bson.D{
|
||||
{
|
||||
Key: "_id",
|
||||
Value: id,
|
||||
Value: stats.ID,
|
||||
},
|
||||
}
|
||||
document := deviceStatsDB{
|
||||
DeviceID: string(id),
|
||||
DeviceID: string(stats.ID),
|
||||
IncomingTraffic: stats.IncomingTrafficBytes,
|
||||
OutgoinfTraffic: stats.OutgoingTrafficBytes,
|
||||
IncomingRPS: stats.IncomingRPS,
|
||||
|
||||
@ -60,7 +60,7 @@ func (s deviceStatsDB) asDomain() entities.DeviceStatistics {
|
||||
}
|
||||
}
|
||||
|
||||
func (r statsRepository) Upsert(ctx context.Context, id entities.DeviceID, stats entities.DeviceStatistics) error {
|
||||
func (r statsRepository) Upsert(ctx context.Context, stats entities.DeviceStatistics) error {
|
||||
const query = `INSERT INTO public.stats (
|
||||
device_id,
|
||||
inc_traffic,
|
||||
@ -89,7 +89,7 @@ func (r statsRepository) Upsert(ctx context.Context, id entities.DeviceID, stats
|
||||
|
||||
_, err := r.db.Exec(
|
||||
ctx, query,
|
||||
id,
|
||||
stats.ID,
|
||||
stats.IncomingTrafficBytes,
|
||||
stats.OutgoingTrafficBytes,
|
||||
stats.IncomingRPS,
|
||||
|
||||
@ -7,6 +7,6 @@ import (
|
||||
)
|
||||
|
||||
type Stats interface {
|
||||
Upsert(context.Context, entities.DeviceID, entities.DeviceStatistics) error
|
||||
List(context.Context) ([]entities.DeviceStatistics, error)
|
||||
Upsert(context.Context, entities.DeviceStatistics) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user