api.go
changeset 128 a5a00fad7a32
parent 125 2bbb72b9ebf6
child 130 c450bb73f59a
--- a/api.go	Sun Apr 16 02:12:38 2017 +0200
+++ b/api.go	Sun Apr 16 13:37:37 2017 +0200
@@ -69,7 +69,13 @@
 }
 
 // prepareRequest inserts all pre-defined stuff
-func (g *Client) prepareRequest(target string, method rest.Method, params apiCallParams) (req rest.Request) {
+func (g *Client) prepareRequest(target string, method rest.Method, params apiCallParams) (rest.Request, error) {
+	var req rest.Request
+
+	if g == nil {
+		return req, fmt.Errorf("use of uninitialized gondole client")
+	}
+
 	endPoint := g.APIBase + "/" + target
 
 	// Request headers
@@ -85,13 +91,20 @@
 		Method:      method,
 		QueryParams: params,
 	}
-	return
+	return req, nil
 }
 
 // apiCall makes a call to the Mastodon API server
 func (g *Client) apiCall(endPoint string, method rest.Method, params apiCallParams, data interface{}) error {
+	if g == nil {
+		return fmt.Errorf("use of uninitialized gondole client")
+	}
+
 	// Prepare query
-	req := g.prepareRequest(endPoint, method, params)
+	req, err := g.prepareRequest(endPoint, method, params)
+	if err != nil {
+		return err
+	}
 
 	// Make API call
 	r, err := restAPI(req)