-
Notifications
You must be signed in to change notification settings - Fork 0
/
express_mail_service_commitments.go
58 lines (51 loc) · 2.37 KB
/
express_mail_service_commitments.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package go_usps
// USPS Express Mail Service Commitments API
// https://www.usps.com/business/web-tools-apis/domestic-mail-service-standards-api.htm#_Toc527965991
type ExpressMailCommitmentRequest struct {
USERID string `xml:"USERID,attr"`
OriginZIP string `xml:"OriginZIP"`
DestinationZIP string `xml:"DestinationZIP"`
Date string `xml:"Date"`
DropOffTime string `xml:"DropOffTime,omitempty"`
ReturnDates string `xml:"ReturnDates,omitempty"`
PMGuarantee string `xml:"PMGuarantee,omitempty"`
}
func (r *ExpressMailCommitmentRequest) toHTTPRequestStr(bool) (string, error) {
return createUSPSApiRequestStr("ExpressMailCommitment", r)
}
type ExpressMailCommitmentResponse struct {
OriginZip string `xml:"OriginZip"`
OriginCity string `xml:"OriginCity"`
OriginState string `xml:"OriginState"`
DestinationZip string `xml:"DestinationZip"`
DestinationCity string `xml:"DestinationCity"`
DestinationState string `xml:"DestinationState"`
Date string `xml:"Date"`
Time string `xml:"Time"`
ExpeditedTransMessage string `xml:"ExpeditedTransMessage,omitempty"`
MsgCode string `xml:"MsgCode,omitempty"`
Msg string `xml:"Msg,omitempty"`
EffectiveAcceptanceDate string `xml:"EffectiveAcceptanceDate,omitempty"`
Commitment []struct {
Name string `xml:"Name,omitempty"`
Time string `xml:"Time,omitempty"`
Sequence string `xml:"Sequence,omitempty"`
Location []struct {
ScheduledDeliveryDate string `xml:"ScheduledDeliveryDate,omitempty"`
CutOff string `xml:"CutOff,omitempty"`
Facility string `xml:"Facility,omitempty"`
Street string `xml:"Street,omitempty"`
City string `xml:"City,omitempty"`
State string `xml:"State,omitempty"`
Zip string `xml:"Zip,omitempty"`
IsGuaranteed string `xml:"IsGuaranteed,omitempty"`
} `xml:"Location,omitempty"`
} `xml:"Commitment,omitempty"`
Message string `xml:"Message,omitempty"`
}
func (U *USPS) ExpressMailServiceCommitments(request *ExpressMailCommitmentRequest) (ExpressMailCommitmentResponse, error) {
request.USERID = U.Username
result := new(ExpressMailCommitmentResponse)
err := U.Client.Execute(request, result)
return *result, err
}