package router import ( "fmt" "net/http" ) type route struct { Pattern string Handler http.Handler } //Routes array of route type Routes []route //Add adicionar rota em routes func (Routes) Add(pattern string, test string) { fmt.Print(pattern) // append(routes, route{ // pattern, // handler, // }) } // func findURLMatch(data urls, url string) string { // for _, element := range data { // when := element.When // pattern := toRegex(when) // items := regexSubmatch(pattern, url) // if items[0] == url { // urlProxy := replaceStringsURL(items, element.To) // return urlProxy // } // } // return "" // } // func readFile(filePath string) urls { // file, err1 := ioutil.ReadFile(filePath) // if err1 != nil { // fmt.Printf("Error while reading file %s\n", filePath) // fmt.Printf("File error: %v\n", err1) // os.Exit(1) // } // var urls []urlObject // err2 := json.Unmarshal(file, &urls) // if err2 != nil { // fmt.Println("error:", err2) // os.Exit(1) // } // return urls // } // //PatternURL coloca barra no final de url se não tiver // func patternURL(url string) string { // lastChar := url[len(url)-1:] // if lastChar != "/" { // url = url + "/" // } // return url // } // //ToRegex converte uma expressao imputada em expressão do go // func toRegex(regex string) *regexp.Regexp { // return regexp.MustCompile(`(?m)` + regex) // } // //RegexSubmatch cria os matches aplicando a padrão de regex inputado // func regexSubmatch(pattern *regexp.Regexp, str string) []string { // data := []string{""} // items := pattern.FindAllStringSubmatch(str, -1) // if len(items) > 0 { // data = items[0] // } // return data // } // //ReplaceStringsURL alterar a url imputada colocando as variaveis da url inserida // func replaceStringsURL(items []string, urlPattern string) string { // for index, element := range items { // urlPattern = strings.Replace(urlPattern, "$"+strconv.Itoa(index), element, -1) // } // return urlPattern // }