42 lines
926 B
Go
42 lines
926 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/sundynix/pets-be/internal/admin"
|
|
"github.com/sundynix/pets-be/internal/config"
|
|
"github.com/sundynix/pets-be/internal/database"
|
|
"github.com/sundynix/pets-be/internal/httpapi"
|
|
"github.com/sundynix/pets-be/internal/storage"
|
|
"log"
|
|
)
|
|
|
|
func main() {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
db, err := database.Open(cfg.Postgres, cfg.Server.Mode == "release")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if err := database.Migrate(db); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
st, err := storage.New(cfg.MinIO)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
api := httpapi.New(db, st, cfg)
|
|
if err := api.SeedAdmin(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
gin.SetMode(cfg.Server.Mode)
|
|
r := gin.New()
|
|
api.Register(r)
|
|
admin.Register(r)
|
|
addr := fmt.Sprintf(":%d", cfg.Server.Port)
|
|
log.Printf("肉垫计划 listening on %s", addr)
|
|
log.Fatal(r.Run(addr))
|
|
}
|