117 lines
3.4 KiB
Go
117 lines
3.4 KiB
Go
package main
|
|
|
|
import (
|
|
"bridging-rssa/config"
|
|
"bridging-rssa/handlers/bpjs"
|
|
icare "bridging-rssa/handlers/bpjs/i_care"
|
|
"bridging-rssa/handlers/bpjs/jadwal_dokter"
|
|
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
|
|
"log"
|
|
|
|
_ "bridging-rssa/docs"
|
|
|
|
"github.com/gin-contrib/cors"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/joho/godotenv"
|
|
cron "github.com/robfig/cron/v3"
|
|
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()
|
|
|
|
scheduler := cron.New()
|
|
|
|
defer scheduler.Stop()
|
|
|
|
//scheduler.AddFunc("0 2 * * *", func() {
|
|
// log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===")
|
|
// for {
|
|
// success := jadwal_dokter.GetJadwalDokter()
|
|
// if success {
|
|
// log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===")
|
|
// break
|
|
// }
|
|
// }
|
|
//})
|
|
|
|
scheduler.AddFunc("10 2 8 * *", func() {
|
|
log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER MONTHLY===")
|
|
for {
|
|
success := jadwal_dokter.GetDataJadwalDokter()
|
|
if success {
|
|
log.Println("=== SCHEDULE GET JADWAL DOKTER MONTHLY DONE ===")
|
|
break
|
|
}
|
|
}
|
|
})
|
|
|
|
go scheduler.Start()
|
|
|
|
v1 := r.Group("/api")
|
|
|
|
subspesialis := v1.Group("/subspesialis")
|
|
{
|
|
subspesialis.GET("/", bpjs.GetAllSubspesialis)
|
|
}
|
|
|
|
jadwalDokter := v1.Group("/jadwaldokter")
|
|
{
|
|
// jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
|
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)
|
|
}
|
|
|
|
suratKontrol := v1.Group("/suratkontrol")
|
|
{
|
|
suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
|
|
suratKontrol.GET("/idxdaftar/:idxdaftar/tiperawat/:tiperawat", suratkontrol.GetDataSurKonByID)
|
|
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
|
|
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
|
|
suratKontrol.GET("/printSurKon/:idxdaftar/tiperawat/:tiperawat", suratkontrol.PrintSurKon)
|
|
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
|
|
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
|
|
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
|
|
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
|
|
}
|
|
|
|
iCare := v1.Group("/icare")
|
|
{
|
|
iCare.POST("/rs/validate", icare.GetFKRTL)
|
|
iCare.POST("/pcare/validate", icare.GetFKTP)
|
|
}
|
|
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,
|
|
}))
|
|
|
|
log.Println("JALAN DI PORT : 8080")
|
|
err = r.Run(":8080")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|