add new argument for allow origins and query without path and only uuid

This commit is contained in:
Adrian Zürcher
2025-05-28 22:05:47 +02:00
parent c57c22f93a
commit 9605b50198
7 changed files with 93 additions and 76 deletions

View File

@@ -3,7 +3,9 @@ package server
import (
"fmt"
"sync"
"time"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"github.com/tecamino/tecamino-dbm/cert"
"github.com/tecamino/tecamino-logger/logging"
@@ -17,22 +19,31 @@ type Server struct {
}
// initalizes new dbm server
func NewServer() *Server {
func NewServer(allowOrigins []string) *Server {
r := gin.Default()
r.Use(cors.New(cors.Config{
AllowOrigins: allowOrigins,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Content-Type", "Accept"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
MaxAge: 12 * time.Hour,
}))
return &Server{
Routes: gin.Default(),
Routes: r,
}
}
// serve dbm as http
func (s *Server) ServeHttp(port uint) error {
return s.Routes.Run(fmt.Sprintf(":%d", port))
func (s *Server) ServeHttp(ip string, port uint) error {
return s.Routes.Run(fmt.Sprintf("%s:%d", ip, port))
}
// serve dbm as http
func (s *Server) ServeHttps(port uint, cert cert.Cert) error {
func (s *Server) ServeHttps(ip string, port uint, cert cert.Cert) error {
// generate self signed tls certificate
if err := cert.GenerateSelfSignedCert(); err != nil {
return err
}
return s.Routes.RunTLS(fmt.Sprintf(":%d", port), cert.CertFile, cert.KeyFile)
return s.Routes.RunTLS(fmt.Sprintf("%s:%d", ip, port), cert.CertFile, cert.KeyFile)
}