mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 10:41:03 +01:00
Nothing special: Linting
This commit is contained in:
parent
679b707751
commit
a337b4768d
|
@ -7,7 +7,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// DefaultBasicAuth is "Authorization Required"
|
||||
// DefaultBasicAuthRealm is "Authorization Required"
|
||||
DefaultBasicAuthRealm = "Authorization Required"
|
||||
// DefaultBasicAuthContextKey is the "auth"
|
||||
// this key is used to do context.Set("auth", theUsernameFromBasicAuth)
|
||||
|
|
|
@ -2,6 +2,7 @@ package config
|
|||
|
||||
import "github.com/imdario/mergo"
|
||||
|
||||
// Editor the configs for the Editor plugin
|
||||
type Editor struct {
|
||||
// Host if empty used the iris server's host
|
||||
Host string
|
||||
|
@ -34,7 +35,7 @@ func (c Editor) Merge(cfg []Editor) (config Editor) {
|
|||
return
|
||||
}
|
||||
|
||||
// Merge MergeSingle the default with the given config and returns the result
|
||||
// MergeSingle merges the default with the given config and returns the result
|
||||
func (c Editor) MergeSingle(cfg Editor) (config Editor) {
|
||||
|
||||
config = cfg
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"github.com/imdario/mergo"
|
||||
)
|
||||
|
||||
// DefaultProfilePath is the default profile(http debug) path which is /debug/pprof
|
||||
const DefaultProfilePath = "/debug/pprof"
|
||||
|
||||
type (
|
||||
|
@ -145,7 +146,7 @@ func (c Iris) Merge(cfg []Iris) (config Iris) {
|
|||
return
|
||||
}
|
||||
|
||||
// Merge MergeSingle the default with the given config and returns the result
|
||||
// MergeSingle merges the default with the given config and returns the result
|
||||
func (c Iris) MergeSingle(cfg Iris) (config Iris) {
|
||||
|
||||
config = cfg
|
||||
|
|
|
@ -13,6 +13,7 @@ var (
|
|||
)
|
||||
|
||||
type (
|
||||
// Logger contains the configs for the Logger
|
||||
Logger struct {
|
||||
Out io.Writer
|
||||
Prefix string
|
||||
|
@ -20,6 +21,7 @@ type (
|
|||
}
|
||||
)
|
||||
|
||||
// DefaultLogger returns the default configs for the Logger
|
||||
func DefaultLogger() Logger {
|
||||
return Logger{Out: os.Stdout, Prefix: "", Flag: 0}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,8 @@ var (
|
|||
|
||||
const (
|
||||
// DefaultCookieName the secret cookie's name for sessions
|
||||
DefaultCookieName = "irissessionid"
|
||||
DefaultCookieName = "irissessionid"
|
||||
// DefaultSessionGcDuration is the default Session Manager's GCDuration , which is 2 hours
|
||||
DefaultSessionGcDuration = time.Duration(2) * time.Hour
|
||||
// DefaultRedisNetwork the redis network option, "tcp"
|
||||
DefaultRedisNetwork = "tcp"
|
||||
|
@ -97,7 +98,7 @@ func (c Sessions) Merge(cfg []Sessions) (config Sessions) {
|
|||
return
|
||||
}
|
||||
|
||||
// Merge MergeSingle the default with the given config and returns the result
|
||||
// MergeSingle merges the default with the given config and returns the result
|
||||
func (c Sessions) MergeSingle(cfg Sessions) (config Sessions) {
|
||||
|
||||
config = cfg
|
||||
|
@ -135,7 +136,7 @@ func (c Redis) Merge(cfg []Redis) (config Redis) {
|
|||
return
|
||||
}
|
||||
|
||||
// Merge MergeSingle the default with the given config and returns the result
|
||||
// MergeSingle merges the default with the given config and returns the result
|
||||
func (c Redis) MergeSingle(cfg Redis) (config Redis) {
|
||||
|
||||
config = cfg
|
||||
|
|
|
@ -43,7 +43,7 @@ func (ctx *Context) Render(name string, binding interface{}, layout ...string) e
|
|||
return ctx.HTML(StatusOK, name, binding, layout...)
|
||||
}
|
||||
|
||||
// RenderStrings accepts a template filename, its context data and returns the result of the parsed template (string)
|
||||
// RenderString accepts a template filename, its context data and returns the result of the parsed template (string)
|
||||
func (ctx *Context) RenderString(name string, binding interface{}, layout ...string) (result string, err error) {
|
||||
return ctx.station.templates.RenderString(name, binding, layout...)
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ func (ctx *Context) ExecuteTemplate(tmpl *template.Template, pageContext interfa
|
|||
// receives three parameters, it's low-level function, instead you can use .ServeFile(string)
|
||||
//
|
||||
// You can define your own "Content-Type" header also, after this function call
|
||||
func (ctx *Context) ServeContent(content io.ReadSeeker, filename string, modtime time.Time, gzipCompression bool) (err error) {
|
||||
func (ctx *Context) ServeContent(content io.ReadSeeker, filename string, modtime time.Time, gzipCompression bool) error {
|
||||
if t, err := time.Parse(TimeFormat, ctx.RequestHeader(IfModifiedSince)); err == nil && modtime.Before(t.Add(1*time.Second)) {
|
||||
ctx.RequestCtx.Response.Header.Del(ContentType)
|
||||
ctx.RequestCtx.Response.Header.Del(ContentLength)
|
||||
|
@ -119,7 +119,7 @@ func (ctx *Context) ServeContent(content io.ReadSeeker, filename string, modtime
|
|||
out = ctx.RequestCtx.Response.BodyWriter()
|
||||
|
||||
}
|
||||
_, err = io.Copy(out, content)
|
||||
_, err := io.Copy(out, content)
|
||||
return ErrServeContent.With(err)
|
||||
}
|
||||
|
||||
|
|
6
iris.go
6
iris.go
|
@ -59,8 +59,8 @@ var (
|
|||
DefaultEngine = config.DefaultEngine
|
||||
// NoEngine conversion for config.NoEngine
|
||||
NoEngine = config.NoEngine
|
||||
//
|
||||
|
||||
// NoLayout to disable layout for a particular template file
|
||||
// conversion for config.NoLayout
|
||||
NoLayout = config.NoLayout
|
||||
)
|
||||
|
||||
|
@ -192,7 +192,7 @@ func (s *Iris) printBanner() {
|
|||
}
|
||||
}()
|
||||
|
||||
var i uint64 = 0
|
||||
var i uint64
|
||||
|
||||
printTicker.OnTick(func() {
|
||||
if len(banner) <= int(atomic.LoadUint64(&i)) {
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
)
|
||||
|
||||
// DefaultIris in order to use iris.Get(...,...) we need a default Iris on the package level
|
||||
var DefaultIris *Iris = New()
|
||||
var DefaultIris = New()
|
||||
|
||||
// Listen starts the standalone http server
|
||||
// which listens to the addr parameter which as the form of
|
||||
|
|
9
party.go
9
party.go
|
@ -179,7 +179,8 @@ func (p *GardenParty) API(path string, controller HandlerAPI, middlewares ...Han
|
|||
}
|
||||
|
||||
func(path string, typ reflect.Type, contextField reflect.StructField, methodFunc reflect.Value, method string) {
|
||||
handlersFn := make([]HandlerFunc, 0)
|
||||
var handlersFn []HandlerFunc
|
||||
|
||||
handlersFn = append(handlersFn, middlewares...)
|
||||
handlersFn = append(handlersFn, func(ctx *Context) {
|
||||
newController := reflect.New(typ).Elem()
|
||||
|
@ -223,7 +224,8 @@ func (p *GardenParty) API(path string, controller HandlerAPI, middlewares ...Han
|
|||
}
|
||||
|
||||
func(registedPath string, typ reflect.Type, contextField reflect.StructField, methodFunc reflect.Value, paramsLen int, method string) {
|
||||
handlersFn := make([]HandlerFunc, 0)
|
||||
var handlersFn []HandlerFunc
|
||||
|
||||
handlersFn = append(handlersFn, middlewares...)
|
||||
handlersFn = append(handlersFn, func(ctx *Context) {
|
||||
newController := reflect.New(typ).Elem()
|
||||
|
@ -407,7 +409,7 @@ func (p *GardenParty) StaticHandlerFunc(systemPath string, stripSlashes int, com
|
|||
// * stripSlashes = 2, original path: "/foo/bar", result: ""
|
||||
func (p *GardenParty) Static(relative string, systemPath string, stripSlashes int) {
|
||||
if relative[len(relative)-1] != SlashByte { // if / then /*filepath, if /something then /something/*filepath
|
||||
relative += "/"
|
||||
relative += Slash
|
||||
}
|
||||
|
||||
h := p.StaticHandlerFunc(systemPath, stripSlashes, false, false, nil)
|
||||
|
@ -447,7 +449,6 @@ func (p *GardenParty) StaticFS(reqPath string, systemPath string, stripSlashes i
|
|||
// * stripSlashes = 1, original path: "/foo/bar", result: "/bar"
|
||||
// * stripSlashes = 2, original path: "/foo/bar", result: ""
|
||||
// * if you don't know what to put on stripSlashes just 1
|
||||
|
||||
func (p *GardenParty) StaticWeb(reqPath string, systemPath string, stripSlashes int) {
|
||||
if reqPath[len(reqPath)-1] != SlashByte { // if / then /*filepath, if /something then /something/*filepath
|
||||
reqPath += "/"
|
||||
|
|
27
plugin.go
27
plugin.go
|
@ -45,6 +45,7 @@ type (
|
|||
// parameter is the Route
|
||||
PreHandle(IRoute)
|
||||
}
|
||||
// PreHandleFunc implements the simple function listener for the PreHandle(IRoute)
|
||||
PreHandleFunc func(IRoute)
|
||||
// IPluginPostHandle implements the PostHandle(IRoute) method
|
||||
IPluginPostHandle interface {
|
||||
|
@ -53,6 +54,7 @@ type (
|
|||
// parameter is the Route
|
||||
PostHandle(IRoute)
|
||||
}
|
||||
// PostHandleFunc implements the simple function listener for the PostHandle(IRoute)
|
||||
PostHandleFunc func(IRoute)
|
||||
// IPluginPreListen implements the PreListen(*Iris) method
|
||||
IPluginPreListen interface {
|
||||
|
@ -61,6 +63,7 @@ type (
|
|||
// parameter is the station
|
||||
PreListen(*Iris)
|
||||
}
|
||||
// PreListenFunc implements the simple function listener for the PreListen(*Iris)
|
||||
PreListenFunc func(*Iris)
|
||||
// IPluginPostListen implements the PostListen(*Iris) method
|
||||
IPluginPostListen interface {
|
||||
|
@ -68,6 +71,7 @@ type (
|
|||
// parameter is the station
|
||||
PostListen(*Iris)
|
||||
}
|
||||
// PostListenFunc implements the simple function listener for the PostListen(*Iris)
|
||||
PostListenFunc func(*Iris)
|
||||
// IPluginPreClose implements the PreClose(*Iris) method
|
||||
IPluginPreClose interface {
|
||||
|
@ -77,6 +81,7 @@ type (
|
|||
// The plugin is deactivated after this state
|
||||
PreClose(*Iris)
|
||||
}
|
||||
// PreCloseFunc implements the simple function listener for the PreClose(*Iris)
|
||||
PreCloseFunc func(*Iris)
|
||||
|
||||
// IPluginPreDownload It's for the future, not being used, I need to create
|
||||
|
@ -91,6 +96,8 @@ type (
|
|||
// must return a boolean, if false then the plugin is not permmited to download this file
|
||||
PreDownload(plugin IPlugin, downloadURL string) // bool
|
||||
}
|
||||
|
||||
// PreDownloadFunc implements the simple function listener for the PreDownload(IPlugin,string)
|
||||
PreDownloadFunc func(IPlugin, string)
|
||||
|
||||
// IPluginContainer is the interface which the PluginContainer should implements
|
||||
|
@ -137,26 +144,46 @@ type (
|
|||
|
||||
// convert the functions to IPlugin
|
||||
|
||||
// PreHandle it's being called every time BEFORE a Route is registed to the Router
|
||||
//
|
||||
// parameter is the Route
|
||||
func (fn PreHandleFunc) PreHandle(route IRoute) {
|
||||
fn(route)
|
||||
}
|
||||
|
||||
// PostHandle it's being called every time AFTER a Route successfully registed to the Router
|
||||
//
|
||||
// parameter is the Route
|
||||
func (fn PostHandleFunc) PostHandle(route IRoute) {
|
||||
fn(route)
|
||||
}
|
||||
|
||||
// PreListen it's being called only one time, BEFORE the Server is started (if .Listen called)
|
||||
// is used to do work at the time all other things are ready to go
|
||||
// parameter is the station
|
||||
func (fn PreListenFunc) PreListen(station *Iris) {
|
||||
fn(station)
|
||||
}
|
||||
|
||||
// PostListen it's being called only one time, AFTER the Server is started (if .Listen called)
|
||||
// parameter is the station
|
||||
func (fn PostListenFunc) PostListen(station *Iris) {
|
||||
fn(station)
|
||||
}
|
||||
|
||||
// PreClose it's being called only one time, BEFORE the Iris .Close method
|
||||
// any plugin cleanup/clear memory happens here
|
||||
//
|
||||
// The plugin is deactivated after this state
|
||||
func (fn PreCloseFunc) PreClose(station *Iris) {
|
||||
fn(station)
|
||||
}
|
||||
|
||||
// PreDownload it's being called every time a plugin tries to download something
|
||||
//
|
||||
// first parameter is the plugin
|
||||
// second parameter is the download url
|
||||
// must return a boolean, if false then the plugin is not permmited to download this file
|
||||
func (fn PreDownloadFunc) PreDownload(pl IPlugin, downloadURL string) {
|
||||
fn(pl, downloadURL)
|
||||
}
|
||||
|
|
|
@ -12,16 +12,19 @@ import (
|
|||
"github.com/kataras/iris/config"
|
||||
)
|
||||
|
||||
// Engine the amber template engine
|
||||
type Engine struct {
|
||||
Config *config.Template
|
||||
templateCache map[string]*template.Template
|
||||
mu sync.Mutex
|
||||
}
|
||||
|
||||
// New creates and returns a new amber engine
|
||||
func New(cfg config.Template) *Engine {
|
||||
return &Engine{Config: &cfg}
|
||||
}
|
||||
|
||||
// BuildTemplates builds the amber templates
|
||||
func (e *Engine) BuildTemplates() error {
|
||||
opt := amber.DirOptions{}
|
||||
opt.Recursive = true
|
||||
|
@ -67,6 +70,7 @@ func (e *Engine) fromCache(relativeName string) *template.Template {
|
|||
return nil
|
||||
}
|
||||
|
||||
// ExecuteWriter executes a templates and write its results to the out writer
|
||||
func (e *Engine) ExecuteWriter(out io.Writer, name string, binding interface{}, layout string) error {
|
||||
if tmpl := e.fromCache(name); tmpl != nil {
|
||||
return tmpl.ExecuteTemplate(out, name, binding)
|
||||
|
|
|
@ -14,6 +14,7 @@ import (
|
|||
)
|
||||
|
||||
type (
|
||||
// Engine the html/template engine
|
||||
Engine struct {
|
||||
Config *config.Template
|
||||
Templates *template.Template
|
||||
|
|
|
@ -11,7 +11,7 @@ type Engine struct {
|
|||
*html.Engine
|
||||
}
|
||||
|
||||
// new creates and returns a new JadeEngine with its configs
|
||||
// New creates and returns a new JadeEngine with its configs
|
||||
func New(cfg config.Template) *Engine {
|
||||
|
||||
underline := &Engine{Engine: html.New(cfg)}
|
||||
|
|
|
@ -16,7 +16,9 @@ import (
|
|||
)
|
||||
|
||||
// Supports RAW markdown only, no context binding or layout, to use dynamic markdown with other template engine use the context.Markdown/MarkdownString
|
||||
|
||||
type (
|
||||
// Engine the jade engine
|
||||
Engine struct {
|
||||
Config *config.Template
|
||||
templateCache map[string][]byte
|
||||
|
@ -29,6 +31,7 @@ func New(c config.Template) *Engine {
|
|||
return &Engine{Config: &c, templateCache: make(map[string][]byte)}
|
||||
}
|
||||
|
||||
// BuildTemplates builds the templates
|
||||
func (e *Engine) BuildTemplates() error {
|
||||
if e.Config.Asset == nil || e.Config.AssetNames == nil {
|
||||
return e.buildFromDir()
|
||||
|
@ -140,7 +143,8 @@ func (e *Engine) fromCache(relativeName string) []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
// layout here is unnesecery
|
||||
// ExecuteWriter executes a templates and write its results to the out writer
|
||||
// layout here is useless
|
||||
func (e *Engine) ExecuteWriter(out io.Writer, name string, binding interface{}, layout string) error {
|
||||
if tmpl := e.fromCache(name); tmpl != nil {
|
||||
_, err := out.Write(tmpl)
|
||||
|
|
6
route.go
6
route.go
|
@ -24,7 +24,7 @@ type (
|
|||
//
|
||||
|
||||
// used to check arguments with the route's named parameters and return the correct url
|
||||
// second parameter is false when the action cannot be done
|
||||
// second return value is false when the action cannot be done
|
||||
Parse(...interface{}) (string, bool)
|
||||
|
||||
// GetURI returns the GetDomain() + Parse(...optional named parameters if route is dynamic)
|
||||
|
@ -169,6 +169,8 @@ func (r *Route) setHost(s string) {
|
|||
r.host = s
|
||||
}
|
||||
|
||||
// Parse used to check arguments with the route's named parameters and return the correct url
|
||||
// second return value is false when the action cannot be done
|
||||
func (r *Route) Parse(args ...interface{}) (string, bool) {
|
||||
// check if arguments are not equal to the named parameters ( : = 1, * = all named parameters split to / ), if this happens then send not found err
|
||||
///TODO: I'm thinking of making an option to disable these checks and just return a result, because they have cost when rendering an html/template, not too big compared to the render action but... we will see
|
||||
|
@ -210,6 +212,8 @@ func (r *Route) Parse(args ...interface{}) (string, bool) {
|
|||
return fmt.Sprintf(r.formattedPath, args...), true
|
||||
}
|
||||
|
||||
// GetURI returns the GetDomain() + Parse(...optional named parameters if route is dynamic)
|
||||
// instead of Parse it just returns an empty string if path parse is failed
|
||||
func (r *Route) GetURI(args ...interface{}) (uri string) {
|
||||
scheme := "http://"
|
||||
if r.isTLS {
|
||||
|
|
|
@ -219,7 +219,7 @@ func (r *router) optimize() {
|
|||
func (r *router) optimizeLookups() {
|
||||
// set the isTLS on all routes and the listening full host
|
||||
listeningHost := r.station.server.Listener().Addr().String()
|
||||
for idx, _ := range r.lookups {
|
||||
for idx := range r.lookups {
|
||||
theR := r.lookups[idx]
|
||||
theR.setTLS(r.station.server.IsSecure())
|
||||
if theR.GetDomain() == "" { // means local, no subdomain
|
||||
|
|
|
@ -13,6 +13,7 @@ func init() {
|
|||
}
|
||||
|
||||
var (
|
||||
// Provider is the redis provider
|
||||
Provider = sessions.NewProvider("redis")
|
||||
// redis is the default redis service, you can set configs via this object
|
||||
redis = service.New()
|
||||
|
|
|
@ -215,7 +215,7 @@ func dial(network string, addr string, pass string) (redis.Conn, error) {
|
|||
return nil, err
|
||||
}
|
||||
if pass != "" {
|
||||
if _, err := c.Do("AUTH", pass); err != nil {
|
||||
if _, err = c.Do("AUTH", pass); err != nil {
|
||||
c.Close()
|
||||
return nil, err
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ func (r *Service) Connect() {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, err := red.Do("SELECT", c.Database); err != nil {
|
||||
if _, err = red.Do("SELECT", c.Database); err != nil {
|
||||
red.Close()
|
||||
return nil, err
|
||||
}
|
||||
|
|
2
tree.go
2
tree.go
|
@ -132,7 +132,7 @@ func (_tree *tree) serve(reqCtx *fasthttp.RequestCtx, path string) bool {
|
|||
// response because older user agents may not understand 301/307.
|
||||
// Shouldn't send the response for POST or HEAD; that leaves GET.
|
||||
if _tree.method == MethodGet {
|
||||
note := "<a href=\"" + utils.HtmlEscape(urlToRedirect) + "\">Moved Permanently</a>.\n"
|
||||
note := "<a href=\"" + utils.HTMLEscape(urlToRedirect) + "\">Moved Permanently</a>.\n"
|
||||
ctx.Write(note)
|
||||
}
|
||||
_tree.pool.Put(ctx)
|
||||
|
|
|
@ -22,8 +22,8 @@ var htmlReplacer = strings.NewReplacer(
|
|||
"'", "'",
|
||||
)
|
||||
|
||||
// HtmlEscape returns a string which has no valid html code
|
||||
func HtmlEscape(s string) string {
|
||||
// HTMLEscape returns a string which has no valid html code
|
||||
func HTMLEscape(s string) string {
|
||||
return htmlReplacer.Replace(s)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user