| 
				
			 | 
			
			
				@@ -139,6 +139,7 @@ func (c *Client) CreateOrUpdateDashboard(contentJSON []byte) (err error) { 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				139
			 | 
			
			
				 		Overwrite: true, 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				140
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				141
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				+	// Generate the request body's JSON 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				143
			 | 
			
			
				 	reqBodyJSON, err := json.Marshal(reqBody) 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				144
			 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
			| 
				144
			 | 
			
				145
			 | 
			
			
				 		return 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -146,8 +147,11 @@ func (c *Client) CreateOrUpdateDashboard(contentJSON []byte) (err error) { 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				147
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				147
			 | 
			
				148
			 | 
			
			
				 	var httpError *httpUnkownError 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				149
			 | 
			
			
				 	var isHttpUnknownError bool 
			 | 
		
	
		
			
			| 
				
			 | 
			
				150
			 | 
			
			
				+	// Send the request 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				151
			 | 
			
			
				 	respBodyJSON, err := c.request("POST", "dashboards/db", reqBodyJSON) 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				152
			 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				153
			 | 
			
			
				+		// Check the error against the httpUnkownError type in order to decide 
			 | 
		
	
		
			
			| 
				
			 | 
			
				154
			 | 
			
			
				+		// how to process the error 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				155
			 | 
			
			
				 		httpError, isHttpUnknownError = err.(*httpUnkownError) 
			 | 
		
	
		
			
			| 
				152
			 | 
			
				156
			 | 
			
			
				 		// We process httpUnkownError errors below, after we decoded the body 
			 | 
		
	
		
			
			| 
				153
			 | 
			
				157
			 | 
			
			
				 		if !isHttpUnknownError { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -155,17 +159,19 @@ func (c *Client) CreateOrUpdateDashboard(contentJSON []byte) (err error) { 
			 | 
		
	
		
			
			| 
				155
			 | 
			
				159
			 | 
			
			
				 		} 
			 | 
		
	
		
			
			| 
				156
			 | 
			
				160
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				157
			 | 
			
				161
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				162
			 | 
			
			
				+	// Decode the response body 
			 | 
		
	
		
			
			| 
				158
			 | 
			
				163
			 | 
			
			
				 	var respBody dbCreateOrUpdateResponse 
			 | 
		
	
		
			
			| 
				159
			 | 
			
				164
			 | 
			
			
				 	if err = json.Unmarshal(respBodyJSON, &respBody); err != nil { 
			 | 
		
	
		
			
			| 
				160
			 | 
			
				165
			 | 
			
			
				 		return 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				166
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				167
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				163
			 | 
			
				
			 | 
			
			
				-	slug, err := helpers.GetDashboardSlug(contentJSON) 
			 | 
		
	
		
			
			| 
				164
			 | 
			
				
			 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				
			 | 
			
			
				-		return 
			 | 
		
	
		
			
			| 
				166
			 | 
			
				
			 | 
			
			
				-	} 
			 | 
		
	
		
			
			| 
				167
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				168
			 | 
			
				168
			 | 
			
			
				 	if respBody.Status != "success" && isHttpUnknownError { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				169
			 | 
			
			
				+		// Get the dashboard's slug for logging 
			 | 
		
	
		
			
			| 
				
			 | 
			
				170
			 | 
			
			
				+		slug, err := helpers.GetDashboardSlug(contentJSON) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				171
			 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				172
			 | 
			
			
				+			return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				173
			 | 
			
			
				+		} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				174
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				169
			 | 
			
				175
			 | 
			
			
				 		return fmt.Errorf( 
			 | 
		
	
		
			
			| 
				170
			 | 
			
				176
			 | 
			
			
				 			"Failed to update dashboard %s (%d %s): %s", 
			 | 
		
	
		
			
			| 
				171
			 | 
			
				177
			 | 
			
			
				 			slug, httpError.StatusCode, respBody.Status, respBody.Message, 
			 |