multi login

This commit is contained in:
2024-06-13 10:59:41 +07:00
parent e1c8ddd8f0
commit c04b8b1081
2 changed files with 17 additions and 51 deletions

View File

@@ -13,7 +13,7 @@ import (
type LoginService interface {
Login(username string, password string) (models.ResponseApi, error)
SignIn(username string, password string) (models.ResponseValid, models.ResponseInvalid, error)
MultiSignIn(username string, password string) (models.Response, error)
}
func NewLoginHandler(us LoginService) *LoginHandler {
@@ -102,7 +102,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
defer logger.Sync()
logger.Info("Params", zap.Any("username", username), zap.Any("pass", password))
valid, invalid, err := lh.LoginService.SignIn(username, password)
resp, err := lh.LoginService.MultiSignIn(username, password)
if err != nil {
defer logger.Sync()
logger.Info("Error", zap.Error(err))
@@ -110,18 +110,18 @@ 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)
}
if invalid.Status == "ERR" {
if resp.Status == "ERR" {
defer logger.Sync()
logger.Info("Error", zap.Error(err))
logger.Info("Error", zap.Any("ERR", resp.Status))
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))
logger.Info("valid", zap.Any("value", resp))
var url string
switch valid.Data.Type {
switch resp.Data.Type {
case "cpone":
url = "/one-ui"
case "pic":
@@ -132,7 +132,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
url = "/one-ui"
}
user, err := json.Marshal(valid.Data.User)
user, err := json.Marshal(resp.Data.User)
if err != nil {
defer logger.Sync()
logger.Info("Error", zap.Error(err))
@@ -145,7 +145,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
store := `
<script>
console.log("store token");
const token = "` + valid.Data.Token + `";
const token = "` + resp.Data.Token + `";
const user = JSON.stringify(` + userString + `);
localStorage.setItem("token", token);
localStorage.setItem("user", user);

View File

@@ -67,10 +67,9 @@ func (ls *ServicesLogin) Login(username string, password string) (models.Respons
return resp, nil
}
func (ls *ServicesLogin) SignIn(username string, password string) (models.ResponseValid, models.ResponseInvalid, error) {
func (ls *ServicesLogin) MultiSignIn(username string, password string) (models.Response, error) {
logger, _ := zap.NewProduction()
var respvalid models.ResponseValid
var respinvalid models.ResponseInvalid
var ret models.Response
uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/multi_login"
params := url.Values{}
@@ -81,7 +80,7 @@ func (ls *ServicesLogin) SignIn(username string, password string) (models.Respon
if err != nil {
defer logger.Sync()
logger.Error("error request post", zap.Any("error", err))
return respvalid, respinvalid, err
return ret, err
}
defer resp.Body.Close()
@@ -89,48 +88,15 @@ func (ls *ServicesLogin) SignIn(username string, password string) (models.Respon
if err != nil {
defer logger.Sync()
logger.Error("error read body", zap.Any("error", err))
return respvalid, respinvalid, err
return ret, err
}
valid := models.ResponseValid{}
if err := json.NewDecoder(resp.Body).Decode(&valid); err != nil {
err = json.Unmarshal(body, &ret)
if err != nil {
defer logger.Sync()
logger.Error("error decode body", zap.Any("error", err))
return respvalid, respinvalid, err
logger.Error("error parse body", zap.Any("error", err))
return ret, err
}
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
return ret, nil
}
// 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,
// }