From e1c8ddd8f0dba4f21e07569ed4e9aae2fa9443ed Mon Sep 17 00:00:00 2001 From: adibwp Date: Thu, 13 Jun 2024 09:58:23 +0700 Subject: [PATCH] multi login progress --- handlers/public/login.handlers.go | 2 ++ handlers/routes.go | 4 +-- models/login.models.go | 28 +++++++++++++++++++ services/public/login.services.go | 45 ++++++++++++++++++++++++------- 4 files changed, 66 insertions(+), 13 deletions(-) diff --git a/handlers/public/login.handlers.go b/handlers/public/login.handlers.go index 75a73eb..20fb2c6 100644 --- a/handlers/public/login.handlers.go +++ b/handlers/public/login.handlers.go @@ -117,6 +117,8 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error { si := public_login.ShowLogin("Login ", public_login.MainLogin(), public_login.CssLogin(), public_login.JsLogin()) return utils.View(c, si) } + defer logger.Sync() + logger.Info("valid", zap.Any("value", valid)) var url string switch valid.Data.Type { diff --git a/handlers/routes.go b/handlers/routes.go index 8741477..e7f14a2 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -74,9 +74,7 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) { loginServ := public_services.NewServicesLogin(appStore) loginHadlr := public_handlers.NewLoginHandler(loginServ) public.GET("login", loginHadlr.HandlerShowLogin) - public.POST("login/signin", loginHadlr.HandlerSignIn) - - // dashboard_pic + public.POST("login/signin", loginHadlr.HandleSignIn) // kartu kontrol publicKartuKontrolServices := public_services.NewServicesKartuKontrol(appStore) diff --git a/models/login.models.go b/models/login.models.go index a8d2856..63b3254 100644 --- a/models/login.models.go +++ b/models/login.models.go @@ -59,3 +59,31 @@ type ResponseValid struct { Type string `json:"type"` } `json:"data"` } + +type Response struct { + Status string `json:"status"` + Message string `json:"message"` + Query string `json:"query"` + DbError struct { + Code int `json:"code"` + Message string `json:"message"` + } `json:"db_error"` + Data struct { + User struct { + MUserID string `json:"M_UserID"` + MUserEmail string `json:"M_UserEmail"` + MUserUsername string `json:"M_UserUsername"` + MUserGroupDashboard string `json:"M_UserGroupDashboard"` + MUserDefaultTSampleStationID string `json:"M_UserDefaultT_SampleStationID"` + MStaffName string `json:"M_StaffName"` + IsCourier string `json:"is_courier"` + TimeAutologout string `json:"time_autologout"` + IP string `json:"ip"` + Agent string `json:"agent"` + Version string `json:"version"` + LastLogin string `json:"last-login"` + } `json:"user"` + Token string `json:"token"` + Type string `json:"type"` + } `json:"data"` +} diff --git a/services/public/login.services.go b/services/public/login.services.go index 57389a4..277049d 100644 --- a/services/public/login.services.go +++ b/services/public/login.services.go @@ -71,7 +71,7 @@ func (ls *ServicesLogin) SignIn(username string, password string) (models.Respon logger, _ := zap.NewProduction() var respvalid models.ResponseValid var respinvalid models.ResponseInvalid - uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/login" + uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/multi_login" params := url.Values{} params.Add("username", username) @@ -92,20 +92,45 @@ func (ls *ServicesLogin) SignIn(username string, password string) (models.Respon return respvalid, respinvalid, err } - var response interface{} - err = json.Unmarshal(body, &response) - if err != nil { + valid := models.ResponseValid{} + if err := json.NewDecoder(resp.Body).Decode(&valid); err != nil { defer logger.Sync() - logger.Error("error parse body", zap.Any("error", err)) + logger.Error("error decode body", zap.Any("error", err)) return respvalid, respinvalid, err } - switch v := response.(type) { - case models.ResponseValid: - respvalid = v - case models.ResponseInvalid: - respinvalid = v + invalid := models.ResponseInvalid{} + if err := json.NewDecoder(resp.Body).Decode(&invalid); err != nil { + defer logger.Sync() + logger.Error("error decode body", zap.Any("error", err)) + return respvalid, respinvalid, err } + // err = json.Unmarshal(body, &response) + // if err != nil { + // defer logger.Sync() + // logger.Error("error parse body", zap.Any("error", err)) + // return respvalid, respinvalid, err + // } + + // switch v := response.(type) { + // case models.ResponseValid: + // respvalid = v + // case models.ResponseInvalid: + // respinvalid = v + // default: + // logger.Info("default", zap.Any("data", v)) + // } return respvalid, respinvalid, err } + +// func (ls *ServicesLogin) MultiSignIn(username string, password string) (models.Response, error) { +// logger, _ := zap.NewProduction() +// uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/multi_login" + +// params := url.Values{} +// params.Add("username", username) +// params.Add("password", password) + +// resp, +// }