step 8 : templ and handling submit except saran mcu
This commit is contained in:
154
handlers/public/surveymcu.handlers.go
Normal file
154
handlers/public/surveymcu.handlers.go
Normal file
@@ -0,0 +1,154 @@
|
||||
package public_handlers
|
||||
|
||||
import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
surveymcu "cpone/views/public/surveymcu"
|
||||
|
||||
"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 {
|
||||
|
||||
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
|
||||
}
|
||||
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 {
|
||||
for _, v := range dataSurveyMcu {
|
||||
if len(v.DataListItemSurveyMcu) > 0 {
|
||||
hxInclude = utils.ConcatHxIncludeSurveyMcu(v.DataListItemSurveyMcu)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
si := surveymcu.ShowSurveyMcu("Survey Mcu",
|
||||
surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, stringUrl, surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "alertSaranMcu"), hxInclude), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
|
||||
|
||||
return utils.View(c, si)
|
||||
}
|
||||
|
||||
func (lh *SurveyMcuHandler) HandlerProcessSurveyMcu(c echo.Context) error {
|
||||
|
||||
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
|
||||
}
|
||||
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", c.FormValue(form.Get("radio-1"))),
|
||||
zap.Any("name dari inputan", form.Get("radio-1")),
|
||||
)
|
||||
|
||||
// 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 = ""
|
||||
|
||||
if len(dataSurveyMcu) > 0 {
|
||||
for _, v := range dataSurveyMcu {
|
||||
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
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if len(c.FormValue("saranMcu")) == 0 {
|
||||
// isFormEmpty = true
|
||||
// stringMessage += " Kemudian Saran Mcu Wajib Diisi"
|
||||
// idSaranMcuAlert = "alertSaranMcu"
|
||||
// }
|
||||
|
||||
// if len(c.FormValue("saranMcu")) > 0 {
|
||||
// isFormEmpty = false
|
||||
// stringMessage += ""
|
||||
// idSaranMcuAlert = "alertSaranMcu"
|
||||
// }
|
||||
|
||||
if isFormEmpty {
|
||||
si = surveymcu.ErrorMessageSurveyMcu(stringMessage, idFormKosong, idClearMsg, idSaranMcuAlert)
|
||||
// si = surveymcu.ShowSurveyMcu("Survey Mcu",
|
||||
// surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, nomorRegistrasi, surveymcu.ErrorMessageSurveyMcu(stringMessage, idFormKosong)), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
|
||||
// si = surveymcu.FormSurvey(dataSurveyMcu, stringUrl)
|
||||
} else {
|
||||
// var idClearMsgEmpty []models.IdClearErrorMessage
|
||||
si = surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "")
|
||||
}
|
||||
|
||||
// stringMessage += fmt.Sprintf("Pertanyaan ke-%s", x.IDItemSurvey, " wajib diisi")
|
||||
|
||||
// si := surveymcu.ShowSurveyMcu("Survey Mcu",
|
||||
// surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, nomorRegistrasi), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
|
||||
|
||||
return utils.View(c, si)
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
corporate_services "cpone/services/corporate"
|
||||
dev_services "cpone/services/dev"
|
||||
public_services "cpone/services/public"
|
||||
"net/http"
|
||||
|
||||
"cpone/db"
|
||||
|
||||
@@ -76,6 +77,19 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.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)
|
||||
|
||||
// contoh penggunaan header location spt php
|
||||
app.GET("/redirectsurveymcu", func(c echo.Context) error {
|
||||
return c.Redirect(http.StatusFound, "surveymcu/:nomorRegistrasi")
|
||||
})
|
||||
|
||||
// surveymcuproses
|
||||
public.POST("surveymcuproses/:nomorRegistrasi", publicSurveyMcuhandlers.HandlerProcessSurveyMcu)
|
||||
}
|
||||
func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
|
||||
public := app.Group("/corp")
|
||||
|
||||
Reference in New Issue
Block a user