Skip to content
Snippets Groups Projects
api.go 770 B
Newer Older
  • Learn to ignore specific revisions
  • 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
    }