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()
}