add kartu kontrol and survey mcu into public

This commit is contained in:
sindhu
2024-05-22 16:39:41 +07:00
committed by adibwp
parent b3ef572180
commit 81d2d078be
15 changed files with 2696 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
package public_handlers
import (
"cpone/models"
"cpone/utils"
kartukontrol "cpone/views/public/kartukontrol"
public_toast "cpone/views/public/toast"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type KartuKontrolService interface {
GetkartuKontrolById(nomorRegistrasi string) ([]models.KartuKontrolModel, error)
}
func NewKartuKontrolHandler(us KartuKontrolService) *KartuKontrolHandler {
return &KartuKontrolHandler{
KartuKontrolService: us,
}
}
type KartuKontrolHandler struct {
KartuKontrolService KartuKontrolService
}
func (lh *KartuKontrolHandler) HandlerHideToast(c echo.Context) error {
toastComponent := public_toast.PublicToastV1KartuKontrolHide()
si := toastComponent
return utils.View(c, si)
}
func (lh *KartuKontrolHandler) HandlerShowKartuKontrol(c echo.Context) error {
var flagxError bool = true
var msgx string = ""
nomorRegistrasi := c.Param("nomorRegistrasi")
urlSurveyMcu := "redirectsurveymcu"
// urlSurveyMcu := "redirectsurveymcu"
// nomorRegistrasi := "1"
logger, _ := zap.NewProduction()
defer logger.Sync()
dataKartuKontrol, err := lh.KartuKontrolService.GetkartuKontrolById(nomorRegistrasi)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
zap.Any("prm", nomorRegistrasi),
)
// return err
if flagxError {
msgx = "Error Get Kartu Kontrol"
si := public_toast.PublicToastV1KartuKontrolShow("Error", msgx, "danger")
return utils.View(c, si)
}
}
logger.Info("SHOW DATA KARTU KONTROL handler",
zap.Any("return", dataKartuKontrol),
zap.Any("prm", nomorRegistrasi),
)
flagxError = false
var si templ.Component
var isShowSurveyMcu bool = true
if isShowSurveyMcu {
si = kartukontrol.ShowKartuKontrol("Kartu Kontrol", kartukontrol.MainContentKartuKontrolLayout(dataKartuKontrol, "/modalsurveykartukontrol", "load delay:3s", "modalWordingSurveyMcu", urlSurveyMcu, nomorRegistrasi), kartukontrol.CssKartuKontrol(), kartukontrol.JsKartuKontrol())
} else {
si = kartukontrol.ShowKartuKontrol("Kartu Kontrol",
kartukontrol.MainContentKartuKontrolLayout(dataKartuKontrol, "", "", "modalWordingSurveyMcu", urlSurveyMcu, nomorRegistrasi), kartukontrol.CssKartuKontrol(), kartukontrol.JsKartuKontrol())
}
return utils.View(c, si)
}
func (lh *KartuKontrolHandler) HandlerShowWordingModalSurveyMcu(c echo.Context) error {
stringUrlToSurveyMcu := c.QueryParam("urlSurveyMcu")
// var dataKartuKontrol []models.KartuKontrolModel
si := kartukontrol.ShowKartuKontrol(
"Kartu Kontrol",
kartukontrol.ModalMcuWordingShow("modalWordingSurveyMcu", "Silahkan isi questioner untuk membantu peningkatan layanan kami. Terima kasih.", stringUrlToSurveyMcu), kartukontrol.CssKartuKontrol(), kartukontrol.JsKartuKontrol())
return utils.View(c, si)
}
func (lh *KartuKontrolHandler) HandlerRedirectToSurveyMcu(c echo.Context) error {
nomorRegistrasi := c.QueryParam("nomorRegistrasi")
stringUrlToSurveyMcu := "/surveymcu/" + nomorRegistrasi
logger, _ := zap.NewProduction()
defer logger.Sync()
if len(stringUrlToSurveyMcu) > 0 {
// redirect ke kartu kontrol
logger.Info("redirect SURVEY MCU",
zap.Any("redirect SURVEY MCU", stringUrlToSurveyMcu),
)
c.Response().Header().Set("HX-Redirect", stringUrlToSurveyMcu)
// return c.NoContent(http.StatusOK)
}
si := kartukontrol.ShowKartuKontrol(
"Kartu Kontrol",
kartukontrol.ModalMcuWordingShow("modalWordingSurveyMcu", "Silahkan isi questioner untuk membantu peningkatan layanan kami. Terima kasih.", ""), kartukontrol.CssKartuKontrol(), kartukontrol.JsKartuKontrol())
return utils.View(c, si)
}

