MCPcopy
hub / github.com/hasura/graphql-engine / BuildConsoleRouter

Function BuildConsoleRouter

cli/pkg/console/consoleserver.go:126–150  ·  view source on GitHub ↗
(templateProvider TemplateProvider, templateVersion, staticDir string, opts gin.H)

Source from the content-addressed store, hash-verified

124}
125
126func BuildConsoleRouter(templateProvider TemplateProvider, templateVersion, staticDir string, opts gin.H) (*gin.Engine, error) {
127 var op errors.Op = "console.BuildConsoleRouter"
128 // An Engine instance with the Logger and Recovery middleware already attached.
129 gin.SetMode(gin.ReleaseMode)
130 r := gin.New()
131 if !templateProvider.DoTemplateExist(templateProvider.BasePath() + templateVersion + templateProvider.TemplateFilename()) {
132 templateVersion = "latest"
133 }
134 // Template console.gohtml
135 templateRender, err := templateProvider.LoadTemplates(templateProvider.BasePath()+templateVersion+"/", templateProvider.TemplateFilename())
136 if err != nil {
137 return nil, errors.E(op, fmt.Errorf("cannot fetch template: %w", err))
138 }
139 r.HTMLRender = templateRender
140
141 if staticDir != "" {
142 r.Use(static.Serve("/static", static.LocalFile(staticDir, false)))
143 opts["cliStaticDir"] = staticDir
144 }
145 r.GET("/*action", func(c *gin.Context) {
146 c.HTML(http.StatusOK, templateProvider.TemplateFilename(), &opts)
147 })
148
149 return r, nil
150}

Callers

nothing calls this directly

Calls 5

ServeMethod · 0.80
DoTemplateExistMethod · 0.65
BasePathMethod · 0.65
TemplateFilenameMethod · 0.65
LoadTemplatesMethod · 0.65

Tested by

no test coverage detected