package api import ( "memberDB/handlers" "memberDB/models" "net/http" "github.com/gin-gonic/gin" ) type APIHandler struct { DbHandler *handlers.DatabaseHandler } func NewAPIHandler() *APIHandler { return &APIHandler{} } func (a *APIHandler) OpenDatabase(c *gin.Context) { var database models.Database var err error if err := c.BindJSON(&database); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } if database.Path == "" { database.SetDefaultPath() } if database.Token == "" { database.SetDefaultToken() } a.DbHandler, err = handlers.NewDatabaseHandler(database.Path, database.Create) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } if err := a.DbHandler.CreateNewMemberTable(); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } if err := a.DbHandler.CreateNewAttendanceTable(); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } a.DbHandler.SetToken(database.Token) _, err = a.DbHandler.GetMember(0) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "message": "database opened", }) } func (a *APIHandler) databaseOpened(c *gin.Context) bool { if a.DbHandler == nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "no database opened", }) return false } return true }