add support for 1.19 "Secure Chat Signing"
This commit is contained in:
		@@ -19,6 +19,7 @@ package util
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"net/http"
 | 
			
		||||
@@ -138,28 +139,39 @@ func PostObjectForError(url string, data interface{}) error {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func PostForString(url string, data []byte) (string, error) {
 | 
			
		||||
func PostForString(url string, accessToken string, data []byte, value interface{}) error {
 | 
			
		||||
	reader := bytes.NewReader(data)
 | 
			
		||||
	resp, err := http.Post(url, "application/json", reader)
 | 
			
		||||
	request, err := http.NewRequestWithContext(context.Background(), "POST", url, reader)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if accessToken != "" {
 | 
			
		||||
		request.Header.Set("Authorization", "Bearer "+accessToken)
 | 
			
		||||
	}
 | 
			
		||||
	resp, err := http.DefaultClient.Do(request)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	if resp.StatusCode == http.StatusNoContent {
 | 
			
		||||
		return "", nil
 | 
			
		||||
		return nil
 | 
			
		||||
	} else if resp.StatusCode/100 == 4 {
 | 
			
		||||
		decoder := json.NewDecoder(resp.Body)
 | 
			
		||||
		errResp := YggdrasilError{}
 | 
			
		||||
		if resp.ContentLength <= 0 {
 | 
			
		||||
			errResp.Status = resp.StatusCode
 | 
			
		||||
			return errResp
 | 
			
		||||
		}
 | 
			
		||||
		decoder := json.NewDecoder(resp.Body)
 | 
			
		||||
		err = decoder.Decode(&errResp)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return "", err
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		return "", errResp
 | 
			
		||||
		return errResp
 | 
			
		||||
	} else {
 | 
			
		||||
		body, err := ioutil.ReadAll(resp.Body)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return "", err
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		return string(body), nil
 | 
			
		||||
		return json.Unmarshal(body, value)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user