smsto.*smsService.LastMessage   A
last analyzed

Complexity

Conditions 4

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 11
dl 0
loc 17
c 0
b 0
f 0
rs 9.85
nop 1
1
package smsto
2
3
import (
4
	"context"
5
	"encoding/json"
6
	"net/http"
7
)
8
9
// smsService is the API client for the `/sms` endpoint
10
type smsService service
11
12
// SendSingle Sends a single SMS message to a phone number
13
//
14
// API Docs: https://developers.sms.to/#0eff8134-6ad5-4b61-86f3-28ff18145bfc
15
func (service *smsService) SendSingle(
16
	ctx context.Context,
17
	params *SmsSendSingleRequest,
18
) (*SmsSendSingleResponse, *Response, error) {
19
	request, err := service.client.newRequest(ctx, http.MethodPost, "/sms/send", params)
20
	if err != nil {
21
		return nil, nil, err
22
	}
23
24
	response, err := service.client.do(request)
25
	if err != nil {
26
		return nil, response, err
27
	}
28
29
	status := new(SmsSendSingleResponse)
30
	if err = json.Unmarshal(*response.Body, status); err != nil {
31
		return nil, response, err
32
	}
33
34
	return status, response, nil
35
}
36
37
// LastMessage Gets the last message that you have sent
38
//
39
// API Docs: https://developers.sms.to/#80f14590-14cd-4512-9c8c-cf8c7ef07f96
40
func (service *smsService) LastMessage(ctx context.Context) (*SmsMessage, *Response, error) {
41
	request, err := service.client.newRequest(ctx, http.MethodGet, "/last/message", nil)
42
	if err != nil {
43
		return nil, nil, err
44
	}
45
46
	response, err := service.client.do(request)
47
	if err != nil {
48
		return nil, response, err
49
	}
50
51
	status := new(SmsMessage)
52
	if err = json.Unmarshal(*response.Body, status); err != nil {
53
		return nil, response, err
54
	}
55
56
	return status, response, nil
57
}
58