Mainflux.mainflux/writer/cassandra/messages.go

29 lines
962 B
Go
Raw Normal View History

package cassandra
import (
"github.com/gocql/gocql"
"github.com/mainflux/mainflux/writer"
)
var _ writer.MessageRepository = (*msgRepository)(nil)
type msgRepository struct {
session *gocql.Session
}
// NewMessageRepository instantiates Cassandra message repository.
func NewMessageRepository(session *gocql.Session) writer.MessageRepository {
return &msgRepository{session}
}
func (repo *msgRepository) Save(msg writer.Message) error {
cql := `INSERT INTO messages_by_channel
(channel, id, publisher, protocol, bn, bt, bu, bv, bs, bver, n, u, v, vs, vb, vd, s, t, ut, l)
VALUES (?, now(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
return repo.session.Query(cql, msg.Channel, msg.Publisher, msg.Protocol,
msg.BaseName, msg.BaseTime, msg.BaseUnit, msg.BaseValue, msg.BaseSum,
msg.Version, msg.Name, msg.Unit, msg.Value, msg.StringValue, msg.BoolValue,
msg.DataValue, msg.ValueSum, msg.Time, msg.UpdateTime, msg.Link).Exec()
}