33 lines
		
	
	
		
			976 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			976 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Beego (http://beego.me/)
 | 
						|
//
 | 
						|
// @description beego is an open-source, high-performance web framework for the Go programming language.
 | 
						|
//
 | 
						|
// @link        http://github.com/astaxie/beego for the canonical source repository
 | 
						|
//
 | 
						|
// @license     http://github.com/astaxie/beego/blob/master/LICENSE
 | 
						|
//
 | 
						|
// @authors     astaxie
 | 
						|
package beego
 | 
						|
 | 
						|
// FilterRouter defines filter operation before controller handler execution.
 | 
						|
// it can match patterned url and do filter function when action arrives.
 | 
						|
type FilterRouter struct {
 | 
						|
	filterFunc FilterFunc
 | 
						|
	tree       *Tree
 | 
						|
	pattern    string
 | 
						|
}
 | 
						|
 | 
						|
// ValidRouter check current request is valid for this filter.
 | 
						|
// if matched, returns parsed params in this request by defined filter router pattern.
 | 
						|
func (f *FilterRouter) ValidRouter(router string) (bool, map[string]string) {
 | 
						|
	isok, params := f.tree.Match(router)
 | 
						|
	if isok == nil {
 | 
						|
		return false, nil
 | 
						|
	}
 | 
						|
	if isok, ok := isok.(bool); ok {
 | 
						|
		return isok, params
 | 
						|
	} else {
 | 
						|
		return false, nil
 | 
						|
	}
 | 
						|
}
 |