mirror of
https://github.com/andwati/telecom-platform.git
synced 2026-10-18 19:12:54 +00:00
- Extract Invoice, Payment, Subscriber types and GetInvoices, GetPayments, GenerateInvoice methods to billing.go - Extract CarrierInfo, ConnectivityStatus, ProfileInfo types and carrier connector methods to carrier.go - Extract CreditCheckRequest/Response, CreditBalanceResponse types and charging engine methods to charging.go - Add PacketStats, CreditInfo types and GetPacketStats, GetCreditInfo
55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
package api
|
|
|
|
// Subscriber represents a subscriber from the API
|
|
type Subscriber struct {
|
|
ID uint `json:"id"`
|
|
IMSI string `json:"imsi"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"last_name"`
|
|
Email string `json:"email"`
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
// SubscriberAccount holds account info
|
|
type SubscriberAccount struct {
|
|
IMSI string `json:"imsi"`
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Balance float64 `json:"balance"`
|
|
}
|
|
|
|
// ListSubscribers retrieves subscribers
|
|
func (c *Client) ListSubscribers() ([]SubscriberAccount, error) {
|
|
var resp struct {
|
|
Data []SubscriberAccount `json:"data"`
|
|
}
|
|
if err := c.doGetJSON("/api/v1/subscribers", &resp); err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.Data, nil
|
|
}
|
|
|
|
// GetSubscriber retrieves a single subscriber
|
|
func (c *Client) GetSubscriber(imsi string) (*SubscriberAccount, error) {
|
|
var sub SubscriberAccount
|
|
if err := c.doGetJSON("/api/v1/subscribers/"+imsi, &sub); err != nil {
|
|
return nil, err
|
|
}
|
|
return &sub, nil
|
|
}
|
|
|
|
// CreateSubscriber creates a subscriber
|
|
func (c *Client) CreateSubscriber(imsi, name string) (*SubscriberAccount, error) {
|
|
var sub SubscriberAccount
|
|
body := map[string]string{"imsi": imsi, "name": name}
|
|
if err := c.doPostJSON("/api/v1/subscribers", body, &sub); err != nil {
|
|
return nil, err
|
|
}
|
|
return &sub, nil
|
|
}
|
|
|
|
// DeleteSubscriber deletes a subscriber
|
|
func (c *Client) DeleteSubscriber(imsi string) error {
|
|
return c.doDelete("/api/v1/subscribers/" + imsi)
|
|
}
|