member

package
v0.0.0-...-1f412bb Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2018 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Key_card_rexp = regexp.MustCompile(`^[0-9]{2}:[0-9]{5}$`)

Functions

func Plan_category

func Plan_category(plan_id string) string

func Plan_identifier

func Plan_identifier(plan_id string) string

func Plan_interval

func Plan_interval(p *stripe.Plan) string

func Rand256

func Rand256() string

func Subscription_interval

func Subscription_interval(s *stripe.Sub) string

func Validate_email

func Validate_email(email string) error

func Validate_name

func Validate_name(name string) error

Types

type Admin

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

type Config

type Config struct {
	Reserved_usernames    []string
	Password_reset_window string
	Smtp                  struct {
		Address        string
		Port           int
		Username       string
		Password       string
		Subject_prefix string
	}
	Billing struct {
		Private_key string
		Public_key  string
	}
}

type Customer

type Customer struct {
	*stripe.Customer
	// key == subscription ID
	Subscriptions map[string]*stripe.Sub
}

type Member

type Member struct {
	Id                int
	Username          string
	Name              string
	Email             string
	Key_card          string
	Telephone         string
	Vehicle_model     string
	License_plate     string
	Card_request_date time.Time
	Open_house_date   time.Time
	Avatar_tmpl       string
	Agreed_to_terms   bool
	Registered        time.Time
	Customer_id       string

	*Admin
	*Student
	*Members
	// contains filtered or unexported fields
}

func (*Member) Approve_free_membership

func (a *Member) Approve_free_membership(m *Member) error

func (*Member) Approve_membership

func (a *Member) Approve_membership(m *Member) error

func (*Member) Approve_subscription

func (a *Member) Approve_subscription(p *Pending_subscription) error

func (*Member) Authenticate

func (m *Member) Authenticate(password string) bool

func (*Member) Avatar_url

func (m *Member) Avatar_url(size int) string

func (*Member) Cancel_membership

func (m *Member) Cancel_membership()

func (*Member) Cancel_storage_lease

func (m *Member) Cancel_storage_lease(plan_id string, number int) error

func (*Member) Cancel_subscription_item

func (m *Member) Cancel_subscription_item(sub_id, item_id string) error

func (*Member) Clear_password

func (m *Member) Clear_password()

func (*Member) Delete_access_card

func (m *Member) Delete_access_card()

func (*Member) Delete_license_plate

func (m *Member) Delete_license_plate()

func (*Member) Delete_member

func (m *Member) Delete_member()

TODO: cascade through all tables

func (*Member) Delete_open_house_date

func (m *Member) Delete_open_house_date()

func (*Member) Delete_student

func (m *Member) Delete_student()

func (*Member) Delete_telephone

func (m *Member) Delete_telephone()

func (*Member) Delete_vehicle

func (m *Member) Delete_vehicle()

func (*Member) Force_password_reset

func (a *Member) Force_password_reset(domain string, m *Member)

TODO: this is messy, passing config values from the site package. Must be a

cleaner way of doing this... probably by passing back a template (should
then be built into send_email())

func (*Member) Get_card

func (m *Member) Get_card() *stripe.Card

func (*Member) Get_customer

func (m *Member) Get_customer() *Customer

TODO: be explicit throughout member package about calls to Get_customer(),

as they involve a cross-origin request

func (*Member) Get_membership

func (m *Member) Get_membership() *stripe.SubItem

func (*Member) Get_payment_source

func (m *Member) Get_payment_source() *stripe.PaymentSource

func (*Member) Get_pending_membership

func (m *Member) Get_pending_membership() *Pending_subscription

func (*Member) Get_pending_subscription_by_plan

func (m *Member) Get_pending_subscription_by_plan(plan_id string) *Pending_subscription

func (*Member) Get_pending_subscriptions

func (m *Member) Get_pending_subscriptions() []*Pending_subscription

func (*Member) Get_subscription_from_item

func (m *Member) Get_subscription_from_item(item_id string) (*stripe.Sub, error)

func (*Member) Last_seen

func (m *Member) Last_seen() time.Time

Last_seen returns the last page-load time in a session by member <m>.

ls.IsZero() == true if <m> has never created a session.

func (*Member) List_storage_leases_by_plan

func (m *Member) List_storage_leases_by_plan(plan_id string) ([]*Storage, error)

func (*Member) Membership_id

func (m *Member) Membership_id() string

func (*Member) Membership_rate

func (m *Member) Membership_rate() string

func (*Member) New_storage_lease

func (m *Member) New_storage_lease(plan_id string, number int) error

func (*Member) New_subscription_item

func (m *Member) New_subscription_item(plan_id string, quantity uint64) (*stripe.SubItem, *stripe.Sub, error)

func (*Member) Request_membership

func (m *Member) Request_membership(rate string) error

func (*Member) Request_subscription

func (m *Member) Request_subscription(plan string) error

TODO: check for duplicate requests

func (*Member) Send_password_reset

func (m *Member) Send_password_reset(domain string)

func (*Member) Set_card_request_date

func (m *Member) Set_card_request_date(date time.Time) error

func (*Member) Set_key_card

