Skip to content

Commit d1eafe0

Browse files
committed
SimilarID method
1 parent 02456e8 commit d1eafe0

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

facebox/facebox_similar.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,35 @@ func (c *Client) SimilarURL(imageURL *url.URL) ([]Similar, error) {
7676
return c.parseSimilarResponse(resp.Body)
7777
}
7878

79+
// SimilarID returns similar faces based on the ID provided
80+
func (c *Client) SimilarID(id string) ([]Similar, error) {
81+
u, err := url.Parse(c.addr + "/facebox/similar")
82+
if err != nil {
83+
return nil, err
84+
}
85+
if !u.IsAbs() {
86+
return nil, errors.New("box address must be absolute")
87+
}
88+
if id == "" {
89+
return nil, errors.New("id can not be empty")
90+
}
91+
q := u.Query()
92+
q.Set("id", id)
93+
u.RawQuery = q.Encode()
94+
95+
req, err := http.NewRequest("GET", u.String(), nil)
96+
if err != nil {
97+
return nil, err
98+
}
99+
req.Header.Set("Accept", "application/json; charset=utf-8")
100+
resp, err := c.HTTPClient.Do(req)
101+
if err != nil {
102+
return nil, err
103+
}
104+
defer resp.Body.Close()
105+
return c.parseSimilarResponse(resp.Body)
106+
}
107+
79108
func (c *Client) parseSimilarResponse(r io.Reader) ([]Similar, error) {
80109
var similarResponse struct {
81110
Success bool

0 commit comments

Comments
 (0)