in auth/login.go [197:228]
func doLogin(url, user, password string) (map[string]string, error) {
data := map[string]string{
"login": user,
"password": password,
}
loginJson, err := json.Marshal(data)
if err != nil {
return nil, err
}
resp, err := http.Post(url, "application/json", bytes.NewBuffer(loginJson))
if err != nil {
return nil, err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("login failed with status code %d", resp.StatusCode)
}
return nil, fmt.Errorf("login failed (%d): %s", resp.StatusCode, string(body))
}
var creds map[string]string
err = json.NewDecoder(resp.Body).Decode(&creds)
if err != nil {
return nil, errors.New("failed to decode response from login request")
}
return creds, nil
}