antrean tes
This commit is contained in:
7
.env
7
.env
@@ -24,3 +24,10 @@ MONGODB_DEV_USER=admin
|
||||
MONGODB_DEV_PASS=stim*rs54
|
||||
MONGODB_DEV_MASTER=master
|
||||
MONGODB_DEV_LOCAL=local
|
||||
|
||||
POSTGRES_ANTREAN_USERNAME=stim_read
|
||||
POSTGRES_ANTREAN_PASSWORD=itikom123
|
||||
POSTGRES_ANTREAN_HOST=10.10.123.198
|
||||
POSTGRES_ANTREAN_DATABASE=db_antrean
|
||||
POSTGRES_ANTREAN_PORT=5100
|
||||
POSTGRES_ANTREAN_SSLMODE=disable
|
||||
@@ -33,3 +33,10 @@ services:
|
||||
- MONGODB_DEV_PASS=stim*rs54
|
||||
- MONGODB_DEV_MASTER=master
|
||||
- MONGODB_DEV_LOCAL=local
|
||||
# DATABASE ANTREAN
|
||||
- POSTGRES_ANTREAN_USERNAME=stim_read
|
||||
- POSTGRES_ANTREAN_PASSWORD=itikom123
|
||||
- POSTGRES_ANTREAN_HOST=10.10.123.198
|
||||
- POSTGRES_ANTREAN_DATABASE=db_antrean
|
||||
- POSTGRES_ANTREAN_PORT=5100
|
||||
- POSTGRES_ANTREAN_SSLMODE=disable
|
||||
@@ -39,11 +39,17 @@ var (
|
||||
dbNameSimrs = os.Getenv("SIMRS_STAG_NAME")
|
||||
portSimrs = os.Getenv("SIMRS_STAG_PORT")
|
||||
|
||||
hostSatudata = os.Getenv("SATUDATA_HOST")
|
||||
userNameSatudata = os.Getenv("SATUDATA_USER")
|
||||
passwordSatudata = os.Getenv("SATUDATA_PASS")
|
||||
dbNameSatudata = os.Getenv("SATUDATA_NAME")
|
||||
portSatudata = os.Getenv("SATUDATA_PORT")
|
||||
//hostSatudata = os.Getenv("SATUDATA_HOST")
|
||||
//userNameSatudata = os.Getenv("SATUDATA_USER")
|
||||
//passwordSatudata = os.Getenv("SATUDATA_PASS")
|
||||
//dbNameSatudata = os.Getenv("SATUDATA_NAME")
|
||||
//portSatudata = os.Getenv("SATUDATA_PORT")
|
||||
|
||||
hostAntrean = os.Getenv("POSTGRES_ANTREAN_HOST")
|
||||
userNameAntrean = os.Getenv("POSTGRES_ANTREAN_USERNAME")
|
||||
passwordAntrean = os.Getenv("POSTGRES_ANTREAN_PASSWORD")
|
||||
dbNameAntrean = os.Getenv("POSTGRES_ANTREAN_DATABASE")
|
||||
portAntrean = os.Getenv("POSTGRES_ANTREAN_PORT")
|
||||
|
||||
hostMongo = os.Getenv("MONGODB_DEV_HOST")
|
||||
portMongo = os.Getenv("MONGODB_DEV_PORT")
|
||||
@@ -86,9 +92,9 @@ func New(database ...string) Service {
|
||||
} else {
|
||||
log.Println("Successfully connected to the database")
|
||||
}
|
||||
satudata := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatudata, userNameSatudata, passwordSatudata, dbNameSatudata, portSatudata)
|
||||
Antrean := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostAntrean, userNameAntrean, passwordAntrean, dbNameAntrean, portAntrean)
|
||||
|
||||
SatudataDB, err := gorm.Open(postgres.Open(satudata), &gorm.Config{})
|
||||
AntreanDB, err := gorm.Open(postgres.Open(Antrean), &gorm.Config{})
|
||||
if err != nil {
|
||||
log.Fatal("Failed to connect to SIM database: ", err)
|
||||
} else {
|
||||
@@ -127,7 +133,7 @@ func New(database ...string) Service {
|
||||
log.Println("Successfully connected to MongoDB!")
|
||||
dbInstance = &service{
|
||||
simrsDB: SimrsDB,
|
||||
satuDataDB: SatudataDB,
|
||||
satuDataDB: AntreanDB,
|
||||
mongoDB: client.Database(mongoDBName),
|
||||
}
|
||||
return dbInstance
|
||||
@@ -216,7 +222,7 @@ func (s *service) Close() error {
|
||||
func (s *service) GetDB(database string) *gorm.DB {
|
||||
if strings.ToLower(database) == "simrs" {
|
||||
return s.simrsDB
|
||||
} else if strings.ToLower(database) == "satudata" {
|
||||
} else if strings.ToLower(database) == "antrean" {
|
||||
return s.satuDataDB
|
||||
}
|
||||
log.Println("Database tidak ditemukan")
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
AntreanHandler "template_blueprint/pkg/handlers/antrean"
|
||||
patientHandler "template_blueprint/pkg/handlers/patient"
|
||||
datapoliklinikHandler "template_blueprint/pkg/handlers/poliklinik"
|
||||
dataRetribusi "template_blueprint/pkg/handlers/retribusi"
|
||||
@@ -53,6 +54,13 @@ func (s *Server) RegisterRoutes() http.Handler {
|
||||
{
|
||||
Poliklinik.GET("/getdata/statuspelayanan/:statuspelayanan", datapoliklinikHandler.GetDataPoliklinik)
|
||||
}
|
||||
Antrean := v1.Group("/kios")
|
||||
{
|
||||
Antrean.POST("/detail", AntreanHandler.GetKios)
|
||||
Antrean.POST("/insert", AntreanHandler.InsertKios)
|
||||
Antrean.PUT("/update/:id", AntreanHandler.UpdateKios)
|
||||
Antrean.DELETE("/delete/:id", AntreanHandler.DeleteKios)
|
||||
}
|
||||
retribusi := v1.Group("/retribusi")
|
||||
{
|
||||
retribusi.GET("/getData/Limit/:limit/Offset/:offset", dataRetribusi.GetDataRetribusi)
|
||||
|
||||
134
pkg/database/satu_data/antrean.go
Normal file
134
pkg/database/satu_data/antrean.go
Normal file
@@ -0,0 +1,134 @@
|
||||
package satu_data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"log"
|
||||
"template_blueprint/pkg/models/antrean"
|
||||
)
|
||||
|
||||
func (s *DatabaseService) GetKios(ID int) ([]*antrean.Antrean, error) {
|
||||
var result []*antrean.Antrean
|
||||
query := `SELECT k."id", k."name" ,k.active ,k.icon , k.url , k.fk_ref_healthcare_type_id , r."name" as refnamehealth, k.fk_ref_service_type_id ,
|
||||
rpt."name" as refnamepayment , k.fk_sd_location_id ,k.ds_sd_location
|
||||
FROM master.ms_kiosk k
|
||||
JOIN master.ms_kiosk_healthcare_service h ON k.fk_ref_healthcare_type_id = h.id
|
||||
JOIN reference.ref_healthcare_type r ON h.fk_ms_healthcare_service_id = r.id
|
||||
left join master.ms_kiosk_payment_type p on k.fk_ref_service_type_id = p.id
|
||||
left join reference.ref_payment_type rpt on p.fk_ref_payment_type_id = rpt.id
|
||||
where k.id = ?`
|
||||
errQuery := s.DB.Debug().Raw(query, ID).Scan(&result).Error
|
||||
if errQuery != nil {
|
||||
log.Println("errQuery:", errQuery)
|
||||
return nil, errQuery
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) InsertKiosk(data *antrean.KioskData) error {
|
||||
log.Println("InsertKiosk data:", data)
|
||||
|
||||
queryKiosk := `INSERT INTO master.ms_kiosk ("name", active, icon, url, fk_ref_healthcare_type_id,
|
||||
fk_ref_service_type_id, fk_sd_location_id, ds_sd_location)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
RETURNING id`
|
||||
|
||||
var newKioskID int64
|
||||
err := s.DB.Raw(queryKiosk, data.Name, data.Active, data.Icon, data.URL,
|
||||
data.FKRefHealthcareTypeID, data.FKRefServiceTypeID,
|
||||
data.FKSDLocationID, data.DSSDLocation).
|
||||
Scan(&newKioskID).Error
|
||||
|
||||
if err != nil {
|
||||
log.Println("Error insert ms_kiosk:", err)
|
||||
return errors.New("Gagal menyimpan data kiosk")
|
||||
}
|
||||
|
||||
log.Println("New kiosk ID:", newKioskID)
|
||||
|
||||
if data.HealthcareServiceData != nil {
|
||||
queryHealthcare := `INSERT INTO master.ms_kiosk_healthcare_service
|
||||
(fk_ms_kiosk_id, fk_ms_healthcare_service_id)
|
||||
VALUES (?, ?)`
|
||||
|
||||
errHC := s.DB.Exec(queryHealthcare, newKioskID, data.HealthcareServiceData.FKMSHealthcareServiceID).Error
|
||||
if errHC != nil {
|
||||
log.Println("Error insert healthcare service:", errHC)
|
||||
return errors.New("Gagal menyimpan data healthcare service")
|
||||
}
|
||||
}
|
||||
|
||||
if data.PaymentTypeData != nil {
|
||||
queryPayment := `INSERT INTO master.ms_kiosk_payment_type
|
||||
(fk_ms_kiosk_id, fk_ref_payment_type_id)
|
||||
VALUES (?, ?)`
|
||||
|
||||
errPT := s.DB.Exec(queryPayment, newKioskID, data.PaymentTypeData.FKRefPaymentTypeID).Error
|
||||
if errPT != nil {
|
||||
log.Println("Error insert payment type:", errPT)
|
||||
return errors.New("Gagal menyimpan data payment type")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) UpdateKiosk(id string, data *antrean.KioskData) error {
|
||||
log.Println("UpdateKiosk ID:", id, "data:", data)
|
||||
|
||||
queryKiosk := `UPDATE master.ms_kiosk
|
||||
SET name = ?, active = ?, icon = ?, url = ?,
|
||||
fk_ref_healthcare_type_id = ?, fk_ref_service_type_id = ?,
|
||||
fk_sd_location_id = ?, ds_sd_location = ?
|
||||
WHERE id = ?`
|
||||
|
||||
err := s.DB.Exec(queryKiosk, data.Name, data.Active, data.Icon, data.URL,
|
||||
data.FKRefHealthcareTypeID, data.FKRefServiceTypeID,
|
||||
data.FKSDLocationID, data.DSSDLocation, id).Error
|
||||
if err != nil {
|
||||
log.Println("Error update ms_kiosk:", err)
|
||||
return errors.New("Gagal update data kiosk")
|
||||
}
|
||||
|
||||
if data.HealthcareServiceData != nil {
|
||||
queryHealthcare := `UPDATE master.ms_kiosk_healthcare_service
|
||||
SET fk_ms_healthcare_service_id = ?
|
||||
WHERE fk_ms_kiosk_id = ?`
|
||||
errHC := s.DB.Exec(queryHealthcare, data.HealthcareServiceData.FKMSHealthcareServiceID, id).Error
|
||||
if errHC != nil {
|
||||
log.Println("Error update healthcare service:", errHC)
|
||||
return errors.New("Gagal update data healthcare service")
|
||||
}
|
||||
}
|
||||
|
||||
if data.PaymentTypeData != nil {
|
||||
queryPayment := `UPDATE master.ms_kiosk_payment_type
|
||||
SET fk_ref_payment_type_id = ?
|
||||
WHERE fk_ms_kiosk_id = ?`
|
||||
errPT := s.DB.Exec(queryPayment, data.PaymentTypeData.FKRefPaymentTypeID, id).Error
|
||||
if errPT != nil {
|
||||
log.Println("Error update payment type:", errPT)
|
||||
return errors.New("Gagal update data payment type")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) DeleteKiosk(id int64) error {
|
||||
err := s.DB.Exec(`DELETE FROM master.ms_kiosk_healthcare_service WHERE fk_ms_kiosk_id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.DB.Exec(`DELETE FROM master.ms_kiosk_payment_type WHERE fk_ms_kiosk_id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.DB.Exec(`DELETE FROM master.ms_kiosk WHERE id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
89
pkg/handlers/antrean/antrean.go
Normal file
89
pkg/handlers/antrean/antrean.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package antrean
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"template_blueprint/internal/database"
|
||||
connDatabase "template_blueprint/pkg/database/satu_data"
|
||||
"template_blueprint/pkg/models/antrean"
|
||||
)
|
||||
|
||||
func GetKios(c *gin.Context) {
|
||||
db := database.New().GetDB("antrean")
|
||||
satudata := connDatabase.NewDatabaseService(db)
|
||||
|
||||
var req *antrean.Request
|
||||
err := c.Bind(&req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
DataKios, errInsertData := satudata.GetKios(req.ID)
|
||||
if errInsertData != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": errInsertData.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusCreated, gin.H{
|
||||
"message": "Data Ditemukan",
|
||||
"data": DataKios,
|
||||
})
|
||||
}
|
||||
|
||||
func InsertKios(c *gin.Context) {
|
||||
db := database.New().GetDB("antrean")
|
||||
satudata := connDatabase.NewDatabaseService(db)
|
||||
|
||||
var req *antrean.KioskData
|
||||
err := c.Bind(&req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
errInsertData := satudata.InsertKiosk(req)
|
||||
if errInsertData != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": errInsertData.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusCreated, gin.H{"message": "Data Berhasil disimpan"})
|
||||
}
|
||||
|
||||
func UpdateKios(c *gin.Context) {
|
||||
db := database.New().GetDB("antrean")
|
||||
satudata := connDatabase.NewDatabaseService(db)
|
||||
ID := c.Param("id")
|
||||
|
||||
var req *antrean.KioskData
|
||||
err := c.Bind(&req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
err = satudata.UpdateKiosk(ID, req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Data kios berhasil diupdate"})
|
||||
|
||||
}
|
||||
|
||||
func DeleteKios(c *gin.Context) {
|
||||
db := database.New().GetDB("antrean")
|
||||
satudata := connDatabase.NewDatabaseService(db)
|
||||
|
||||
idParam := c.Param("id")
|
||||
id, err := strconv.ParseInt(idParam, 10, 64)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid ID"})
|
||||
return
|
||||
}
|
||||
if err := satudata.DeleteKiosk(id); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Kios Berhasil di delete"})
|
||||
}
|
||||
40
pkg/models/antrean/antrean.go
Normal file
40
pkg/models/antrean/antrean.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package antrean
|
||||
|
||||
type Antrean struct {
|
||||
ID int `gorm:"column:id" json:"id"`
|
||||
Name string `gorm:"column:name" json:"name"`
|
||||
Icon string `gorm:"column:icon" json:"icon"`
|
||||
URL string `gorm:"column:url" json:"url"`
|
||||
Active bool `gorm:"column:active" json:"active"`
|
||||
FKrefHealthcare int `gorm:"column:fk_ref_healthcare_type_id" json:"healthcare_type_id"`
|
||||
DisplayHealth string `gorm:"column:refnamehealth" json:"healthcare_name"`
|
||||
FKrefserviceType int `gorm:"column:fk_ref_service_type_id" json:"service_type_id"`
|
||||
DisplayPayment string `gorm:"column:refnamepayment" json:"payment_name"`
|
||||
FKLocation string `gorm:"column:fk_sd_location_id" json:"location_id"`
|
||||
DisplayLocation string `gorm:"column:ds_sd_location" json:"display_location"`
|
||||
}
|
||||
|
||||
type Request struct {
|
||||
ID int `json:"id"`
|
||||
}
|
||||
|
||||
type KioskData struct {
|
||||
Name string `json:"name"`
|
||||
Active bool `json:"active"`
|
||||
Icon string `json:"icon"`
|
||||
URL string `json:"url"`
|
||||
FKRefHealthcareTypeID int64 `json:"fk_ref_healthcare_type_id"`
|
||||
FKRefServiceTypeID int64 `json:"fk_ref_service_type_id"`
|
||||
FKSDLocationID string `json:"fk_sd_location_id"`
|
||||
DSSDLocation string `json:"ds_sd_location"`
|
||||
HealthcareServiceData *HealthcareServiceData `json:"healthcare_service_data,omitempty"`
|
||||
PaymentTypeData *PaymentTypeData `json:"payment_type_data,omitempty"`
|
||||
}
|
||||
|
||||
type HealthcareServiceData struct {
|
||||
FKMSHealthcareServiceID int64 `json:"fk_ms_healthcare_service_id"`
|
||||
}
|
||||
|
||||
type PaymentTypeData struct {
|
||||
FKRefPaymentTypeID int64 `json:"fk_ref_payment_type_id"`
|
||||
}
|
||||
Reference in New Issue
Block a user