mirror of
https://github.com/aclindsa/ofxgo.git
synced 2025-07-01 11:48:38 -04:00
Comment investments, profiles, seclist, signon, signup, and types
This commit is contained in:
33
signup.go
33
signup.go
@ -5,6 +5,8 @@ import (
|
||||
"github.com/aclindsa/go/src/encoding/xml"
|
||||
)
|
||||
|
||||
// AcctInfoRequest represents a request for the server to provide information
|
||||
// for all of the user's available accounts at this FI
|
||||
type AcctInfoRequest struct {
|
||||
XMLName xml.Name `xml:"ACCTINFOTRNRQ"`
|
||||
TrnUID UID `xml:"TRNUID"`
|
||||
@ -14,19 +16,25 @@ type AcctInfoRequest struct {
|
||||
DtAcctUp Date `xml:"ACCTINFORQ>DTACCTUP"`
|
||||
}
|
||||
|
||||
// Name returns the name of the top-level transaction XML/SGML element
|
||||
func (r *AcctInfoRequest) Name() string {
|
||||
return "ACCTINFOTRNRQ"
|
||||
}
|
||||
|
||||
// Valid returns (true, nil) if this struct would be valid OFX if marshalled
|
||||
// into XML/SGML
|
||||
func (r *AcctInfoRequest) Valid() (bool, error) {
|
||||
// TODO implement
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// Type returns which message set this message belongs to (which Request
|
||||
// element of type []Message it should appended to)
|
||||
func (r *AcctInfoRequest) Type() messageType {
|
||||
return SignupRq
|
||||
}
|
||||
|
||||
// HolderInfo contains the information a FI has about an account-holder
|
||||
type HolderInfo struct {
|
||||
XMLName xml.Name
|
||||
FirstName String `xml:"FIRSTNAME"`
|
||||
@ -45,6 +53,9 @@ type HolderInfo struct {
|
||||
HolderType holderType `xml:"HOLDERTYPE,omitempty"` // One of INDIVIDUAL, JOINT, CUSTODIAL, TRUST, OTHER
|
||||
}
|
||||
|
||||
// BankAcctInfo contains information about a bank account, including how to
|
||||
// access it (BankAcct), and whether it supports downloading transactions
|
||||
// (SupTxDl).
|
||||
type BankAcctInfo struct {
|
||||
XMLName xml.Name `xml:"BANKACCTINFO"`
|
||||
BankAcctFrom BankAcct `xml:"BANKACCTFROM"`
|
||||
@ -59,11 +70,14 @@ type BankAcctInfo struct {
|
||||
SvcStatus svcStatus `xml:"SVCSTATUS"` // One of AVAIL (available, but not yet requested), PEND (requested, but not yet available), ACTIVE
|
||||
}
|
||||
|
||||
// Make pointers to these structs print nicely
|
||||
// String makes pointers to BankAcctInfo structs print nicely
|
||||
func (bai *BankAcctInfo) String() string {
|
||||
return fmt.Sprintf("%+v", *bai)
|
||||
}
|
||||
|
||||
// CCAcctInfo contains information about a credit card account, including how
|
||||
// to access it (CCAcct), and whether it supports downloading transactions
|
||||
// (SupTxDl).
|
||||
type CCAcctInfo struct {
|
||||
XMLName xml.Name `xml:"CCACCTINFO"`
|
||||
CCAcctFrom CCAcct `xml:"CCACCTFROM"`
|
||||
@ -74,11 +88,14 @@ type CCAcctInfo struct {
|
||||
SvcStatus svcStatus `xml:"SVCSTATUS"` // One of AVAIL (available, but not yet requested), PEND (requested, but not yet available), ACTIVE
|
||||
}
|
||||
|
||||
// Make pointers to these structs print nicely
|
||||
// String makes pointers to CCAcctInfo structs print nicely
|
||||
func (ci *CCAcctInfo) String() string {
|
||||
return fmt.Sprintf("%+v", *ci)
|
||||
}
|
||||
|
||||
// InvAcctInfo contains information about an investment account, including how
|
||||
// to access it (InvAcct), and whether it supports downloading transactions
|
||||
// (SupTxDl).
|
||||
type InvAcctInfo struct {
|
||||
XMLName xml.Name `xml:"INVACCTINFO"`
|
||||
InvAcctFrom InvAcct `xml:"INVACCTFROM"`
|
||||
@ -89,11 +106,14 @@ type InvAcctInfo struct {
|
||||
OptionLevel String `xml:"OPTIONLEVEL,omitempty"` // Text desribing option trading privileges
|
||||
}
|
||||
|
||||
// Make pointers to these structs print nicely
|
||||
// String makes pointers to InvAcctInfo structs print nicely
|
||||
func (iai *InvAcctInfo) String() string {
|
||||
return fmt.Sprintf("%+v", *iai)
|
||||
}
|
||||
|
||||
// AcctInfo represents generic account information. It should contain one (and
|
||||
// only one) *AcctInfo element corresponding to the tyep of account it
|
||||
// represents.
|
||||
type AcctInfo struct {
|
||||
XMLName xml.Name `xml:"ACCTINFO"`
|
||||
Name String `xml:"NAME,omitempty"`
|
||||
@ -101,6 +121,7 @@ type AcctInfo struct {
|
||||
Phone String `xml:"PHONE,omitempty"`
|
||||
PrimaryHolder HolderInfo `xml:"HOLDERINFO>PRIMARYHOLDER,omitempty"`
|
||||
SecondaryHolder HolderInfo `xml:"HOLDERINFO>SECONDARYHOLDER,omitempty"`
|
||||
|
||||
// Only one of the rest of the fields will be valid for any given AcctInfo
|
||||
BankAcctInfo *BankAcctInfo `xml:"BANKACCTINFO,omitempty"`
|
||||
CCAcctInfo *CCAcctInfo `xml:"CCACCTINFO,omitempty"`
|
||||
@ -109,6 +130,8 @@ type AcctInfo struct {
|
||||
// TODO BPACCTINFO?
|
||||
}
|
||||
|
||||
// AcctInfoResponse contains the information about all a user's accounts
|
||||
// accessible from this FI
|
||||
type AcctInfoResponse struct {
|
||||
XMLName xml.Name `xml:"ACCTINFOTRNRS"`
|
||||
TrnUID UID `xml:"TRNUID"`
|
||||
@ -119,15 +142,19 @@ type AcctInfoResponse struct {
|
||||
AcctInfo []AcctInfo `xml:"ACCTINFORS>ACCTINFO,omitempty"`
|
||||
}
|
||||
|
||||
// Name returns the name of the top-level transaction XML/SGML element
|
||||
func (air *AcctInfoResponse) Name() string {
|
||||
return "ACCTINFOTRNRS"
|
||||
}
|
||||
|
||||
// Valid returns (true, nil) if this struct was valid OFX when unmarshalled
|
||||
func (air *AcctInfoResponse) Valid() (bool, error) {
|
||||
//TODO implement
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// Type returns which message set this message belongs to (which Response
|
||||
// element of type []Message it belongs to)
|
||||
func (air *AcctInfoResponse) Type() messageType {
|
||||
return SignupRs
|
||||
}
|
||||
|
Reference in New Issue
Block a user