package main import ( "log" "net/http" "tes-rssa/database" "tes-rssa/ginHandlers" "tes-rssa/ginHandlers/bpjs" _ "tes-rssa/docs" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "github.com/rs/cors" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) // @title Crud User // @version 1 // @Description Rest API CRUD User // @host localhost:8080 func main() { err := godotenv.Load() if err != nil { log.Fatal("Error loading .env file") } database.ConnectDB() r := gin.Default() v1 := r.Group("/api") user := v1.Group("/user") { user.GET("/", ginHandlers.GetAllUser) user.GET("/:id", ginHandlers.GetUserId) user.POST("/create", ginHandlers.CreateUser) user.PUT("/update/:id", ginHandlers.UpdateUser) user.DELETE("/delete/:id", ginHandlers.DeleteUser) } subspesialis := v1.Group("/subspesialis") { subspesialis.GET("/", bpjs.GetAllSubspesialis) } r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) err = r.Run() if err != nil { log.Fatal(err) } c := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, AllowedMethods: []string{"GET", "POST", "PUT", "DELETE"}, AllowedHeaders: []string{"Content-Type"}, AllowCredentials: true, }) handler := c.Handler(r) log.Println("Server berjalan di port 8002") log.Fatal(http.ListenAndServe(":8002", handler)) }