func getOrders()

in orders.go [25:52]


func getOrders(ctx context.Context, db *sqlx.DB) ([]Order, error) {
	const limit = 1000
	queryString := `SELECT
  orders.id, orders.created_at,
  customers.id, customers.full_name
FROM orders JOIN customers ON orders.customer_id=customers.id
`
	queryString += fmt.Sprintf("LIMIT %d\n", limit)

	rows, err := db.QueryContext(ctx, queryString)
	if err != nil {
		return nil, errors.Wrap(err, "querying orders")
	}
	defer rows.Close()

	var orders []Order
	for rows.Next() {
		var o Order
		if err := rows.Scan(
			&o.ID, &o.CreatedAt,
			&o.CustomerID, &o.CustomerName,
		); err != nil {
			return nil, err
		}
		orders = append(orders, o)
	}
	return orders, rows.Err()
}