package routes import ( "encoding/json" "errors" "fmt" "rpi-ci-led/pkg/database" "github.com/gin-gonic/gin" "go.etcd.io/bbolt" ) func New() *gin.Engine { e := gin.New() e.Use(gin.Logger()) e.Use(gin.Recovery()) return e } func SetRoutes(e *gin.Engine) { e.GET("/", func(c *gin.Context) { c.String(200, "ok") }) e.GET("/projects", func(c *gin.Context) { var list []string = make([]string, 0) db := database.Get() err := db.View(func(tx *bbolt.Tx) error { bucket := tx.Bucket([]byte("led")) if bucket == nil { return errors.New("bucket not init") } if b := bucket.Get([]byte("project")); b == nil { fmt.Println("b ::: ", b) return nil } else { fmt.Println("b ::: ", b) if err := json.Unmarshal(b, &list); err != nil { return err } } return nil }) if err != nil { c.AbortWithStatusJSON(500, gin.H{"message": "database read fail"}) } c.JSON(200, gin.H{"list": list}) }) }