package api import ( "github.com/gorilla/mux" "gorm.io/driver/sqlite" "gorm.io/gorm" ) type api struct { db *gorm.DB } func initDB(dbPath string) (*gorm.DB, error) { db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{}) if err != nil { return nil, err } db.AutoMigrate(&Member{}) return db, err } func Init(dbPath string, r *mux.Router) error { db, err := initDB(dbPath) if err != nil { return err } a := api{db} r.HandleFunc("/member", a.ListMembers).Methods("GET") r.HandleFunc("/member", a.AddMember).Methods("POST") r.HandleFunc("/member/{num:[0-9]+}", a.GetMember).Methods("GET") r.HandleFunc("/member/{num:[0-9]+}", a.UpdateMember).Methods("PUT") r.HandleFunc("/member/{num:[0-9]+}", a.DeleteMember).Methods("DELETE") return nil }