first commit
This commit is contained in:
88
cmd/api/api.go
Normal file
88
cmd/api/api.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/rs/cors"
|
||||
httpSwagger "github.com/swaggo/http-swagger/v2"
|
||||
"sismedika.com/sas/westone/services/auth"
|
||||
"sismedika.com/sas/westone/services/doctor"
|
||||
"sismedika.com/sas/westone/services/error_log"
|
||||
"sismedika.com/sas/westone/services/patient"
|
||||
"sismedika.com/sas/westone/services/person"
|
||||
"sismedika.com/sas/westone/services/terminology"
|
||||
"sismedika.com/sas/westone/services/user"
|
||||
)
|
||||
|
||||
type APIServer struct {
|
||||
addr string
|
||||
db *sqlx.DB
|
||||
}
|
||||
|
||||
func NewAPIServer(addr string, db *sqlx.DB) *APIServer {
|
||||
return &APIServer{
|
||||
addr: addr,
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *APIServer) Run() error {
|
||||
router := mux.NewRouter()
|
||||
subrouter := router.PathPrefix("/westone/api/v1").Subrouter()
|
||||
|
||||
subrouter.PathPrefix("/swagger/").Handler(httpSwagger.Handler())
|
||||
|
||||
// Error Log
|
||||
errorLogStore := error_log.NewStore(s.db)
|
||||
|
||||
// terminology
|
||||
terminologyStore := terminology.NewStore(s.db)
|
||||
terminologyHandler := terminology.NewHandler(terminologyStore)
|
||||
terminologyHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// user
|
||||
userStore := user.NewStore(s.db)
|
||||
|
||||
// auth
|
||||
oauthStore := auth.NewStore(s.db)
|
||||
oauthHandler := auth.NewHandler(oauthStore, errorLogStore, userStore)
|
||||
oauthHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// md person
|
||||
personStore := person.NewStore(s.db)
|
||||
personHandler := person.NewHandler(personStore, terminologyStore)
|
||||
personHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// md patient
|
||||
patientStore := patient.NewStore(s.db)
|
||||
patientHandler := patient.NewHandler(patientStore)
|
||||
patientHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// md doctor
|
||||
doctorStore := doctor.NewStore(s.db)
|
||||
doctorHandler := doctor.NewHandler(doctorStore)
|
||||
doctorHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// userHandler := user.NewHandler(userStore, errorLogStore)
|
||||
// userHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// productStore := product.NewStore(s.db)
|
||||
// productHandler := product.NewHandler(productStore, userStore)
|
||||
// productHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// orderStore := order.NewStore(s.db)
|
||||
|
||||
// cartHandler := cart.NewHandler(productStore, orderStore, userStore)
|
||||
// cartHandler.RegisterRoutes(subrouter)
|
||||
|
||||
// Serve static files
|
||||
router.PathPrefix("/").Handler(http.FileServer(http.Dir("static")))
|
||||
|
||||
log.Println("Listening on", s.addr)
|
||||
|
||||
corsHandler := cors.Default().Handler(router)
|
||||
return http.ListenAndServe(s.addr, corsHandler)
|
||||
}
|
||||
Reference in New Issue
Block a user