Refactor middleware to handle Sui files and fix potential errors
This commit is contained in:
parent
0dde10caca
commit
07dfc90d2e
2 changed files with 18 additions and 1 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
@ -47,6 +48,7 @@ func withStaticFileServer(c *gin.Context) {
|
||||||
if matches := rewrite.Pattern.FindStringSubmatch(c.Request.URL.Path); matches != nil {
|
if matches := rewrite.Pattern.FindStringSubmatch(c.Request.URL.Path); matches != nil {
|
||||||
log.Debug("Rewrite FindStringSubmatch: %s => %s", c.Request.URL.Path, rewrite.Replacement)
|
log.Debug("Rewrite FindStringSubmatch: %s => %s", c.Request.URL.Path, rewrite.Replacement)
|
||||||
c.Request.URL.Path = rewrite.Pattern.ReplaceAllString(c.Request.URL.Path, rewrite.Replacement)
|
c.Request.URL.Path = rewrite.Pattern.ReplaceAllString(c.Request.URL.Path, rewrite.Replacement)
|
||||||
|
log.Debug("Rewrite FindStringSubmatch After: %s", c.Request.URL.Path)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -54,14 +56,23 @@ func withStaticFileServer(c *gin.Context) {
|
||||||
// Sui file server
|
// Sui file server
|
||||||
if strings.HasSuffix(c.Request.URL.Path, ".sui") {
|
if strings.HasSuffix(c.Request.URL.Path, ".sui") {
|
||||||
|
|
||||||
|
log.Debug("Sui File: %s", c.Request.URL.Path)
|
||||||
|
|
||||||
|
// Default index.sui
|
||||||
|
if filepath.Base(c.Request.URL.Path) == ".sui" {
|
||||||
|
c.Request.URL.Path = strings.TrimSuffix(c.Request.URL.Path, ".sui") + "index.sui"
|
||||||
|
}
|
||||||
|
|
||||||
r, code, err := api.NewRequestContext(c)
|
r, code, err := api.NewRequestContext(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Error("Sui Reqeust Error: %s", err.Error())
|
||||||
c.AbortWithError(code, err)
|
c.AbortWithError(code, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
html, code, err := r.Render()
|
html, code, err := r.Render()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Error("Sui Render Error: %s", err.Error())
|
||||||
c.AbortWithError(code, err)
|
c.AbortWithError(code, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -137,8 +137,14 @@ func parserPath(c *gin.Context) (string, map[string]string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No matchers
|
||||||
if matchers == nil {
|
if matchers == nil {
|
||||||
return "", nil, fmt.Errorf("no route matchers")
|
if len(parts) < 1 {
|
||||||
|
return "", nil, fmt.Errorf("no route matchers")
|
||||||
|
}
|
||||||
|
|
||||||
|
fileParts = append(fileParts, parts...)
|
||||||
|
return filepath.Join(fileParts...) + ".sui", params, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Match the page parts
|
// Match the page parts
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue