client_store_view.go (117 lines of code) (raw):
package sls
import (
"encoding/json"
"fmt"
"io/ioutil"
)
func (c *Client) CreateStoreView(project string, storeView *StoreView) error {
body, err := json.Marshal(storeView)
if err != nil {
return NewClientError(err)
}
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": fmt.Sprintf("%v", len(body)),
}
uri := "/storeviews"
r, err := c.request(project, "POST", uri, h, body)
if err != nil {
return err
}
r.Body.Close()
return nil
}
func (c *Client) UpdateStoreView(project string, storeView *StoreView) error {
body, err := json.Marshal(storeView)
if err != nil {
return NewClientError(err)
}
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": fmt.Sprintf("%v", len(body)),
}
uri := "/storeviews/" + storeView.Name
r, err := c.request(project, "PUT", uri, h, body)
if err != nil {
return err
}
r.Body.Close()
return nil
}
func (c *Client) DeleteStoreView(project string, storeViewName string) error {
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": "0",
}
uri := "/storeviews/" + storeViewName
r, err := c.request(project, "DELETE", uri, h, nil)
if err != nil {
return err
}
r.Body.Close()
return nil
}
func (c *Client) GetStoreView(project string, storeViewName string) (*StoreView, error) {
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": "0",
}
uri := "/storeviews/" + storeViewName
r, err := c.request(project, "GET", uri, h, nil)
if err != nil {
return nil, err
}
defer r.Body.Close()
buf, err := ioutil.ReadAll(r.Body)
if err != nil {
return nil, err
}
res := &StoreView{}
if err = json.Unmarshal(buf, res); err != nil {
return nil, NewClientError(err)
}
res.Name = storeViewName
return res, nil
}
func (c *Client) ListStoreViews(project string, req *ListStoreViewsRequest) (*ListStoreViewsResponse, error) {
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": "0",
}
uri := fmt.Sprintf("/storeviews?offset=%d&line=%d", req.Offset, req.Size)
r, err := c.request(project, "GET", uri, h, nil)
if err != nil {
return nil, err
}
defer r.Body.Close()
buf, err := ioutil.ReadAll(r.Body)
if err != nil {
return nil, err
}
res := &ListStoreViewsResponse{}
if err = json.Unmarshal(buf, res); err != nil {
return nil, NewClientError(err)
}
return res, nil
}
func (c *Client) GetStoreViewIndex(project string, storeViewName string) (*GetStoreViewIndexResponse, error) {
h := map[string]string{
"Content-Type": "application/json",
"x-log-bodyrawsize": "0",
}
uri := fmt.Sprintf("/storeviews/%s/index", storeViewName)
r, err := c.request(project, "GET", uri, h, nil)
if err != nil {
return nil, err
}
defer r.Body.Close()
buf, err := ioutil.ReadAll(r.Body)
if err != nil {
return nil, err
}
res := &GetStoreViewIndexResponse{}
if err = json.Unmarshal(buf, res); err != nil {
return nil, NewClientError(err)
}
return res, nil
}