Documentation
¶
Index ¶
- Constants
- type Customer
- type DBModel
- func (m *DBModel) AddUser(u User, hash string) error
- func (m *DBModel) Authenticate(email, password string) (int, error)
- func (m *DBModel) DeleteUser(id int) error
- func (m *DBModel) EditUser(u User) error
- func (m *DBModel) GetAllOrders() ([]*Order, error)
- func (m *DBModel) GetAllOrdersPaginated(pageSize, page int) ([]*Order, int, int, error)
- func (m *DBModel) GetAllSubscriptions() ([]*Order, error)
- func (m *DBModel) GetAllSubscriptionsPaginated(pageSize, page int) ([]*Order, int, int, error)
- func (m *DBModel) GetAllUsers() ([]*User, error)
- func (m *DBModel) GetOneUser(id int) (User, error)
- func (m *DBModel) GetOrderByID(id int) (Order, error)
- func (m *DBModel) GetUserByEmail(email string) (User, error)
- func (m *DBModel) GetUserForToken(token string) (*User, error)
- func (m *DBModel) GetWidget(id int) (Widget, error)
- func (m *DBModel) InsertCustomer(c Customer) (int, error)
- func (m *DBModel) InsertOrder(order Order) (int, error)
- func (m *DBModel) InsertToken(t *Token, u User) error
- func (m *DBModel) InsertTransaction(txn Transaction) (int, error)
- func (m *DBModel) UpdateOrderStatus(id, statusID int) error
- func (m *DBModel) UpdatePasswordForUser(u User, hash string) error
- type Models
- type Order
- type Status
- type Token
- type Transaction
- type TransactionStatus
- type User
- type Widget
Constants ¶
const (
ScopeAuthentication = "authentication"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Customer ¶
type Customer struct {
ID int `json:"id"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Email string `json:"email"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
Customer is the type for customers
type DBModel ¶
DBModel is the type for database connection values
func (*DBModel) Authenticate ¶
Authenticate attempts to log a user in by comparing supplied password with password hash
func (*DBModel) DeleteUser ¶
DeleteUser deletes a user by id
func (*DBModel) GetAllOrders ¶
GetAllOrders returns a slice of all orders
func (*DBModel) GetAllOrdersPaginated ¶
GetAllOrdersPaginated returns a slice of a subset of orders
func (*DBModel) GetAllSubscriptions ¶
GetAllSubscriptions returns a slice of all subscriptions
func (*DBModel) GetAllSubscriptionsPaginated ¶
GetAllSubscriptionsPaginated returns a slice of a subset of subscriptions
func (*DBModel) GetAllUsers ¶
GetAllUsers returns a slice of all users
func (*DBModel) GetOneUser ¶
GetOneUser returns one user by id
func (*DBModel) GetOrderByID ¶
GetOrderByID gets one order by id and returns the Order
func (*DBModel) GetUserByEmail ¶
GetUserByEmail gets a user by email address
func (*DBModel) InsertCustomer ¶
InsertOrder inserts a new order, and returns its id
func (*DBModel) InsertOrder ¶
InsertOrder inserts a new order, and returns its id
func (*DBModel) InsertTransaction ¶
func (m *DBModel) InsertTransaction(txn Transaction) (int, error)
InsertTransaction inserts a new txn, and returns its id
func (*DBModel) UpdateOrderStatus ¶
UpdateOrderStatus updates the status of order to supplied statusID by id
type Order ¶
type Order struct {
ID int `json:"id"`
WidgetID int `json:"widget_id"`
TransactionID int `json:"transaction_id"`
CustomerID int `json:"customer_id"`
StatusID int `json:"status_id"`
Quantity int `json:"quantity"`
Amount int `json:"amount"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
Widget Widget `json:"widget"`
Transaction Transaction `json:"transaction"`
Customer Customer `json:"customer"`
}
Order is the type for all orders
type Status ¶
type Status struct {
ID int `json:"id"`
Name string `json:"name"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
Status is the type for order statuses
type Token ¶
type Token struct {
PlainText string `json:"token"`
UserID int64 `json:"-"`
Hash []byte `json:"-"`
Expiry time.Time `json:"expiry"`
Scope string `json:"-"`
}
Token is the type for authentication tokens
type Transaction ¶
type Transaction struct {
ID int `json:"id"`
Amount int `json:"amount"`
Currency string `json:"currency"`
LastFour string `json:"last_four"`
ExpiryMonth int `json:"expiry_month"`
ExpiryYear int `json:"expiry_year"`
PaymentIntent string `json:"payment_intent"`
PaymentMethod string `json:"payment_method"`
BankReturnCode string `json:"bank_return_code"`
TransactionStatusID int `json:"transaction_status_id"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
Transaction is the type for transactions
type TransactionStatus ¶
type TransactionStatus struct {
ID int `json:"id"`
Name string `json:"name"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
TransactionStatus is the type for transaction statuses
type User ¶
type User struct {
ID int `json:"id"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Email string `json:"email"`
Password string `json:"password"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
User is the type for users
type Widget ¶
type Widget struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
InventoryLevel int `json:"inventory_level"`
Price int `json:"price"`
Image string `json:"image"`
IsRecurring bool `json:"is_recurring"`
PlanID string `json:"plan_id"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
Widget is the type for all widgets