added basic skeleton and two API endpoints to test backend stack.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"git.aiterp.net/stufflog3/stufflog3-api/api"
|
||||
"git.aiterp.net/stufflog3/stufflog3-api/internal/auth"
|
||||
"git.aiterp.net/stufflog3/stufflog3-api/internal/database/mysql"
|
||||
"git.aiterp.net/stufflog3/stufflog3-api/internal/envvars"
|
||||
"github.com/gin-gonic/gin"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func main() {
|
||||
db, err := mysql.Connect(
|
||||
envvars.String("STUFFLOG3_MYSQL_HOST"),
|
||||
envvars.Int("STUFFLOG3_MYSQL_PORT"),
|
||||
envvars.String("STUFFLOG3_MYSQL_USERNAME"),
|
||||
envvars.String("STUFFLOG3_MYSQL_PASSWORD"),
|
||||
envvars.String("STUFFLOG3_MYSQL_SCHEMA"),
|
||||
)
|
||||
if err != nil {
|
||||
log.Println("Failed to open database:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
server := gin.New()
|
||||
if envvars.String("STUFFLOG3_USE_DUMMY_USER") != "" {
|
||||
log.Println("Using dummy UUID")
|
||||
server.Use(auth.DummyMiddleware("c11230be-4912-4313-83b0-410a248b5bd1"))
|
||||
} else {
|
||||
server.Use(auth.TrustingJwtParserMiddleware())
|
||||
}
|
||||
|
||||
api.Scopes(server.Group("/api/scopes"), db)
|
||||
|
||||
exitSignal := make(chan os.Signal)
|
||||
signal.Notify(exitSignal, os.Interrupt, os.Kill, syscall.SIGTERM)
|
||||
|
||||
errCh := make(chan error)
|
||||
go func() {
|
||||
err := server.Run(":8239")
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
}
|
||||
}()
|
||||
|
||||
select {
|
||||
case sig := <-exitSignal:
|
||||
{
|
||||
log.Println("Received signal", sig)
|
||||
os.Exit(0)
|
||||
}
|
||||
case err := <-errCh:
|
||||
{
|
||||
log.Println("Server run failed:", err)
|
||||
os.Exit(2)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user