View File

@@ -0,0 +1,194 @@
package public_handlers
import (
"cpone/models"
"cpone/utils"
surveymcu "cpone/views/public/surveymcu"
public_toast "cpone/views/public/toast"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type SurveyMcuService interface {
GetSurveyMcuByNoreg(nomorRegistrasi string) ([]models.SurveyMcu, error)
}
func NewSurveyMcuHandler(us SurveyMcuService) *SurveyMcuHandler {
return &SurveyMcuHandler{
SurveyMcuService: us,
}
}
type SurveyMcuHandler struct {
SurveyMcuService SurveyMcuService
}
func (lh *SurveyMcuHandler) HandlerShowSurveyMcu(c echo.Context) error {
var flagxError bool = true
var msgx string = ""
nomorRegistrasi := c.Param("nomorRegistrasi")
// nomorRegistrasi := "1"
logger, _ := zap.NewProduction()
defer logger.Sync()
dataSurveyMcu, err := lh.SurveyMcuService.GetSurveyMcuByNoreg(nomorRegistrasi)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
zap.Any("prm", nomorRegistrasi),
)
// return err
if flagxError {
msgx = "Error Get Survey MCU By No Reg"
si := public_toast.PublicToastV1KartuKontrolShow("Error", msgx, "danger")
return utils.View(c, si)
}
}
flagxError = false
logger.Info("SHOW DATA SURVEY MCU handler",
zap.Any("return", dataSurveyMcu),
zap.Any("prm", nomorRegistrasi),
)
stringUrl := "surveymcuproses/" + nomorRegistrasi
var hxInclude string = ""
var idClearMsg []models.IdClearErrorMessage
if len(dataSurveyMcu) > 0 {
hxInclude = utils.ConcatHxIncludeSurveyMcu(dataSurveyMcu)
}
si := surveymcu.ShowSurveyMcu("Survey Mcu",
surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, stringUrl, surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "alertSaranMcu", public_toast.PublicToastV1KartuKontrolHide()), hxInclude), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
return utils.View(c, si)
}
func (lh *SurveyMcuHandler) HandlerProcessSurveyMcu(c echo.Context) error {
var flagxError bool = true
var msgx string = ""
nomorRegistrasi := c.Param("nomorRegistrasi")
stringUrlBackToKartuKontrol := "/kartukontrol/" + nomorRegistrasi
// nomorRegistrasi := "1"
logger, _ := zap.NewProduction()
defer logger.Sync()
dataSurveyMcu, err := lh.SurveyMcuService.GetSurveyMcuByNoreg(nomorRegistrasi)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
zap.Any("prm", nomorRegistrasi),
)
// return err
if flagxError {
msgx = "Error Get Survey MCU By No Reg"
si := public_toast.PublicToastV1KartuKontrolShow("Error", msgx, "danger")
return utils.View(c, si)
}
}
logger.Info("SHOW DATA SURVEY MCU handler",
zap.Any("return", dataSurveyMcu),
zap.Any("prm", nomorRegistrasi),
)
// form := c.Request().PostForm
// stringUrl := "surveymcuproses/" + nomorRegistrasi
logger.Info("CEK POST handler",
zap.Any("c.FormValue Saran", c.FormValue("saranmcu-11")),
)
// proses validasi
var si templ.Component
var idFormKosong string = ""
var stringMessage string = ""
var isFormEmpty bool = false
var idClearMsg []models.IdClearErrorMessage
var idSaranMcuAlert string = ""
// var idSaranMcuClear string = ""
hasError := false
if len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
// radio button
if len(v.DataListItemSurveyMcu) > 0 {
for _, x := range v.DataListItemSurveyMcu {
if len(c.FormValue("radio-"+x.IDItemSurvey)) > 0 {
idClearMsg = append(idClearMsg, models.IdClearErrorMessage{IdItem: x.IDItemSurvey})
}
if "default-"+x.NameRadioButton == c.FormValue("default-"+x.NameRadioButton) && len(c.FormValue("radio-"+x.IDItemSurvey)) == 0 {
stringMessage = "Pertanyaan ke-" + x.IDItemSurvey + " wajib diisi"
idFormKosong = utils.GetIdSurveyMcu(x.IDItemSurvey)
isFormEmpty = true
hasError = true
flagxError = true
break
}
}
}
if hasError {
break
}
}
}
// saran mcu
if !hasError && len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
if len(v.DataListItemSurveyMcuSaran) > 0 {
for _, x := range v.DataListItemSurveyMcuSaran {
if len(c.FormValue("saranmcu-"+x.IDItemSurveyMcuSaran)) > 0 {
idClearMsg = append(idClearMsg, models.IdClearErrorMessage{IdItem: x.IDItemSurveyMcuSaran})
}
if "default-"+x.NameSurveyMcuSaran == c.FormValue("default-"+x.NameSurveyMcuSaran) && len(c.FormValue("saranmcu-"+x.IDItemSurveyMcuSaran)) == 0 {
stringMessage = "Saran Wajib Diisi"
idFormKosong = utils.GetIdSurveyMcu(x.IDItemSurveyMcuSaran)
isFormEmpty = true
hasError = true
break
}
}
}
if hasError {
break
}
}
}
if isFormEmpty {
// if flagxError {
// msgx = "Error Get Survey MCU By No Reg"
// si := public_toast.PublicToastV1KartuKontrolShow("Error", msgx, "danger")
// return utils.View(c, si)
// }
si = surveymcu.ErrorMessageSurveyMcu(stringMessage, idFormKosong, idClearMsg, idSaranMcuAlert, public_toast.PublicToastV1KartuKontrolShow("Warning", stringMessage, "warning"))
} else {
flagxError = false
si = surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "", public_toast.PublicToastV1KartuKontrolHide())
logger.Info("redirect",
zap.Any("redirect", stringUrlBackToKartuKontrol),
)
// redirect ke kartu kontrol
c.Response().Header().Set("HX-Redirect", stringUrlBackToKartuKontrol)
}
return utils.View(c, si)
}

