pindah dashboard_pic ke corp route

This commit is contained in:
2024-06-12 19:42:49 +07:00
parent a2fc463990
commit e6a5925588
12 changed files with 214 additions and 57 deletions

View File

@@ -1,4 +1,4 @@
package public_services
package corporate_services
import (
"cpone/db"

View File

@@ -8,6 +8,9 @@ import (
"fmt"
"io"
"net/http"
"net/url"
"go.uber.org/zap"
)
type ServicesLogin struct {
@@ -22,19 +25,23 @@ func NewServicesLogin(uStore db.AppStore) *ServicesLogin {
}
func (ls *ServicesLogin) Login(username string, password string) (models.ResponseApi, error) {
logger, _ := zap.NewProduction()
url := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/login"
var resp models.ResponseApi
// Create a JSON payload with the username and password
payload := []byte(fmt.Sprintf(`{"username": "%s", "password": "%s"}`, username, password))
logger.Info("payload", zap.Any("data", payload))
// Make the POST request
request, err := http.Post(url, "application/json", bytes.NewBuffer(payload))
if err != nil {
logger.Info("requser", zap.Any("err", err))
return resp, err
}
if request.StatusCode != http.StatusOK {
logger.Info("status", zap.Any("err", request.StatusCode))
return resp, fmt.Errorf("server returned non-OK status: %d", request.StatusCode)
}
defer request.Body.Close()
@@ -42,17 +49,63 @@ func (ls *ServicesLogin) Login(username string, password string) (models.Respons
// Read the response body
body, err := io.ReadAll(request.Body)
if err != nil {
logger.Info("body", zap.Any("data", body))
return resp, err
}
if err := json.Unmarshal(body, &resp); err != nil {
logger.Info("json", zap.Any("data", err))
return resp, err
}
// Check if status is "ERR"
if resp.Status == "ERR" {
logger.Info("status", zap.Any("data", resp.Message))
return resp, fmt.Errorf("login failed: %s", resp.Message)
}
return resp, nil
}
func (ls *ServicesLogin) SignIn(username string, password string) (models.ResponseValid, models.ResponseInvalid, error) {
logger, _ := zap.NewProduction()
var respvalid models.ResponseValid
var respinvalid models.ResponseInvalid
uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/login"
params := url.Values{}
params.Add("username", username)
params.Add("password", password)
resp, err := http.PostForm(uri, params)
if err != nil {
defer logger.Sync()
logger.Error("error request post", zap.Any("error", err))
return respvalid, respinvalid, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
defer logger.Sync()
logger.Error("error read body", zap.Any("error", err))
return respvalid, respinvalid, err
}
var response interface{}
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
}
return respvalid, respinvalid, err
}