Beispiel #1
0
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)
}
Beispiel #2
0
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)
}
Beispiel #3
0
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)
}
Beispiel #4
0
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)
}
Beispiel #5
0
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
}
Beispiel #6
0
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
}
Beispiel #7
0
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
}
Beispiel #8
0
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
}
Beispiel #9
0
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
}
Beispiel #10
0
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
}
Beispiel #11
0
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)
}
Beispiel #12
0
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
}
Beispiel #13
0
func (self *Client) DeleteTag(imsi, tag string) error {
	u := config.MakeUrl("/subscribers/%s/tags/%s", imsi, tag)
	return self.delete(u)
}
Beispiel #14
0
func (self *Client) UnsetExpiryTime(imsi string) (*Subscriber, error) {
	u := config.MakeUrl("/subscribers/%s/unset_expiry_time", imsi)
	return self.post(u, nil)
}
Beispiel #15
0
func (self *Client) DisableTerminate(imsi string) (*Subscriber, error) {
	u := config.MakeUrl("/subscribers/%s/disable_termination", imsi)
	return self.post(u, nil)
}
Beispiel #16
0
func (self *Client) Deactivate(imsi string) (*Subscriber, error) {
	u := config.MakeUrl("/subscribers/%s/deactivate", imsi)
	return self.post(u, nil)
}
Beispiel #17
0
				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)
			}