Documentation ¶
Index ¶
- type Organisation
- type OrganisationCollection
- type Provider
- func (p *Provider) BeginAuth(state string) (goth.Session, error)
- func (p *Provider) Client() *http.Client
- func (p *Provider) Create(session goth.Session, endpoint string, additionalHeaders map[string]string, ...) ([]byte, error)
- func (p *Provider) Debug(debug bool)
- func (p *Provider) FetchUser(session goth.Session) (goth.User, error)
- func (p *Provider) Find(session goth.Session, endpoint string, additionalHeaders map[string]string, ...) ([]byte, error)
- func (p *Provider) GetSessionFromStore(request *http.Request, response http.ResponseWriter) (goth.Session, error)
- func (p *Provider) Name() string
- func (p *Provider) RefreshOAuth1Token(session *Session) error
- func (p *Provider) RefreshToken(refreshToken string) (*oauth2.Token, error)
- func (p *Provider) RefreshTokenAvailable() bool
- func (p *Provider) Remove(session goth.Session, endpoint string, additionalHeaders map[string]string) ([]byte, error)
- func (p *Provider) SetName(name string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- func (p *Provider) Update(session goth.Session, endpoint string, additionalHeaders map[string]string, ...) ([]byte, error)
- type Session
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Organisation ¶
type Organisation struct { // Display name of organisation shown in Xero Name string `json:"Name,omitempty"` // Organisation name shown on Reports LegalName string `json:"LegalName,omitempty"` // Organisation Type OrganisationType string `json:"OrganisationType,omitempty"` // Country code for organisation. See ISO 3166-2 Country Codes CountryCode string `json:"CountryCode,omitempty"` // A unique identifier for the organisation. ShortCode string `json:"ShortCode,omitempty"` }
Organisation is the expected response from the Organisation endpoint - this is not a complete schema and should only be used by FetchUser
type OrganisationCollection ¶
type OrganisationCollection struct {
Organisations []Organisation `json:"Organisations,omitempty"`
}
OrganisationCollection is the Total response from the Xero API
type Provider ¶
type Provider struct { ClientKey string Secret string CallbackURL string HTTPClient *http.Client Method string UserAgentString string PrivateKey string // contains filtered or unexported fields }
Provider is the implementation of `goth.Provider` for accessing Xero.
func New ¶
New creates a new Xero provider, and sets up important connection details. You should always call `xero.New` to get a new Provider. Never try to create one manually.
func NewCustomHTTPClient ¶
New creates a new Xero provider, with a custom http client
func NewNoEnviro ¶
func NewNoEnviro(clientKey, secret, callbackURL, userAgent, xeroMethod string, privateKey []byte) *Provider
NewNoEnviro creates a new Xero provider without using the environmental set variables , and sets up important connection details. You should always call `xero.New` to get a new Provider. Never try to create one manually.
func (*Provider) BeginAuth ¶
BeginAuth asks Xero for an authentication end-point and a request token for a session. Xero does not support the "state" variable.
func (*Provider) Create ¶
func (p *Provider) Create(session goth.Session, endpoint string, additionalHeaders map[string]string, body []byte) ([]byte, error)
Create sends data to an endpoint and returns a response to be unmarshaled into the appropriate data type
func (*Provider) Find ¶
func (p *Provider) Find(session goth.Session, endpoint string, additionalHeaders map[string]string, querystringParameters map[string]string) ([]byte, error)
Find retrieves the requested data from an endpoint to be unmarshaled into the appropriate data type
func (*Provider) GetSessionFromStore ¶
func (p *Provider) GetSessionFromStore(request *http.Request, response http.ResponseWriter) (goth.Session, error)
GetSessionFromStore returns a session for a given a request and a response This is an exaple of how you could get a session from a store - as long as you're supplying a goth.Session to the interactors it will work though so feel free to use your own method
func (*Provider) RefreshOAuth1Token ¶
RefreshOAuth1Token should be used instead of RefeshToken which is not compliant with the Oauth1.0a standard
func (*Provider) RefreshToken ¶
RefreshToken refresh token is not provided by the Xero Public or Private Application - only the Partner Application and you must use RefreshOAuth1Token instead
func (*Provider) RefreshTokenAvailable ¶
RefreshTokenAvailable refresh token is not provided by the Xero Public or Private Application - only the Partner Application and you must use RefreshOAuth1Token instead
func (*Provider) Remove ¶
func (p *Provider) Remove(session goth.Session, endpoint string, additionalHeaders map[string]string) ([]byte, error)
Remove deletes the specified data from an endpoint
func (*Provider) SetName ¶
SetName is to update the name of the provider (needed in case of multiple providers of 1 type)
func (*Provider) UnmarshalSession ¶
UnmarshalSession will unmarshal a JSON string into a session.
type Session ¶
type Session struct { AuthURL string AccessToken *oauth.AccessToken RequestToken *oauth.RequestToken AccessTokenExpires time.Time }
Session stores data during the auth process with Xero.
func (*Session) Authorize ¶
Authorize the session with Xero and return the access token to be stored for future use.
func (Session) GetAuthURL ¶
GetAuthURL will return the URL set by calling the `BeginAuth` function on the Xero provider.
Directories ¶
Path | Synopsis |
---|---|
This is a re-packaging of Goth's gothic package.
|
This is a re-packaging of Goth's gothic package. |