penambahan frontend

This commit is contained in:
2026-05-18 10:17:33 +07:00
parent 5533d1c935
commit 423a2d1095
7 changed files with 1676 additions and 273 deletions
+39
View File
@@ -0,0 +1,39 @@
package ruang
import (
"context"
"fmt"
)
func (s *SimrsDB) GetMRuangan(ctx context.Context) ([]Ruangan, error) {
db, err := s.db.GetDB("simrs")
if err != nil {
return nil, fmt.Errorf("koneksi simrs gagal: %w", err)
}
query := `
SELECT no, nama, jumlah_tt,kode_aplicare, nama_ruang, kode_kelas
FROM m_ruang
where st_aktif = 1
ORDER BY no
`
rows, err := db.QueryContext(ctx, query)
if err != nil {
return nil, fmt.Errorf("query m_ruang gagal: %w", err)
}
defer rows.Close()
var result []Ruangan
for rows.Next() {
var r Ruangan
if err := rows.Scan(
&r.No, &r.Nama, &r.JumlahTT,
&r.KodeRuang, &r.NamaRuang, &r.KelasRuang,
); err != nil {
return nil, fmt.Errorf("scan m_ruang gagal: %w", err)
}
result = append(result, r)
}
return result, rows.Err()
}
+12
View File
@@ -0,0 +1,12 @@
package ruang
import "database/sql"
type Ruangan struct {
No int `db:"no"`
Nama string `db:"nama"`
JumlahTT int `db:"jumlah_tt"`
KodeRuang sql.NullString `db:"kode_aplicare"` // diisi manual, dikirim ke BPJS
NamaRuang sql.NullString `db:"nama_ruang"` // diisi manual, dikirim ke BPJS
KelasRuang sql.NullString `db:"kode_kelas"` // diisi manual, dikirim ke BPJS
}
+44
View File
@@ -0,0 +1,44 @@
package ruang
import (
"api-service/internal/config"
"api-service/internal/database"
"api-service/pkg/logger"
"context"
"github.com/gin-gonic/gin"
"github.com/go-playground/validator/v10"
"net/http"
"sync"
"time"
)
type MruangHandler struct {
simrs *SimrsDB
validator *validator.Validate
logger logger.Logger
cfg *config.Config
once sync.Once
interval time.Duration
}
type MruangHandlerConfig struct {
Config *config.Config
Logger logger.Logger
Validator *validator.Validate
}
type SimrsDB struct {
db database.Service
}
func (h *MruangHandler) NewMruangHandler(c *gin.Context) {
ctx, cancel := context.WithTimeout(c.Request.Context(), 120*time.Second)
defer cancel()
ruangans, err := h.simrs.GetMRuangan(ctx)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, ruangans)
}