From fac428f790f20f907a11064d7b18a93100743d83 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Tue, 29 Mar 2016 10:28:54 +0300 Subject: [PATCH] Initial commit. Code separated from point-tools-crawler. --- .gitignore | 1 + api_error.go | 6 ++++ client.go | 63 ++++++++++++++++++++++++++++++++++++ receive_all_page_response.go | 16 +++++++++ 4 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 api_error.go create mode 100644 client.go create mode 100644 receive_all_page_response.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57f1cb2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ \ No newline at end of file diff --git a/api_error.go b/api_error.go new file mode 100644 index 0000000..04bef96 --- /dev/null +++ b/api_error.go @@ -0,0 +1,6 @@ +package point_tools + +type ApiError struct { + Code int `json:"code"` + Message string `json:"message"` +} diff --git a/client.go b/client.go new file mode 100644 index 0000000..54a1230 --- /dev/null +++ b/client.go @@ -0,0 +1,63 @@ +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 +} diff --git a/receive_all_page_response.go b/receive_all_page_response.go new file mode 100644 index 0000000..fa73554 --- /dev/null +++ b/receive_all_page_response.go @@ -0,0 +1,16 @@ +package point_tools + +const ( + STATUS_SUCCESS string = "success" + STATUS_FAILURE string = "fail" +) + +type ReceiveAllPageResponse struct { + Status string `json:"status"` + Data ReceiveAllPageData `json:"data"` + Error ApiError `json:"error"` +} + +type ReceiveAllPageData struct { + Continue bool `json:"continue"` +}