Files
api-bpjs-surkon/handlers/bpjs/surat_kontrol/surat_kontrol.go
2024-10-01 09:18:44 +07:00

140 lines
3.6 KiB
Go

package suratkontrol
import (
cfg "bridging-rssa/config"
suratkontrol "bridging-rssa/database/satu_data/surat_kontrol"
sk "bridging-rssa/models/bpjs/surat_kontrol"
"bridging-rssa/models/config"
"log"
"net/http"
"os"
"github.com/gin-gonic/gin"
)
func InsertSuratKontrol(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("SURAT_KONTROL_RS_DEV")
param := os.Getenv("INSERT_SURAT_KONTROL")
url := baseUrl + endpoint + param
var req sk.RequestInsertRencanaKontrol
err := c.Bind(req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
}
conf := config.ConfigBpjs{}
header := cfg.SetHeader(conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
"X-timestamp": header.TimeStamp,
"X-signature": header.XSignature,
"user_key": header.UserKey,
"Content-Type": "Application/x-www-form-urlencoded",
}
log.Println("Headers : ", headers)
kunjuganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
}
reqSuratKontrol := &sk.RequestRencanaKontrol{
NoSEP: kunjuganPasien.NomorSEP,
KodeDokter: kunjuganPasien.KodeHfisDokter,
PoliKontrol: req.KodePoli,
TglRencanaKontrol: req.Tanggal,
User: req.User,
}
res, err := PostData(url, header, headers, reqSuratKontrol)
if err != nil {
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, res)
}
func UpdateSuratKontrol(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("SURAT_KONTROL_RS_DEV")
param := os.Getenv("UPDATE_SURAT_KONTROL")
url := baseUrl + endpoint + param
var req sk.RequestInsertRencanaKontrol
err := c.Bind(req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
}
conf := config.ConfigBpjs{}
header := cfg.SetHeader(conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
"X-timestamp": header.TimeStamp,
"X-signature": header.XSignature,
"user_key": header.UserKey,
"Content-Type": "Application/x-www-form-urlencoded",
}
log.Println("Headers : ", headers)
kunjuganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
}
reqSuratKontrol := &sk.RequestRencanaKontrol{
NoSEP: kunjuganPasien.NomorSEP,
KodeDokter: kunjuganPasien.KodeHfisDokter,
PoliKontrol: req.KodePoli,
TglRencanaKontrol: req.Tanggal,
User: req.User,
}
res, err := ResponseUpdateSuratKontrol(url, header, headers, reqSuratKontrol)
if err != nil {
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, res)
}
func GetNomorSuratKontrol(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("SURAT_KONTROL_RS_DEV")
param := os.Getenv("GET_NOMOR_SURAT_KONTROL")
noSurat := c.Param("noSuratKontrol")
url := baseUrl + endpoint + param + noSurat
conf := config.ConfigBpjs{}
header := cfg.SetHeader(conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
"X-timestamp": header.TimeStamp,
"X-signature": header.XSignature,
"user_key": header.UserKey,
}
log.Println("Headers : ", headers)
res, err := ResponseGetNomorSuratKontrol(url, header, headers)
if err != nil {
log.Fatalf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, res)
}