func (self *Client) Tags(imsi string, tags []map[string]string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/tags", imsi) body, err := json.Marshal(tags) if err != nil { return nil, err } return self.put(u, body) }
func (self *Client) Register(imsi string, regsub map[string]string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/register", imsi) body, err := json.Marshal(regsub) if err != nil { return nil, err } return self.post(u, body) }
func (self *Client) SetExpiryTime(imsi string, expiryTime int64) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/set_expiry_time", imsi) body, err := json.Marshal(map[string]int64{"expiryTime": expiryTime}) if err != nil { return nil, err } return self.post(u, body) }
func (self *Client) UpdateSpeedClass(imsi, speed string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/update_speed_class", imsi) body, err := json.Marshal(map[string]string{"speedClass": speed}) if err != nil { return nil, err } return self.post(u, body) }
func (self *Client) CreateOperator(param map[string]string) error { u := config.MakeUrl("/operators") body, _ := json.Marshal(param) c := http.NewClient(self.apiKey, self.token) if _, err := c.Post(u, body); err != nil { return err } return nil }
func (self *Client) reports(mode, imsi string, from, to int64, period string, v interface{}) error { url := config.MakeUrl("/stats/%s/subscribers/%s?from=%d&to=%d&period=%s", mode, imsi, from, to, period) c := http.NewClient(self.ApiKey, self.Token) data, err := c.Get(url) if err != nil { return err } if err := json.Unmarshal(data, v); err != nil { return err } return nil }
func (self *Client) FindId(id string) (*Operator, error) { u := config.MakeUrl("/operators/%s", id) c := http.NewClient(self.apiKey, self.token) data, err := c.Get(u) if err != nil { return nil, err } s := Operator{} if err := json.Unmarshal(data, &s); err != nil { return nil, err } return &s, nil }
func (self *Client) Sim(imsi string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s", imsi) c := http.NewClient(self.apiKey, self.token) data, err := c.Get(u) if err != nil { return nil, err } s := Subscriber{} if err := json.Unmarshal(data, &s); err != nil { return nil, err } return &s, nil }
func (self *Client) Find(q map[string]string) (*Subscribers, error) { val := url.Values{} for k, v := range q { val.Set(k, v) } u := config.MakeUrl("/subscribers?%s", val.Encode()) c := http.NewClient(self.apiKey, self.token) data, err := c.Get(u) if err != nil { return nil, err } ss := Subscribers{} if err := json.Unmarshal(data, &ss); err != nil { return nil, err } return &ss, nil }
func (self *Client) ExportReport(mode, operatorId string, from, to int64) (string, error) { url := config.MakeUrl("/stats/%s/operators/%s/export", mode, operatorId) m := map[string]interface{}{ "period": "month", "from": from, "to": to, } body, err := json.Marshal(m) c := http.NewClient(self.ApiKey, self.Token) data, err := c.Post(url, body) if err != nil { return "", err } v := make(map[string]string) if err := json.Unmarshal(data, &v); err != nil { return "", err } return v["url"], nil }
func Authenticate(email, passwd string) (map[string]string, error) { auth := map[string]interface{}{ "email": email, "password": passwd, "tokenTimeoutSeconds": 0, } buf, _ := json.Marshal(auth) body := bytes.NewReader(buf) url := config.MakeUrl("/auth") resp, err := http.Post(url, "application/json", body) if err != nil { return nil, err } defer resp.Body.Close() data, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } if resp.StatusCode != 200 { return nil, errors.NewError(data) } return parseAuthenticate(data) }
func Authenticate(email, passwd string) (map[string]string, error) { auth := map[string]interface{}{ "email": email, "password": passwd, "tokenTimeoutSeconds": 0, } buf, err := json.Marshal(auth) if err != nil { return nil, err } body := bytes.NewReader(buf) url := config.MakeUrl("/auth") resp, err := http.Post(url, "application/json", body) if err != nil { return nil, err } defer resp.Body.Close() data, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } if resp.StatusCode != 200 { m := map[string]string{} if err := json.Unmarshal(data, &m); err != nil { return nil, err } return nil, fmt.Errorf("[%s] %s", m["code"], m["message"]) } ret := make(map[string]string) if err := json.Unmarshal(data, &ret); err != nil { return nil, err } return ret, nil }
func (self *Client) DeleteTag(imsi, tag string) error { u := config.MakeUrl("/subscribers/%s/tags/%s", imsi, tag) return self.delete(u) }
func (self *Client) UnsetExpiryTime(imsi string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/unset_expiry_time", imsi) return self.post(u, nil) }
func (self *Client) DisableTerminate(imsi string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/disable_termination", imsi) return self.post(u, nil) }
func (self *Client) Deactivate(imsi string) (*Subscriber, error) { u := config.MakeUrl("/subscribers/%s/deactivate", imsi) return self.post(u, nil) }
Expect(err).ToNot(BeNil()) }) }) Context("認証が完了していないとき", func() { handler := func(w http.ResponseWriter, r *http.Request) { if r.Header.Get("X-Soracom-API-Key") != "apiKey" { err_body := makeErrorCode("SEM0035", "API Token is missing") http.Error(w, err_body, http.StatusInternalServerError) return } } BeforeEach(func() { s = httptest.NewServer(http.HandlerFunc(handler)) config.BaseURL = s.URL c := NewClient("", "") sut, err = c.Get(config.MakeUrl("subscribers")) }) AfterEach(func() { s.Close() }) It("エラーが返ってくること", func() { Expect(err).ToNot(BeNil()) }) It("エラーメッセージ[SEM0035] API Token is missingが返ってくること", func() { Expect(err.Error()).To(Equal("[SEM0035] API Token is missing")) }) }) Context("認証が完了していないとき", func() { handler := func(w http.ResponseWriter, r *http.Request) { http.Error(w, "exeption message", http.StatusInternalServerError) }