63 lines
1.1 KiB
Go
63 lines
1.1 KiB
Go
package point_tools
|
|
|
|
import (
|
|
"bitbucket.org/skobkin/point-tools-crawler/simple_http"
|
|
"encoding/json"
|
|
"log"
|
|
"net/http"
|
|
"net/url"
|
|
"bitbucket.org/skobkin/point-tools-crawler/point"
|
|
)
|
|
|
|
type PointToolsClient struct {
|
|
client simple_http.Client
|
|
apiUrl string
|
|
}
|
|
|
|
func NewClient(apiUrl string) PointToolsClient {
|
|
return PointToolsClient{
|
|
simple_http.Client{http.Client{}},
|
|
apiUrl,
|
|
}
|
|
}
|
|
|
|
func GetPageJSON(page point.Page) (string, error) {
|
|
b, err := json.Marshal(page)
|
|
|
|
if err != nil {
|
|
log.Println("point.Page serialize error:", err)
|
|
return "", err
|
|
}
|
|
|
|
return string(b[:]), nil
|
|
}
|
|
|
|
func (c *PointToolsClient) SendPage(page point.Page) (ReceiveAllPageResponse, error) {
|
|
var response ReceiveAllPageResponse
|
|
|
|
jsonStr, err := GetPageJSON(page)
|
|
|
|
if err != nil {
|
|
return response, err
|
|
}
|
|
|
|
data := url.Values{}
|
|
data.Set("token", "test_token")
|
|
data.Add("json", jsonStr)
|
|
|
|
body, req_err := c.client.MakePostRequest(c.apiUrl+"all/page", data, nil)
|
|
|
|
if req_err != nil {
|
|
return response, req_err
|
|
}
|
|
|
|
json_err := json.Unmarshal(body, &response)
|
|
|
|
if json_err != nil {
|
|
return response, json_err
|
|
}
|
|
|
|
log.Println("Response:", string(body[:]))
|
|
|
|
return response, nil
|
|
} |