Documentation ΒΆ
Index ΒΆ
- func PrintLogo(logoFile string)
- func PrintLogoEmbedded(fs embed.FS, path string)
- func Redirect(to string) func() Handler
- type Builder
- type Context
- func (ctx *Context) BadRequest(data string, a ...any) error
- func (ctx *Context) ChangeLanguage(to string) error
- func (ctx *Context) CreateCookie(name, data string) error
- func (ctx *Context) CreateCookieOptions(opt CookieOptions) error
- func (ctx *Context) DeleteCookie(name string) error
- func (ctx *Context) Forbidden(data string, a ...any) error
- func (ctx *Context) Get(key any) any
- func (ctx *Context) GetCurrentLanguage() string
- func (ctx *Context) GetLocalizer(file string) localizer.Localizer
- func (ctx *Context) GetQueryParam(name string) string
- func (ctx *Context) GetURLParam(name string) string
- func (ctx *Context) GetUser() session.User
- func (ctx *Context) HaveLocalizer() bool
- func (ctx *Context) HaveSession() bool
- func (ctx *Context) InternalServerError(data string, a ...any) error
- func (ctx *Context) Json(status int, data any) error
- func (ctx *Context) JsonOk(data interface{}) error
- func (ctx *Context) Localize(file, key string) string
- func (ctx *Context) LocalizeError(err core.UseCaseError) string
- func (ctx *Context) LocalizeWithoutShared(file, key string) string
- func (ctx *Context) NotContent() error
- func (ctx *Context) NotFound(data string, a ...any) error
- func (ctx *Context) Ok(data string, a ...any) error
- func (ctx *Context) PaginationToVM(pag pagination.Pagination) pagination.ViewModel
- func (ctx *Context) ParseForm(dst interface{})
- func (ctx *Context) ParseJson(dst any) error
- func (ctx *Context) ReadCookie(name string) (string, error)
- func (ctx *Context) Redirect(to string) error
- func (ctx *Context) RedirectCode(to string, code int) error
- func (ctx *Context) Render(status int, parsed string, vm interface{}) error
- func (ctx *Context) RenderBlock(status int, parsed, blockName string, vm interface{}) error
- func (ctx *Context) RenderBlockOk(parsed, blockName string, vm interface{}) error
- func (ctx *Context) RenderOk(parsed string, vm interface{}) error
- func (ctx *Context) RenderWithErrors(status int, parsed string, vm interface{}, ...) error
- func (ctx *Context) Set(key, value any)
- func (ctx *Context) String(status int, data string, a ...any) error
- func (ctx *Context) Validate(s any) map[string][]core.ValidationError
- type CookieOptions
- type Handler
- type Injector
- func (injector Injector) Add(builder Builder)
- func (injector Injector) CallBuilder(builder Builder) interface{}
- func (injector Injector) Get(name interface{}) (interface{}, error)
- func (injector Injector) GetByType(name reflect.Type) (interface{}, error)
- func (injector Injector) PopulateStruct(userStruct interface{})
- func (injector Injector) ResolveHandler(builder Builder) Handler
- func (injector Injector) Run(runner Runner)
- func (injector Injector) ShowAvailableBuilders()
- type Middleware
- type Renderer
- type Router
- func (r *Router) Add(builder Builder)
- func (r *Router) Delete(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Get(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Handle(method, pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Head(pattern string, builder Builder, middlewares ...Middleware)
- func (r Router) Listen(address string)
- func (r *Router) Options(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Patch(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) PopulateStruct(s interface{})
- func (r *Router) Post(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Put(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Run(runner Runner)
- func (r *Router) ShowAvailableBuilders()
- func (r *Router) Static(path string)
- func (r *Router) StaticEmbedded(fs embed.FS)
- func (r *Router) StaticMount(url, path string)
- func (r *Router) StaticMountEmbedded(url string, fs embed.FS)
- func (r *Router) Trace(pattern string, builder Builder, middlewares ...Middleware)
- func (r *Router) Use(middleware Middleware)
- func (r *Router) UseLocalization(files embed.FS, sharedKey, errorsKey string)
- type Runner
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
func PrintLogo ΒΆ
func PrintLogo(logoFile string)
PrintLogo takes a file path and prints your fancy ascii logo. It will fail if your file is not found.
func PrintLogoEmbedded ΒΆ added in v0.0.42
PrintLogo takes a embedded filesystem and file path and prints your fancy ascii logo. It will fail if your file is not found.
Types ΒΆ
type Builder ΒΆ
type Builder interface{}
Builder is a function that expects anything and retuns the type that builds. The type cant be func() interface{} cause some errors appears in runtime. So it's represented as an interface.
type Context ΒΆ added in v0.0.15
type Context struct { Req *http.Request Res http.ResponseWriter // contains filtered or unexported fields }
func (*Context) BadRequest ΒΆ added in v0.2.4
func (*Context) ChangeLanguage ΒΆ added in v0.0.25
func (*Context) CreateCookie ΒΆ added in v0.3.8
func (*Context) CreateCookieOptions ΒΆ added in v0.3.8
func (ctx *Context) CreateCookieOptions(opt CookieOptions) error
func (*Context) DeleteCookie ΒΆ added in v0.3.8
func (*Context) GetCurrentLanguage ΒΆ added in v0.0.18
func (*Context) GetLocalizer ΒΆ added in v0.1.2
func (*Context) GetQueryParam ΒΆ added in v0.0.45
func (*Context) GetURLParam ΒΆ added in v0.5.0
func (*Context) HaveLocalizer ΒΆ added in v0.3.3
func (*Context) HaveSession ΒΆ added in v0.1.1
func (*Context) InternalServerError ΒΆ added in v0.2.4
func (*Context) LocalizeError ΒΆ added in v0.1.1
func (ctx *Context) LocalizeError(err core.UseCaseError) string
func (*Context) LocalizeWithoutShared ΒΆ added in v0.1.1
func (*Context) NotContent ΒΆ added in v0.3.4
func (*Context) PaginationToVM ΒΆ added in v0.1.2
func (ctx *Context) PaginationToVM(pag pagination.Pagination) pagination.ViewModel
func (*Context) ParseForm ΒΆ added in v0.0.18
func (ctx *Context) ParseForm(dst interface{})
ParseForm parses req.Form and then serializes the form data to the dst struct using reflection. The form names should match to the 'html' tag or, if its not setted, to the field name. ParseForm only supports serializing data to one-depth structs. Example, using this struct as target:
type MyStruct struct { A bool, B int `html:"pagination.currentPage"` }
And having this serialized form:
"A=false&pagination.currentPage=2"
Calling ParseForm like this (NOTE THAT A POINTER TO THE STRUCT IS BEING PASSED):
var s MyStruct phx.ParseForm(req, &s)
It will result to this fullfilled struct:
{ A = false, B: 2 }
The supported field types are:
int, int8, int16, int32, int64
uint, uint8, uint16, uint32, uint64
float32, float64
bool
string
time.Time
func (*Context) ReadCookie ΒΆ added in v0.3.8
func (*Context) RedirectCode ΒΆ added in v0.0.18
func (*Context) RenderBlock ΒΆ added in v0.4.0
func (*Context) RenderBlockOk ΒΆ added in v0.5.0
func (*Context) RenderWithErrors ΒΆ added in v0.0.15
type CookieOptions ΒΆ added in v0.3.8
type CookieOptions struct { Name string Expires time.Duration Value string // Set if front scripts can access to cookie. // If its true, front script cannot access. // By default true. HttpOnly bool // Sets if cookies are only send through https. // If its true means https only. By default false. Secure bool }
type Injector ΒΆ
type Injector struct {
// contains filtered or unexported fields
}
Injector is an automated dependency injector inspired in Sping's DI. It will detect which builder to call using its return type. If the builder haver params, it will fullfill that params calling other builders that provides its types.
func (Injector) CallBuilder ΒΆ
CallBuilder injecting all parameters with provided builders. If some parameter type cannot be found, it will panic.
func (Injector) PopulateStruct ΒΆ
func (injector Injector) PopulateStruct(userStruct interface{})
PopulateStruct fills a struct with the implementations that the injector can create. Make sure you pass a reference and not a value.
func (Injector) ResolveHandler ΒΆ
ResolveHandler created by a builder.
func (Injector) Run ΒΆ added in v0.3.0
Run is a function that runs a Runner. Show Runner type for more information.
func (Injector) ShowAvailableBuilders ΒΆ
func (injector Injector) ShowAvailableBuilders()
ShowAvailableBuilders prints all registered builders.
type Middleware ΒΆ
type Renderer ΒΆ added in v0.3.0
type Renderer interface { Render(ctx *Context, status int, parsed string, vm interface{}) error RenderBlock(ctx *Context, status int, parsed, blockName string, vm interface{}) error RenderWithErrors(ctx *Context, status int, parsed string, vm interface{}, formErrors map[string][]core.ValidationError) error RenderBlockWithErrors(ctx *Context, status int, parsed, blockName string, vm interface{}, formErrors map[string][]core.ValidationError) error }
type Router ΒΆ added in v0.0.15
func NewRouterFromOther ΒΆ added in v0.0.15
func (*Router) Delete ΒΆ added in v0.0.15
func (r *Router) Delete(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Get ΒΆ added in v0.0.15
func (r *Router) Get(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Handle ΒΆ added in v0.0.15
func (r *Router) Handle(method, pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Head ΒΆ added in v0.0.15
func (r *Router) Head(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Options ΒΆ added in v0.0.15
func (r *Router) Options(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Patch ΒΆ added in v0.0.15
func (r *Router) Patch(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) PopulateStruct ΒΆ added in v0.0.15
func (r *Router) PopulateStruct(s interface{})
func (*Router) Post ΒΆ added in v0.0.15
func (r *Router) Post(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Put ΒΆ added in v0.0.15
func (r *Router) Put(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) ShowAvailableBuilders ΒΆ added in v0.0.15
func (r *Router) ShowAvailableBuilders()
func (*Router) StaticEmbedded ΒΆ added in v0.3.0
func (*Router) StaticMount ΒΆ added in v0.3.0
func (*Router) StaticMountEmbedded ΒΆ added in v0.3.0
func (*Router) Trace ΒΆ added in v0.0.15
func (r *Router) Trace(pattern string, builder Builder, middlewares ...Middleware)
func (*Router) Use ΒΆ added in v0.0.15
func (r *Router) Use(middleware Middleware)
type Runner ΒΆ added in v0.3.0
type Runner interface{}
Runner is any funtion that returns void. It is use as an easy way to ask to the injetor to provide dependencies to do something. For example, imagine that we have an interface called UserDao and we just want do something with it outside any builder or dependecy created using this injector. The UserDao is registered this way:
injector.Add(db.NewUserDao)
Then, you can ask for the dependency to the injector this way:
var userDao db.UserDao userDao = injector.GetByType(reflect.TypeOf(&userDao).Elem()).(db.UserDao)
Its pretty cumbersome huh? You have to do that because you know it is an interface. Using Runner you can just do this:
injector.Run(func(userDao db.UserDao) { [... do whatever you want with userdDao ...] })
The callback function will be exectued inmediatly.