Newer
Older
package api
import (
"github.com/gorilla/mux"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type api struct {
}
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{})
func Init(dbPath string, signKey string, r *mux.Router) error {
db, err := initDB(dbPath)
if err != nil {
return err
}
a := api{db, []byte(signKey)}
r.HandleFunc("/signin", a.SignIn).Methods("POST")
r.HandleFunc("/member", a.auth(a.ListMembers)).Methods("GET")
r.HandleFunc("/member", a.auth(a.AddMember)).Methods("POST")
r.HandleFunc("/member/{num:[0-9]+}", a.auth(a.GetMember)).Methods("GET")
r.HandleFunc("/member/{num:[0-9]+}", a.auth(a.UpdateMember)).Methods("PUT")
r.HandleFunc("/member/{num:[0-9]+}", a.auth(a.DeleteMember)).Methods("DELETE")
r.HandleFunc("/product", a.auth(a.ListProducts)).Methods("GET")
r.HandleFunc("/product", a.auth(a.AddProduct)).Methods("POST")
r.HandleFunc("/product/{code:[0-9]+}", a.auth(a.GetProduct)).Methods("GET")
r.HandleFunc("/product/{code:[0-9]+}", a.auth(a.UpdateProduct)).Methods("PUT")
r.HandleFunc("/product/{code:[0-9]+}", a.auth(a.DeleteProduct)).Methods("DELETE")