save orders
This commit is contained in:
		@ -70,6 +70,8 @@ type Transaction struct {
 | 
			
		||||
	Amount              int       `json:"amount"`
 | 
			
		||||
	Currency            string    `json:"currency"`
 | 
			
		||||
	LastFour            string    `json:"last_four"`
 | 
			
		||||
	ExpiryMonth         int       `json:"expiry_month"`
 | 
			
		||||
	ExpiryYear          int       `json:"expiry_year"`
 | 
			
		||||
	BankReturnCode      string    `json:"bank_return_code"`
 | 
			
		||||
	TransactionStatusID int       `json:"transaction_status_id"`
 | 
			
		||||
	CreatedAt           time.Time `json:"-"`
 | 
			
		||||
@ -131,14 +133,17 @@ func (m *DBModel) InsertTransaction(txn Transaction) (int, error) {
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	stmt := `INSERT INTO transactions
 | 
			
		||||
             (amount, currency, last_four, bank_return_code,
 | 
			
		||||
             (amount, currency, last_four, expiry_month, expiry_year,
 | 
			
		||||
             bank_return_code,
 | 
			
		||||
             transaction_status_id, created_at, updated_at)
 | 
			
		||||
             VALUES (?, ?, ?, ?, ?, ?, ?)`
 | 
			
		||||
             VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`
 | 
			
		||||
 | 
			
		||||
	result, err := m.DB.ExecContext(ctx, stmt,
 | 
			
		||||
		txn.Amount,
 | 
			
		||||
		txn.Currency,
 | 
			
		||||
		txn.LastFour,
 | 
			
		||||
		txn.ExpiryMonth,
 | 
			
		||||
		txn.ExpiryYear,
 | 
			
		||||
		txn.BankReturnCode,
 | 
			
		||||
		txn.TransactionStatusID,
 | 
			
		||||
		time.Now(),
 | 
			
		||||
@ -160,17 +165,45 @@ func (m *DBModel) InsertOrder(order Order) (int, error) {
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	stmt := `INSERT INTO orders
 | 
			
		||||
             (widget_id, transaction_id, status_id, quantity,
 | 
			
		||||
             (widget_id, transaction_id, customer_id, status_id, quantity,
 | 
			
		||||
             amount, created_at, updated_at)
 | 
			
		||||
             VALUES (?, ?, ?, ?, ?, ?, ?)`
 | 
			
		||||
             VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
 | 
			
		||||
 | 
			
		||||
	result, err := m.DB.ExecContext(ctx, stmt,
 | 
			
		||||
		order.WidgetID,
 | 
			
		||||
		order.TransactionID,
 | 
			
		||||
		order.CustomerID,
 | 
			
		||||
		order.StatusID,
 | 
			
		||||
		order.Quantity,
 | 
			
		||||
		order.Amount,
 | 
			
		||||
		time.Now(),
 | 
			
		||||
		time.Now(),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	id, err := result.LastInsertId()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	return int(id), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InsertCustomer inserts a new customer, and returns its id
 | 
			
		||||
func (m *DBModel) InsertCustomer(customer Customer) (int, error) {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	stmt := `INSERT INTO customers
 | 
			
		||||
             (first_name, last_name, email, created_at, updated_at)
 | 
			
		||||
             VALUES (?, ?, ?, ?, ?)`
 | 
			
		||||
 | 
			
		||||
	result, err := m.DB.ExecContext(ctx, stmt,
 | 
			
		||||
		customer.FirstName,
 | 
			
		||||
		customer.LastName,
 | 
			
		||||
		customer.Email,
 | 
			
		||||
		time.Now(),
 | 
			
		||||
		time.Now(),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user