-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
requests.go
66 lines (55 loc) · 1.71 KB
/
requests.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"strings"
dockerimagesave "github.com/jadolg/DockerImageSave"
)
// PullImageRequest pulls a docker image on server
func PullImageRequest(imageid string) (dockerimagesave.PullResponse, error) {
resp, err := http.Get(ServiceURL + "pull/" + imageid)
defer dockerimagesave.CloseResponse(resp)
if err != nil {
return dockerimagesave.PullResponse{}, err
}
b, _ := io.ReadAll(resp.Body)
var pullResponse dockerimagesave.PullResponse
err = json.Unmarshal(b, &pullResponse)
if err != nil {
return dockerimagesave.PullResponse{}, err
}
return pullResponse, nil
}
// SaveImageRequest Saves a docker image on server
func SaveImageRequest(imageid string) (dockerimagesave.SaveResponse, error) {
resp, err := http.Get(ServiceURL + "save/" + imageid)
defer dockerimagesave.CloseResponse(resp)
if err != nil {
return dockerimagesave.SaveResponse{}, err
}
b, _ := io.ReadAll(resp.Body)
var saveResponse dockerimagesave.SaveResponse
err = json.Unmarshal(b, &saveResponse)
if err != nil {
return dockerimagesave.SaveResponse{}, err
}
return saveResponse, nil
}
// SearchRequest is a wrapper around the docker search API
func SearchRequest(term string) (dockerimagesave.SearchResponse, error) {
termWithSpaces := strings.ReplaceAll(term, " ", "%20")
resp, err := http.Get(fmt.Sprintf("%s/search?term=%s", ServiceURL, termWithSpaces))
defer dockerimagesave.CloseResponse(resp)
if err != nil {
return dockerimagesave.SearchResponse{}, err
}
b, _ := io.ReadAll(resp.Body)
var searchResponse dockerimagesave.SearchResponse
err = json.Unmarshal(b, &searchResponse)
if err != nil {
return dockerimagesave.SearchResponse{}, err
}
return searchResponse, nil
}