package main import ( "bridging-rssa/config" "bridging-rssa/handlers/bpjs" icare "bridging-rssa/handlers/bpjs/i_care" "bridging-rssa/handlers/bpjs/jadwal_dokter" "bridging-rssa/handlers/bpjs/rujukan" suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol" vclaim "bridging-rssa/handlers/bpjs/v_claim" kunjungan_pasien "bridging-rssa/handlers/kunjungan_pasien" mikrobiologiHandler "bridging-rssa/handlers/mikrobiologi" "log" "os" "time" _ "bridging-rssa/docs" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" "github.com/joho/godotenv" 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") } config.ConnectDB() r := gin.Default() // jakartaTime, _ := time.LoadLocation("Asia/Jakarta") // scheduler := cron.New(cron.WithLocation(jakartaTime)) // defer scheduler.Stop() // scheduler.AddFunc("41 09 * * *", func() { // log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===") // jadwal_dokter.GetDataJadwalDokter() // log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===") // }) // scheduler.AddFunc("* 12 * * *", func() { // log.Println("=== RUNNING SCHEDULE DATA SURAT KONTROL ===") // suratkontrol.UpdateSuratKontrolSchedule() // log.Println("=== SCHEDULE DATA SURAT KONTROL DONE ===") // }) // scheduler.AddFunc("59 23 * * *", func() { // log.Println("=== RUNNING SCHEDULE DATA SURAT KONTROL ===") // suratkontrol.UpdateSuratKontrolSchedule() // log.Println("=== SCHEDULE DATA SURAT KONTROL DONE ===") // }) // go scheduler.Start() v1 := r.Group("/api") subspesialis := v1.Group("/subspesialis") { subspesialis.GET("/", bpjs.GetAllSubspesialis) } jadwalDokter := v1.Group("/jadwaldokter") { jadwalDokter.POST("/getjadwal", jadwal_dokter.GetJadwalDokterApi) jadwalDokter.GET("/getalljadwal", jadwal_dokter.GetAllJadwalDokter) jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP) // jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate) jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate) jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis) jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis) jadwalDokter.POST("/detail", jadwal_dokter.GetDetailJadwalDokter) } suratKontrol := v1.Group("/suratkontrol") { suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon) suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID) suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol) suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP) suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon) suratKontrol.POST("/cari", suratkontrol.CariPasienTPP) suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol) suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol) suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol) suratKontrol.POST("/datalog", suratkontrol.GetDataLogAPI) } kunjunganPasien := v1.Group("/kunjunganpasien") { kunjunganPasien.POST("/listkunjunganpasien", kunjungan_pasien.ListKunjunganPasien) } suratRujukan := v1.Group("/rujukan") { suratRujukan.GET("/noRujukan/:noRujukan", rujukan.GetSuratRujukan) suratRujukan.GET("/list/peserta/:noKartu", rujukan.GetSuratRujukanBatch) } iCare := v1.Group("/icare") { iCare.POST("/rs/validate", icare.GetFKRTL) iCare.POST("/pcare/validate", icare.GetFKTP) } referensi := v1.Group("/referensi") { referensi.GET("/dokter/:dpjp", vclaim.GetReferensiDokter) } mikrobiologi := v1.Group("/mikrobiologi") { mikrobiologi.POST("/datapasien", mikrobiologiHandler.GetDataPasienMikrobiologi) } 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)) r.Use(cors.New(cors.Config{ AllowOrigins: []string{"*"}, // or specific domains like "http://example.com" AllowMethods: []string{"GET", "POST", "PUT", "DELETE"}, AllowHeaders: []string{"Origin", "Content-Type"}, AllowCredentials: true, })) localTime := time.Now() log.Println("Local Time:", localTime) baseUrl := os.Getenv("BASEURL_BPJS") endpoint := os.Getenv("ANTREAN_RS") url := baseUrl + endpoint log.Println("url", url) log.Println("JALAN DI PORT : 8082") err = r.Run(":8082") if err != nil { log.Fatal(err) } }