2017-09-23 01:03:27 +02:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/go-kit/kit/log"
|
|
|
|
"github.com/mainflux/mainflux/manager"
|
|
|
|
)
|
|
|
|
|
|
|
|
var _ manager.Service = (*loggingService)(nil)
|
|
|
|
|
|
|
|
type loggingService struct {
|
|
|
|
logger log.Logger
|
|
|
|
manager.Service
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewLoggingService adds logging facilities to the core service.
|
|
|
|
func NewLoggingService(logger log.Logger, s manager.Service) manager.Service {
|
|
|
|
return &loggingService{logger, s}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) Register(user manager.User) (err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "register",
|
|
|
|
"email", user.Email,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.Register(user)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) Login(user manager.User) (token string, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "login",
|
|
|
|
"email", user.Email,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.Login(user)
|
|
|
|
}
|
|
|
|
|
2017-09-30 19:58:08 +02:00
|
|
|
func (ls *loggingService) Identity(key string) (id string, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "identity",
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.Identity(key)
|
|
|
|
}
|
|
|
|
|
2017-09-23 01:03:27 +02:00
|
|
|
func (ls *loggingService) AddClient(key string, client manager.Client) (id string, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "add_client",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.AddClient(key, client)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) UpdateClient(key string, client manager.Client) (err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "update_client",
|
|
|
|
"key", key,
|
|
|
|
"id", client.ID,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.UpdateClient(key, client)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) ViewClient(key string, id string) (client manager.Client, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "view_client",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.ViewClient(key, id)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) ListClients(key string) (clients []manager.Client, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "list_clients",
|
|
|
|
"key", key,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.ListClients(key)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) RemoveClient(key string, id string) (err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "remove_client",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.RemoveClient(key, id)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) CreateChannel(key string, channel manager.Channel) (id string, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "create_channel",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.CreateChannel(key, channel)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) UpdateChannel(key string, channel manager.Channel) (err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "update_channel",
|
|
|
|
"key", key,
|
|
|
|
"id", channel.ID,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.UpdateChannel(key, channel)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) ViewChannel(key string, id string) (channel manager.Channel, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "view_channel",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.ViewChannel(key, id)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) ListChannels(key string) (channels []manager.Channel, err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "list_channels",
|
|
|
|
"key", key,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.ListChannels(key)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) RemoveChannel(key string, id string) (err error) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "remove_channel",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"error", err,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.RemoveChannel(key, id)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ls *loggingService) CanAccess(key string, id string) (allowed bool) {
|
|
|
|
defer func(begin time.Time) {
|
|
|
|
ls.logger.Log(
|
|
|
|
"method", "can_access",
|
|
|
|
"key", key,
|
|
|
|
"id", id,
|
|
|
|
"allowed", allowed,
|
|
|
|
"took", time.Since(begin),
|
|
|
|
)
|
|
|
|
}(time.Now())
|
|
|
|
|
|
|
|
return ls.Service.CanAccess(key, id)
|
|
|
|
}
|