Added support for using cosmosdb-explorer

This commit is contained in:
Pijus Kamandulis 2024-02-14 01:47:51 +02:00
parent b780e8c228
commit 31eaf0ad3f
5 changed files with 68 additions and 6 deletions

View File

@ -1,7 +1,28 @@
package config
var Config = ServerConfig{
DatabaseAccount: "localhost",
DatabaseDomain: "localhost",
DatabaseEndpoint: "https://localhost:8081/",
import (
"flag"
"fmt"
)
var Config = ServerConfig{}
func ParseFlags() {
host := flag.String("Host", "localhost", "Hostname")
port := flag.Int("Port", 8081, "Listen port")
explorerPath := flag.String("ExplorerDir", "/home/pk/pro/cosmos-explorer/dist", "Path to cosmos-explorer files")
tlsCertificatePath := flag.String("Cert", "../example.crt", "Hostname")
tlsCertificateKey := flag.String("CertKey", "../example.key", "Hostname")
flag.Parse()
Config.Host = *host
Config.Port = *port
Config.ExplorerPath = *explorerPath
Config.TLS_CertificatePath = *tlsCertificatePath
Config.TLS_CertificateKey = *tlsCertificateKey
Config.DatabaseAccount = Config.Host
Config.DatabaseDomain = Config.Host
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
}

View File

@ -4,4 +4,10 @@ type ServerConfig struct {
DatabaseAccount string
DatabaseDomain string
DatabaseEndpoint string
ExplorerPath string
Port int
Host string
TLS_CertificatePath string
TLS_CertificateKey string
}

29
api/handlers/explorer.go Normal file
View File

@ -0,0 +1,29 @@
package handlers
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/pikami/cosmium/api/config"
)
func RegisterExplorerHandlers(router *gin.Engine) {
explorer := router.Group("/_explorer")
{
explorer.Use(func(ctx *gin.Context) {
if ctx.Param("filepath") == "/config.json" {
endpoint := fmt.Sprintf("https://%s:%d", config.Config.Host, config.Config.Port)
ctx.JSON(200, gin.H{
"BACKEND_ENDPOINT": endpoint,
"MONGO_BACKEND_ENDPOINT": endpoint,
"PROXY_PATH": "/",
"EMULATOR_ENDPOINT": endpoint,
})
ctx.Abort()
} else {
ctx.Next()
}
})
explorer.Static("/", config.Config.ExplorerPath)
}
}

View File

@ -35,5 +35,7 @@ func CreateRouter() *gin.Engine {
router.GET("/offers", handlers.GetOffers)
router.GET("/", handlers.GetServerInfo)
handlers.RegisterExplorerHandlers(router)
return router
}

View File

@ -4,11 +4,15 @@ import (
"fmt"
"github.com/pikami/cosmium/api"
"github.com/pikami/cosmium/api/config"
)
func main() {
fmt.Println("Hello world")
config.ParseFlags()
router := api.CreateRouter()
router.RunTLS(":8081", "../example.crt", "../example.key")
router.RunTLS(
fmt.Sprintf(":%d", config.Config.Port),
config.Config.TLS_CertificatePath,
config.Config.TLS_CertificateKey)
}