Skip to content
This repository has been archived by the owner on Sep 7, 2022. It is now read-only.

Commit

Permalink
Improvements and spelling fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
chweez committed Feb 5, 2018
1 parent 4b97046 commit 5ab3fbd
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 26 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.idea/*
demo/demo
demo/secrets.go
6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion account/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ func (service Service) GetUser() (*User, error) {
return nil, fmt.Errorf("could not get rsponse %v", err)
}

body := response.Body
var accountResponse Response
json.NewDecoder(response.Body).Decode(&accountResponse)
json.NewDecoder(body).Decode(&accountResponse)
defer body.Close()
return &accountResponse.User, nil
}
7 changes: 4 additions & 3 deletions airtime/airtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@ func (service Service) Send() (*Response, error) {
return nil, fmt.Errorf("unable to create request %v", err)
}

q := request.URL.Query()
q.Add("username", service.Username)
request.URL.RawQuery = q.Encode()
values := request.URL.Query()
values.Add("username", service.Username)
request.URL.RawQuery = values.Encode()

request.Header.Set("apikey", service.APIKey)
request.Header.Set("Accept", "application/json")

Expand Down
12 changes: 10 additions & 2 deletions demo/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"os"

"github.com/AndroidStudyOpenSource/africastalking-go/sms"
"africastalking/account"
)

const (
Expand All @@ -25,13 +26,20 @@ func main() {
os.Exit(1)
}

send(*recipient, "202020", *env)
smsService := sms.NewService(username, apiKey, *env)
// Entered at the commandline
sendResponse, err := smsService.Send("Me4u", *recipient, *message)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(sendResponse)
}

fmt.Println(sendResponse)
accountService := account.NewService(username, apiKey, *env)
user, err := accountService.GetUser()
if err != nil {
fmt.Println(err)
} else {
fmt.Println(user)
}
}
38 changes: 21 additions & 17 deletions sms/sms.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ func (service Service) Send(from, to, message string) (*SendMessageResponse, err
values.Set("from", from)
}

url := util.GetSmsURL(service.Env)
smsURL := util.GetSmsURL(service.Env)
headers := make(map[string]string)
headers["Content-Type"] = "application/x-www-form-urlencoded"

res, err := service.newPostRequest(url, values, headers)
res, err := service.newPostRequest(smsURL, values, headers)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -80,11 +80,11 @@ func (service Service) SendBulk(from, to, message string, bulkMode int, enqueue
values.Set("bulkMode", string(bulkMode))
values.Set("enqueue", enqueue)

url := util.GetSmsURL(service.Env)
smsURL := util.GetSmsURL(service.Env)
headers := make(map[string]string)
headers["Content-Type"] = "application/x-www-form-urlencoded"

res, err := service.newPostRequest(url, values, headers)
res, err := service.newPostRequest(smsURL, values, headers)
if err != nil {
return nil, err
}
Expand All @@ -98,7 +98,7 @@ func (service Service) SendBulk(from, to, message string, bulkMode int, enqueue

// SendPremium - POST
func (service Service) SendPremium(username, to, from, message, keyword,
linkID, retryDurationInHours string, bulkMode int) (*SendMessageResponse, error) {
linkID, retryDurationInHours string, bulkMode int) (*SendMessageResponse, error) {
values := url.Values{}
values.Set("username", username)
values.Set("to", to)
Expand All @@ -109,11 +109,11 @@ func (service Service) SendPremium(username, to, from, message, keyword,
values.Set("linkId", linkID)
values.Set("retryDurationInHours", retryDurationInHours)

url := util.GetSmsURL(service.Env)
smsURL := util.GetSmsURL(service.Env)
headers := make(map[string]string)
headers["Content-Type"] = "application/x-www-form-urlencoded"

res, err := service.newPostRequest(url, values, headers)
res, err := service.newPostRequest(smsURL, values, headers)
if err != nil {
return nil, err
}
Expand All @@ -127,12 +127,12 @@ func (service Service) SendPremium(username, to, from, message, keyword,

// FetchMessage - username = query
func (service Service) FetchMessage(username, lastReceivedID string) (*FetchMessageResponse, error) {
url := util.GetAPIHost(service.Env)
apiURL := util.GetAPIHost(service.Env)
queries := make(map[string]string)
queries["username"] = username
queries["lastReceivedID"] = lastReceivedID

res, err := service.newGetRequest(url, queries)
res, err := service.newGetRequest(apiURL, queries)
if err != nil {
return nil, fmt.Errorf("could not get response: %v", err)
}
Expand All @@ -146,14 +146,14 @@ func (service Service) FetchMessage(username, lastReceivedID string) (*FetchMess

// FetchSubscription - query
func (service Service) FetchSubscription(username, shortCode, keyword, lastReceivedID string) (*FetchSubscriptionResponse, error) {
url := util.GetAPIHost(service.Env) + "/version1/subscription"
apiURL := util.GetAPIHost(service.Env) + "/version1/subscription"
queries := make(map[string]string)
queries["username"] = username
queries["shortCode"] = shortCode
queries["keyword"] = keyword
queries["lastReceivedID"] = lastReceivedID

res, err := service.newGetRequest(url, queries)
res, err := service.newGetRequest(apiURL, queries)
if err != nil {
return nil, fmt.Errorf("could not get response: %v", err)
}
Expand All @@ -176,17 +176,17 @@ func (service Service) CreateSubscription(username, shortCode, keyword, phoneNum

headers := make(map[string]string)

url := util.GetAPIHost(service.Env) + "/version1/subscription/create"
res, err := service.newPostRequest(url, values, headers)
apiURL := util.GetAPIHost(service.Env) + "/version1/subscription/create"
res, err := service.newPostRequest(apiURL, values, headers)
if err != nil {
return nil, fmt.Errorf("could not get response: %v", err)
}

var subsciprionResponse SubscriptionResponse
json.NewDecoder(res.Body).Decode(&subsciprionResponse)
var subscriptionResponse SubscriptionResponse
json.NewDecoder(res.Body).Decode(&subscriptionResponse)
defer res.Body.Close()

return &subsciprionResponse, nil
return &subscriptionResponse, nil
}

func (service Service) newPostRequest(url string, values url.Values, headers map[string]string) (*http.Response, error) {
Expand Down Expand Up @@ -218,9 +218,13 @@ func (service Service) newGetRequest(url string, queries map[string]string) (*ht
for key, value := range queries {
values.Add(key, value)
}

if len(values) > 0 {
req.URL.RawQuery = values.Encode()
}

req.Header.Set("apikey", service.APIKey)
req.Header.Set("Accept", "application/json")
req.URL.RawQuery = values.Encode()

client := &http.Client{Timeout: 10 * time.Second}
return client.Do(req)
Expand Down
8 changes: 5 additions & 3 deletions util/currency_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import "strings"
import "fmt"
import "strconv"

// FromCurrencied converts a currencied amount
// FromCurrencied converts a currencied amount to component currency sign and amount
func FromCurrencied(currenciedAmount string) (string, float64, error) {
amount := strings.Split(strings.TrimSpace(currenciedAmount), " ")
if len(amount) != 2 {
Expand All @@ -13,8 +13,10 @@ func FromCurrencied(currenciedAmount string) (string, float64, error) {

currency, err := strconv.ParseFloat(amount[1], 64)
if err != nil {
return "", 0, nil
return "", 0, fmt.Errorf("could not get currency amount: %v", err)
}

return amount[0], currency, nil
currencySign := strings.ToUpper(amount[0])

return currencySign, currency, nil
}

0 comments on commit 5ab3fbd

Please sign in to comment.