Skip to content

Commit

Permalink
fix: move serialization of metrics data into mobile layer
Browse files Browse the repository at this point in the history
  • Loading branch information
Dara Hayes committed Feb 22, 2018
1 parent f6ff2fa commit 687a127
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
13 changes: 2 additions & 11 deletions pkg/dao/dao.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,15 @@ package dao

import (
"database/sql"
"encoding/json"

"github.com/aerogear/aerogear-metrics-api/pkg/mobile"
)

type MetricsDAO struct {
db *sql.DB
}

// Create a metrics record
func (m *MetricsDAO) Create(metric mobile.Metric) error {
data, err := json.Marshal(metric.Data)

if err != nil {
return err
}

_, err = db.Exec("INSERT INTO mobileappmetrics(clientId, data) VALUES($1, $2)", metric.ClientId, data)
func (m *MetricsDAO) Create(clientId string, metricsData []byte) error {
_, err := db.Exec("INSERT INTO mobileappmetrics(clientId, data) VALUES($1, $2)", clientId, metricsData)
return err
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/mobile/interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ package mobile

// MetricCreator defines how a metric can be created
type MetricCreator interface {
Create(m Metric) error
Create(clientId string, metricsData []byte) error
}
11 changes: 10 additions & 1 deletion pkg/mobile/metrics.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package mobile

import "encoding/json"

type MetricsService struct {
mdao MetricCreator
}
Expand All @@ -9,5 +11,12 @@ func NewMetricsService(dao MetricCreator) *MetricsService {
}

func (m MetricsService) Create(metric Metric) (Metric, error) {
return metric, m.mdao.Create(metric)

metricsData, err := json.Marshal(metric.Data)

if err != nil {
return metric, err
}

return metric, m.mdao.Create(metric.ClientId, metricsData)
}

0 comments on commit 687a127

Please sign in to comment.