func (m *Member) Set_key_card(key_card string) error

func (*Member) Set_license_plate

func (m *Member) Set_license_plate(plate string) error

func (*Member) Set_open_house_date

func (m *Member) Set_open_house_date(date time.Time) error

func (*Member) Set_password

func (m *Member) Set_password(password string)

func (*Member) Set_registration_date

func (m *Member) Set_registration_date(date time.Time)

func (*Member) Set_telephone

func (m *Member) Set_telephone(tel string) error

TODO: validate input

func (*Member) Set_vehicle

func (m *Member) Set_vehicle(vehicle string) error

func (*Member) Talk_user

func (m *Member) Talk_user() *talk.User

func (*Member) Update_avatar_tmpl

func (m *Member) Update_avatar_tmpl(avatar_tmpl string)

func (*Member) Update_customer

func (m *Member) Update_customer(token string) error

func (*Member) Update_email

func (m *Member) Update_email(email string) error

func (*Member) Update_membership

func (m *Member) Update_membership(rate string) error

func (*Member) Update_name

func (m *Member) Update_name(name string) error

func (*Member) Update_student

func (m *Member) Update_student(institution, email string, grad_date time.Time) error

TODO: verify student email

func (*Member) Update_subscription_item

func (m *Member) Update_subscription_item(sub_id, subitem_id string, quantity uint64) error

func (*Member) Update_username

func (m *Member) Update_username(username string) error

type Members

type Members struct {
	Config
	*sql.DB
	Talk  *talk.Api
	Plans map[string]*stripe.Plan
}

func New

func New(config Config, db *sql.DB, talk *talk.Api) *Members

func (*Members) Cancel_pending_subscription

func (ms *Members) Cancel_pending_subscription(p *Pending_subscription)

func (*Members) Delete_verification_tokens

func (ms *Members) Delete_verification_tokens(email string)

func (*Members) Email_available

func (ms *Members) Email_available(email string) bool

func (*Members) Get_member_by_customer_id

func (ms *Members) Get_member_by_customer_id(customer_id string) *Member

func (*Members) Get_member_by_email

func (ms *Members) Get_member_by_email(email string) *Member

TODO: canonicalize e-mail address

func (*Members) Get_member_by_id

func (ms *Members) Get_member_by_id(id int) *Member

func (*Members) Get_member_by_username

func (ms *Members) Get_member_by_username(username string) *Member

func (*Members) Get_member_from_reset_token

func (ms *Members) Get_member_from_reset_token(token string) (*Member, error)

func (*Members) List_active_members

func (ms *Members) List_active_members() []*Member

Ordered by last-seen time

func (*Members) List_all_memberships

func (ms *Members) List_all_memberships() map[string]*stripe.Sub

Indexed by customer ID

func (*Members) List_all_pending_subscriptions

func (ms *Members) List_all_pending_subscriptions() []*Pending_subscription

List_all_pending_subscriptions lists all pending (waiting approval)

subscriptions

func (*Members) List_available_storage_numbers

func (ms *Members) List_available_storage_numbers(plan_id string) []int

func (*Members) List_members

func (ms *Members) List_members() []*Member

Ordered by username

func (*Members) List_members_by_name

func (ms *Members) List_members_by_name(names []string) map[int]*Member

func (*Members) List_members_with_access_card

func (ms *Members) List_members_with_access_card() []*Member

func (*Members) List_members_with_membership

func (ms *Members) List_members_with_membership(plan_id string) []*Member

func (*Members) List_members_with_memberships

func (ms *Members) List_members_with_memberships() []*Member

func (*Members) List_memberships

func (ms *Members) List_memberships(plan_id string) map[string]*stripe.Sub

Indexed by customer ID

func (*Members) List_new_members

func (ms *Members) List_new_members(limit int) []*Member

Ordered by registration date

func (*Members) List_pending_storage_leases

func (ms *Members) List_pending_storage_leases() []*Pending_subscription

func (*Members) List_storage

func (ms *Members) List_storage(plan_id string) ([]*Storage, error)

func (*Members) List_storage_plans

func (ms *Members) List_storage_plans() []string

func (*Members) New_member

func (ms *Members) New_member(username, name, email string) (*Member, error)

New members are created with an uninitialized password, which must be set via

the reset form.

func (*Members) Number_pending

func (ms *Members) Number_pending(plan string) int

func (*Members) Send_email_verification

func (ms *Members) Send_email_verification(email, body string, m *Member)

func (*Members) Username_available

func (ms *Members) Username_available(username string) bool

func (*Members) Validate_username

func (ms *Members) Validate_username(username string) error

func (*Members) Verify_email_token

func (ms *Members) Verify_email_token(token string) (email string, m *Member)

type Pending_subscription

type Pending_subscription struct {
	*Member
	Requested_at time.Time
	Plan_id      string
}

type Storage

type Storage struct {
	Number    int
	Quantity  uint64
	Available bool
	*stripe.Plan

	*Member
	// contains filtered or unexported fields
}

type Student

type Student struct {
	Institution     string
	Email           string
	Graduation_date time.Time
}

Jump to

Keyboard shortcuts

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