GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 6edde8...76d75a )
by Victor Hugo
01:47
created

mollie/shipments.go   A

Size/Duplication

Total Lines 137
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
cc 16
eloc 76
dl 0
loc 137
c 0
b 0
f 0
ccs 40
cts 40
cp 1
crap 16
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A mollie.*ShipmentsService.Get 0 16 4
A mollie.*ShipmentsService.List 0 16 4
A mollie.*ShipmentsService.Update 0 16 4
A mollie.*ShipmentsService.Create 0 16 4
1
package mollie
2
3
import (
4
	"encoding/json"
5
	"fmt"
6
	"net/http"
7
	"time"
8
)
9
10
// ShipmentsService operates on shipments endpoints.
11
type ShipmentsService service
12
13
// Shipment contains information about a user service/product delivery and
14
// is used in the figurative sense here.
15
// It can also mean that a service was provided or digital content was delivered.
16
type Shipment struct {
17
	Resource  string           `json:"resource,omitempty"`
18
	ID        string           `json:"id,omitempty"`
19
	OrderID   string           `json:"orderId,omitempty"`
20
	CreatedAt *time.Time       `json:"createdAt,omitempty"`
21
	Tracking  ShipmentTracking `json:"tracking,omitempty"`
22
	Lines     []OrderLines     `json:"lines,omitempty"`
23
	Links     ShipmentLinks    `json:"_links,omitempty"`
24
}
25
26
// ShipmentTracking contains shipment tracking details.
27
type ShipmentTracking struct {
28
	Carrier string `json:"carrier,omitempty"`
29
	Code    string `json:"code,omitempty"`
30
	URL     string `json:"url,omitempty"`
31
}
32
33
// ShipmentLinks contains URL objects with shipment relevant
34
// information for the user.
35
type ShipmentLinks struct {
36
	Self          URL `json:"self,omitempty"`
37
	Order         URL `json:"order,omitempty"`
38
	Documentation URL `json:"documentation,omitempty"`
39
}
40
41
// Get retrieves a single shipment and the order lines shipped by a shipment’s ID.
42
//
43
// See: https://docs.mollie.com/reference/v2/shipments-api/get-shipment#
44
func (ss *ShipmentsService) Get(oID string, sID string) (s *Shipment, err error) {
45 1
	u := fmt.Sprintf("v2/orders/%s/shipments/%s", oID, sID)
46 1
	req, err := ss.client.NewAPIRequest(http.MethodGet, u, nil)
47 1
	if err != nil {
48 1
		return
49
	}
50
51 1
	res, err := ss.client.Do(req)
52 1
	if err != nil {
53 1
		return
54
	}
55
56 1
	if err = json.Unmarshal(res.content, &s); err != nil {
57 1
		return
58
	}
59 1
	return
60
}
61
62
// CreateShipmentRequest defines information required to create a new shipment
63
type CreateShipmentRequest struct {
64
	Lines    []OrderLines     `json:"lines,omitempty"`
65
	Tracking ShipmentTracking `json:"tracking,omitempty"`
66
}
67
68
// Create can be used to ship order lines.
69
//
70
// See: https://docs.mollie.com/reference/v2/shipments-api/create-shipment
71
func (ss *ShipmentsService) Create(oID string, cs CreateShipmentRequest) (s *Shipment, err error) {
72 1
	u := fmt.Sprintf("v2/orders/%s/shipments", oID)
73 1
	req, err := ss.client.NewAPIRequest(http.MethodPost, u, cs)
74 1
	if err != nil {
75 1
		return
76
	}
77
78 1
	res, err := ss.client.Do(req)
79 1
	if err != nil {
80 1
		return
81
	}
82
83 1
	if err = json.Unmarshal(res.content, &s); err != nil {
84 1
		return
85
	}
86 1
	return
87
}
88
89
// ShipmentsList describes how a list of payments will be retrieved by Mollie.
90
type ShipmentsList struct {
91
	Count    int `json:"count,omitempty"`
92
	Embedded struct {
93
		Shipments []Shipment
94
	} `json:"_embedded,omitempty"`
95
	Links PaginationLinks `json:"_links,omitempty"`
96
}
97
98
// List retrieves all shipments for an order.
99
//
100
// See: https://docs.mollie.com/reference/v2/shipments-api/list-shipments
101
func (ss *ShipmentsService) List(oID string) (sl *ShipmentsList, err error) {
102 1
	u := fmt.Sprintf("v2/orders/%s/shipments", oID)
103 1
	req, err := ss.client.NewAPIRequest(http.MethodGet, u, nil)
104 1
	if err != nil {
105 1
		return
106
	}
107
108 1
	res, err := ss.client.Do(req)
109 1
	if err != nil {
110 1
		return
111
	}
112
113 1
	if err = json.Unmarshal(res.content, &sl); err != nil {
114 1
		return
115
	}
116 1
	return
117
}
118
119
// Update can be used to update the tracking information of a shipment
120
//
121
// See: https://docs.mollie.com/reference/v2/shipments-api/update-shipment
122
func (ss *ShipmentsService) Update(oID string, sID string, st ShipmentTracking) (s *Shipment, err error) {
123 1
	u := fmt.Sprintf("v2/orders/%s/shipments/%s", oID, sID)
124 1
	req, err := ss.client.NewAPIRequest(http.MethodPatch, u, st)
125 1
	if err != nil {
126 1
		return
127
	}
128
129 1
	res, err := ss.client.Do(req)
130 1
	if err != nil {
131 1
		return
132
	}
133
134 1
	if err = json.Unmarshal(res.content, &s); err != nil {
135 1
		return
136
	}
137 1
	return
138
}
139