View File

@@ -68,6 +68,26 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
public.GET("landingpage", lh.ShowLandingPage)
loginHdr := public_handlers.NewLoginHandler(l)
public.GET("login", loginHdr.HandlerShowLogin)
// kartu kontrol
publicKartuKontrolServices := public_services.NewServicesKartuKontrol(appStore)
publicKartuKontrolhandlers := public_handlers.NewKartuKontrolHandler(publicKartuKontrolServices)
public.GET("kartukontrol/:nomorRegistrasi", publicKartuKontrolhandlers.HandlerShowKartuKontrol)
public.GET("modalsurveykartukontrol", publicKartuKontrolhandlers.HandlerShowWordingModalSurveyMcu)
// survey mcu page (pertanyaan dan jawaban)
publicSurveyMcuServices := public_services.NewServicesSurveyMcu(appStore)
publicSurveyMcuhandlers := public_handlers.NewSurveyMcuHandler(publicSurveyMcuServices)
public.GET("surveymcu/:nomorRegistrasi", publicSurveyMcuhandlers.HandlerShowSurveyMcu)
// hide toast
public.GET("hidetoastkartukontrol", publicKartuKontrolhandlers.HandlerHideToast)
// surveymcuproses
public.POST("surveymcuproses/:nomorRegistrasi", publicSurveyMcuhandlers.HandlerProcessSurveyMcu)
// redirect to survey mcu page
public.GET("redirectsurveymcu", publicKartuKontrolhandlers.HandlerRedirectToSurveyMcu)
}
func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
public := app.Group("/corp")