diff --git a/src/udi/handlers/prepared/prepared.go b/src/udi/handlers/prepared/prepared.go index 3157036..de7db11 100644 --- a/src/udi/handlers/prepared/prepared.go +++ b/src/udi/handlers/prepared/prepared.go @@ -1,79 +1,74 @@ package prepared import ( - "time" - "log" - "encoding/json" - "udi/config" - "udi/handlers/handler" - "udi/database" + "encoding/json" + "log" + "time" + "udi/config" + "udi/database" + "udi/handlers/handler" ) - type PreparedHandler struct { - handler.CommonHandler - dbh *database.DatabaseHandle + handler.CommonHandler + dbh *database.DatabaseHandle } type endpoint_t struct { - Label string `json:"label"` - Variable string `json:"variable"` - Value string `json:"value"` - Unit string `json:"unit"` - Status string `json:"status"` + Label string `json:"label"` + Variable string `json:"variable"` + Value interface{} `json:"value"` + Unit string `json:"unit"` + Status string `json:"status"` } type observation_t struct { - Device string `json:"device"` - Label string `json:"label"` - Variables map[string]endpoint_t `json:"variables"` + Device string `json:"device"` + Label string `json:"label"` + Variables map[string]endpoint_t `json:"variables"` } - func New(id string, config config.HandlerConfigT) handler.Handler { - t := &PreparedHandler { - } - t.Id = id - t.dbh = database.NewDatabaseHandle() - log.Printf("Handler Prepared %d initialized", id) - return t + t := &PreparedHandler{} + t.Id = id + t.dbh = database.NewDatabaseHandle() + log.Printf("Handler Prepared %d initialized", id) + return t } func (self *PreparedHandler) Handle(message handler.MessageT) { - log.Printf("Handler Prepared %d processing %s -> %s", self.Id, message.Topic, message.Payload) + log.Printf("Handler Prepared %d processing %s -> %s", self.Id, message.Topic, message.Payload) - var observation observation_t - err := json.Unmarshal([]byte(message.Payload), &observation) - if err != nil { - self.Lost("Unable to parse payload into Observation struct", err, message) - return - } + var observation observation_t + err := json.Unmarshal([]byte(message.Payload), &observation) + if err != nil { + self.Lost("Unable to parse payload into Observation struct", err, message) + return + } - var measurement database.Measurement - measurement.Time = time.Now() + var measurement database.Measurement + measurement.Time = time.Now() - measurement.Application = self.Id - measurement.Device = observation.Device + measurement.Application = self.Id + measurement.Device = observation.Device - measurement.Attributes = map[string]interface{} { - "Label": observation.Label, - } + measurement.Attributes = map[string]interface{}{ + "Label": observation.Label, + } - measurement.Values = make(map[string]database.VariableType) - for k, v := range observation.Variables { - measurement.Values[k] = database.VariableType { - Label: v.Label, - Variable: v.Variable, - Unit: v.Unit, - Value: v.Value, - Status: v.Status, - } - } + measurement.Values = make(map[string]database.VariableType) + for k, v := range observation.Variables { + measurement.Values[k] = database.VariableType{ + Label: v.Label, + Variable: v.Variable, + Unit: v.Unit, + Value: v.Value, + Status: v.Status, + } + } - log.Printf("Prepared measurement item: %s", measurement) + log.Printf("Prepared measurement item: %s", measurement) - self.dbh.StoreMeasurement(&measurement) - self.S() + self.dbh.StoreMeasurement(&measurement) + self.S() } - -