add http server

This commit is contained in:
2024-08-10 02:15:00 +03:00
parent 6a2489a65c
commit ba6ac26bac
9 changed files with 380 additions and 14 deletions

View 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)
}

View File

@ -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,

View File

@ -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,

View File

@ -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
}