Merge branch 'master' of github.com:navi-ppl/cybertron into TP-55555/error-log-consumer
This commit is contained in:
78
pkg/mjolnirClient/mjolnirClient.go
Normal file
78
pkg/mjolnirClient/mjolnirClient.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package mjolnirClient
|
||||
|
||||
import (
|
||||
"cybertron/configs"
|
||||
"cybertron/pkg/log"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type MjolnirClient struct {
|
||||
baseUrl string
|
||||
realmId string
|
||||
}
|
||||
|
||||
type MjolnirError struct {
|
||||
Code string `json:"code,omitempty"`
|
||||
Message string `json:"message,omitempty"`
|
||||
Params interface{} `json:"params,omitempty"`
|
||||
}
|
||||
|
||||
type MjolnirSessionResponse struct {
|
||||
SessionToken string `json:"sessionToken,omitempty"`
|
||||
ClientId string `json:"clientId,omitempty"`
|
||||
EmailId string `json:"emailId,omitempty"`
|
||||
AccountId string `json:"accountId,omitempty"`
|
||||
PhoneNumber string `json:"phoneNumber,omitempty"`
|
||||
PreferredUsername string `json:"preferred_username,omitempty"`
|
||||
Roles []string `json:"roles,omitempty"`
|
||||
Groups []string `json:"groups,omitempty"`
|
||||
Permissions []string `json:"permissions,omitempty"`
|
||||
StatusCode int `json:"statusCode,omitempty"`
|
||||
Errors []MjolnirError `json:"errors"`
|
||||
}
|
||||
|
||||
func NewMjolnirClient(mjolnirConfig configs.MjolnirClientConfig) *MjolnirClient {
|
||||
return &MjolnirClient{
|
||||
baseUrl: mjolnirConfig.GetMjolnirBaseUrl(),
|
||||
realmId: mjolnirConfig.GetMjolnirRealmId(),
|
||||
}
|
||||
}
|
||||
|
||||
var logger = log.Log.GetLog()
|
||||
var client = http.Client{}
|
||||
|
||||
const (
|
||||
SessionUrl = "%s/session/%s"
|
||||
)
|
||||
|
||||
func (m *MjolnirClient) GetSessionResponse(sessionToken string) (*MjolnirSessionResponse, error) {
|
||||
if sessionToken == "null" {
|
||||
return nil, errors.New("unauthorized request")
|
||||
}
|
||||
|
||||
req, _ := http.NewRequest("GET", fmt.Sprintf(SessionUrl, m.baseUrl, m.realmId), nil)
|
||||
req.Header.Add("X-Session-Token", sessionToken)
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
responseBody, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var response MjolnirSessionResponse
|
||||
err = json.Unmarshal(responseBody, &response)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logger.Info(fmt.Sprintf("%v", response))
|
||||
|
||||
return &response, nil
|
||||
}
|
||||
Reference in New Issue
Block a user