1
0
mirror of https://github.com/volatiletech/authboss.git synced 2024-11-28 08:58:38 +02:00

Clean up defaults package a bit

This commit is contained in:
Aaron L 2018-02-16 09:55:45 -08:00
parent 9eb5731a3d
commit 7f97d632d0
3 changed files with 29 additions and 8 deletions

View File

@ -13,16 +13,16 @@ import (
"github.com/volatiletech/authboss"
)
// SetDefaultCore creates instances of all the default pieces
//
// Assumes you have a ViewRenderer already set.
func SetDefaultCore(config *authboss.Config, useUsername bool) {
// SetCore creates instances of all the default pieces
// with the exception of ViewRenderer which should be already set
// before calling this method.
func SetCore(config *authboss.Config, useUsername bool) {
logger := NewLogger(os.Stdout)
config.Core.Router = NewRouter()
config.Core.ErrorHandler = ErrorHandler{LogWriter: logger}
config.Core.Responder = &Responder{Renderer: config.Core.ViewRenderer}
config.Core.Redirector = &Redirector{Renderer: config.Core.ViewRenderer, FormValueName: "redir"}
config.Core.ErrorHandler = NewErrorHandler(logger)
config.Core.Responder = NewResponder(config.Core.ViewRenderer)
config.Core.Redirector = NewRedirector(config.Core.ViewRenderer, RedirectFormValueName)
config.Core.BodyReader = NewHTTPFormReader(useUsername)
config.Core.Mailer = NewLogMailer(os.Stdout)
config.Core.Logger = logger

View File

@ -16,6 +16,11 @@ type ErrorHandler struct {
LogWriter authboss.Logger
}
// NewErrorHandler constructor
func NewErrorHandler(logger authboss.Logger) ErrorHandler {
return ErrorHandler{LogWriter: logger}
}
// Wrap an http handler with an error
func (e ErrorHandler) Wrap(handler func(w http.ResponseWriter, r *http.Request) error) http.Handler {
return errorHandler{

View File

@ -6,11 +6,22 @@ import (
"github.com/volatiletech/authboss"
)
const (
// RedirectFormValueName is the name of the form field
// in the http request that will be used when redirecting
RedirectFormValueName = "redir"
)
// Responder helps respond to http requests
type Responder struct {
Renderer authboss.Renderer
}
// NewResponder constructor
func NewResponder(renderer authboss.Renderer) *Responder {
return &Responder{Renderer: renderer}
}
// Respond to an HTTP request. It's main job is to merge data that comes in from
// various middlewares via the context with the data sent by the controller and render that.
func (r *Responder) Respond(w http.ResponseWriter, req *http.Request, code int, templateName string, data authboss.HTMLData) error {
@ -37,10 +48,15 @@ func isAPIRequest(r *http.Request) bool {
// Redirector for http requests
type Redirector struct {
Renderer authboss.Renderer
// FormValueName for the redirection
FormValueName string
}
Renderer authboss.Renderer
// NewRedirector constructor
func NewRedirector(renderer authboss.Renderer, formValueName string) *Redirector {
return &Redirector{FormValueName: formValueName, Renderer: renderer}
}
// Redirect the client elsewhere. If it's an API request it will simply render