UPSAddress

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2020 License: Apache-2.0 Imports: 5 Imported by: 0

README

go-ups-address

Golang library for validating addresses with UPS API

GoDoc

Usage

package main

import (
	"fmt"

	UPSAddress "github.com/jeffdoubleyou/go-ups-address"
)

func main() {
	fmt.Println("vim-go")
	ups := UPSAddress.NewUPSAddress("yourusername", "yourpassword", "0DBCDEFGHIJKL")
	address := ups.NewAddress(map[string]string{
		"AddressLine1": "200 Corporate Pointe",
		"AddressLine2": "Suite 350",
		"City":         "Culver City",
		"StateProv":    "CA",
		"PostalCode":   "90230",
		"CountryCode":  "US",
	})

	ups.Debug(true)

	v, err := ups.ValidateAddress(address)
	if err != nil {
		fmt.Println(err.Error())
	} else {
		if v.ValidAddress() {
			fmt.Printf("The address is valid\n")
			fmt.Printf("This is a %s address\n", v.AddressClassification())
		} else {
			if v.AmbiguousAddress() {
				firstCandidate := v.Address()
				fmt.Printf("Maybe try street address: %s\n", firstCandidate.AddressLine1)
			}
		}
	}

}
Available Address Fields
type Address struct {
	AddressLine1       string
	AddressLine2       string
	AddressLine3       string
	City               string
	StateProv          string
	PostalCode         string
	PostalCodeExtended string
	AddressType        string
	CountryCode        string
	Classification     string
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddressAPI

type AddressAPI struct {
	// contains filtered or unexported fields
}

func NewUPSAddress

func NewUPSAddress(username, password, accessKey string) *AddressAPI

func (*AddressAPI) Debug

func (a *AddressAPI) Debug(debug ...bool) bool

func (*AddressAPI) MaximumCandidateSize

func (a *AddressAPI) MaximumCandidateSize(size ...int) int

func (*AddressAPI) NewAddress

func (s *AddressAPI) NewAddress(address map[string]string) *models.Address

func (*AddressAPI) Timeout

func (a *AddressAPI) Timeout(timeout ...int) int

func (*AddressAPI) ValidateAddress

func (a *AddressAPI) ValidateAddress(address *models.Address) (result *AddressValidationResult, err error)

type AddressValidationResult

type AddressValidationResult struct {
	XAVResponse *models.XAVResponse
}

func (*AddressValidationResult) Address

func (r *AddressValidationResult) Address() *models.Address

If the address is valid, this will return the formatted address in the models.Address format. If the address was not valid, this will return the first candidate in the models.Address format. In the event that you call this without a valid address, nil will be returned

func (*AddressValidationResult) AddressClassification

func (r *AddressValidationResult) AddressClassification() string

func (*AddressValidationResult) AddressKeyFormat

func (r *AddressValidationResult) AddressKeyFormat() *models.AddressKeyFormat

This will return the first candidate's address key format. It should be used to either take the first recommended address, or retrieve the valid address as formatted by UPS in the Address Key Format

func (*AddressValidationResult) AmbiguousAddress

func (r *AddressValidationResult) AmbiguousAddress() bool

func (*AddressValidationResult) NoCandidate

func (r *AddressValidationResult) NoCandidate() bool

func (*AddressValidationResult) ValidAddress

func (r *AddressValidationResult) ValidAddress() bool

func (*AddressValidationResult) XAVResponseObject

func (r *AddressValidationResult) XAVResponseObject() *models.XAVResponseObject

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL