package point_tools import ( "bitbucket.org/skobkin/point-api-go" "bitbucket.org/skobkin/dumb-http-go" "encoding/json" "log" "net/http" "net/url" ) type PointToolsClient struct { client simple_http.Client apiUrl string token string } func New(apiUrl, token string) PointToolsClient { return PointToolsClient{ simple_http.Client{http.Client{}}, apiUrl, token, } } 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", c.token) data.Add("json", jsonStr) body, reqErr := c.client.MakePostRequest(c.apiUrl+"all/page", data, nil) if reqErr != nil { return response, reqErr } jsonErr := json.Unmarshal(body, &response) if jsonErr != nil { return response, jsonErr } return response, nil }