Add `GetIssue()` and `GetProject()` methods to `JiraClient`
							parent
							
								
									75c00825a8
								
							
						
					
					
						commit
						3f58d01cdf
					
				
							
								
								
									
										50
									
								
								client.go
								
								
								
								
							
							
						
						
									
										50
									
								
								client.go
								
								
								
								
							|  | @ -1,6 +1,9 @@ | ||||||
| package jiraclient | package jiraclient | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -22,3 +25,50 @@ type JiraClient struct { | ||||||
| 	Domain   string | 	Domain   string | ||||||
| 	Client   *http.Client | 	Client   *http.Client | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func (c JiraClient) get(url string) ([]byte, error) { | ||||||
|  | 	req, err := http.NewRequest("GET", url, nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return []byte{}, err | ||||||
|  | 	} | ||||||
|  | 	req.SetBasicAuth(c.Username, c.Token) | ||||||
|  | 
 | ||||||
|  | 	resp, err := c.Client.Do(req) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return []byte{}, err | ||||||
|  | 	} | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  | 
 | ||||||
|  | 	body, err := io.ReadAll(resp.Body) | ||||||
|  | 	return body, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c JiraClient) GetIssue(keyOrId string) (Issue, error) { | ||||||
|  | 	var issue Issue | ||||||
|  | 
 | ||||||
|  | 	url := fmt.Sprintf("https://%s.atlassian.net/rest/api/2/issue/%s", c.Domain, keyOrId) | ||||||
|  | 
 | ||||||
|  | 	body, err := c.get(url) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return issue, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	err = json.Unmarshal(body, &issue) | ||||||
|  | 
 | ||||||
|  | 	return issue, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c JiraClient) GetProject(keyOrId string) (Project, error) { | ||||||
|  | 	var project Project | ||||||
|  | 
 | ||||||
|  | 	url := fmt.Sprintf("https://%s.atlassian.net/rest/api/2/project/%s", c.Domain, keyOrId) | ||||||
|  | 
 | ||||||
|  | 	body, err := c.get(url) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return project, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	err = json.Unmarshal(body, &project) | ||||||
|  | 
 | ||||||
|  | 	return project, err | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue