Serve assets with bindata

This commit is contained in:
Dan Sosedoff
2014-10-13 14:40:56 -05:00
parent 15c01e0a55
commit f848116e1b
4 changed files with 47 additions and 3 deletions

43
api.go
View File

@@ -11,8 +11,27 @@ type Error struct {
Message string `json:"error"`
}
func assetContentType(name string) string {
if strings.Contains(name, ".css") {
return "text/css"
}
if strings.Contains(name, ".js") {
return "application/javascript"
}
return "text/plain"
}
func API_Home(c *gin.Context) {
c.File("./static/index.html")
data, err := Asset("static/index.html")
if err != nil {
c.String(400, err.Error())
return
}
c.Data(200, "text/html", data)
}
func API_RunQuery(c *gin.Context) {
@@ -104,3 +123,25 @@ func API_HandleQuery(query string, c *gin.Context) {
c.JSON(200, result)
}
func API_ServeAsset(c *gin.Context) {
file := fmt.Sprintf(
"static/%s/%s",
c.Params.ByName("type"),
c.Params.ByName("name"),
)
data, err := Asset(file)
if err != nil {
c.String(400, err.Error())
return
}
if len(data) == 0 {
c.String(404, "Asset is empty")
return
}
c.Data(200, assetContentType(file), data)
}