add user and pass for world to env variables
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package transport
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
json_models "gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/models/json"
|
||||
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/requests"
|
||||
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/types"
|
||||
"github.com/gorilla/websocket"
|
||||
@@ -105,8 +108,8 @@ func (tr *FoundryTransport) ListenWebSocket() {
|
||||
}
|
||||
}
|
||||
|
||||
func (tr *FoundryTransport) ConnectToWorld() error {
|
||||
err := tr.LogInToWorld()
|
||||
func (tr *FoundryTransport) ConnectToWorld(userId string, userPass string) error {
|
||||
err := tr.LogInToWorld(userId, userPass)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -126,6 +129,58 @@ func (tr *FoundryTransport) ConnectToWorld() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (tr *FoundryTransport) GetUserId(username string) (string, error) {
|
||||
msgJson, err := tr.GetJsonDataByType(requests.JoinPath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
var modelUsers []struct {
|
||||
Users []json_models.User `json:"users"`
|
||||
}
|
||||
|
||||
err = json.Unmarshal(msgJson, &modelUsers)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
tr.Logger.Debug("User data", "msg in json format", modelUsers)
|
||||
|
||||
users := modelUsers[0].Users
|
||||
for i := range users {
|
||||
if strings.EqualFold(users[i].Name, username) {
|
||||
return users[i].ID, nil
|
||||
}
|
||||
}
|
||||
|
||||
return "", ErrorUserDoesntExist
|
||||
}
|
||||
|
||||
func (tr *FoundryTransport) GetUserIdAndPass() (string, string, error) {
|
||||
status, err := tr.Http.GetStatus()
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
var worldData *types.WorldData
|
||||
for i := range tr.InitWorlds {
|
||||
if strings.EqualFold(tr.InitWorlds[i].Name, status.World) {
|
||||
worldData = &tr.InitWorlds[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if worldData == nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
userId, err := tr.GetUserId(worldData.Username)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
return userId, worldData.UserPass, nil
|
||||
}
|
||||
|
||||
func (tr *FoundryTransport) SendOnlyCodeRequest(code string) error {
|
||||
tr.Logger.Debug("WS: Data has been send\n", "msg", types.CodesRespToReq[code])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user