penambahan frontend
This commit is contained in:
@@ -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()
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user