// Code generated by gowrap. DO NOT EDIT.
// template: ../../../assets/templates/middleware/middleware.tmpl
// gowrap: http://github.com/hexdigest/gowrap

package middleware

//go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/spaces -i Spaces -t ../../../assets/templates/middleware/middleware.tmpl -o middleware.go -l ""

import (
	"git.perx.ru/perxis/perxis-go/pkg/spaces"
	"go.uber.org/zap"
)

type Middleware func(spaces.Spaces) spaces.Spaces

func WithLog(s spaces.Spaces, logger *zap.Logger, log_access bool) spaces.Spaces {
	if logger == nil {
		logger = zap.NewNop()
	}
	logger = logger.Named("Spaces")
	if log_access {
		s = AccessLoggingMiddleware(logger)(s)
	}
	s = ErrorLoggingMiddleware(logger)(s)

	s = RecoveringMiddleware(logger)(s)
	return s
}