Commit Graph

14 Commits

Author SHA1 Message Date
Andy Brett
31738ceb49 rename and consolidate authorization? methods 2021-06-17 14:23:59 -07:00
Pau Perez
199d48123b Fully qualify table columns in query object
This fixes the error UK's is experiencing:

```
PG::AmbiguousColumn: ERROR: column reference "state" is ambiguous LINE
1: SELECT DISTINCT spree_orders.*, CASE WHEN state IN ('cancele...
^ : SELECT DISTINCT spree_orders.*, CASE WHEN state IN ('canceled',
'returned') THEN payment_total WHEN state IS NOT NULL THEN payment_total
- total ELSE 0 END AS balance_value, spree_orders.* FROM "spree_orders"
INNER JOIN "spree_shipments"
```

See
https://app.bugsnag.com/yaycode/openfoodnetwork-uk/errors/6058c45989d37300079e8312?event_id=6058ccd30075af73bcb20000&i=sk&m=nw.
2021-03-23 09:37:47 +01:00
Pau Perez
21fb3f3da6 Extract orders relation as a query object 2021-03-03 18:21:10 +01:00
Pau Perez
cd60cea5de Extract balance-related methods into module
This model concerns helps us put together this related methods. Although
it doesn't provide any encapsulation yet, it makes a bit easier to
consider them all next time we need to change this implementation
somehow. It's a bit of an illusion but it feels like we are making this
God object model a bit smaller.

It also gives more room for documentation that will aid future devs.
2021-03-03 18:19:26 +01:00
Andy Brett
c23fb27031 remove unnecessary join 2021-02-26 07:44:08 -08:00
Andy Brett
7bb49b51fd use scope on payment model 2021-02-26 07:44:08 -08:00
Andy Brett
0b245ad7b1 make user attr private 2021-02-26 07:44:08 -08:00
Andy Brett
ee351d91a9 show authorization links in separate table 2021-02-26 07:44:08 -08:00
Pau Perez
cc9e3fe69b Replace double negation with proper list of states
We rely now on the exhaustive list of states an order can be in after
checkout. What made this all a bit more messy is that I made up the
"checkout" order state, likely mixing it from the payment model states.

This simplifies things quite a bit and gives meaningful names to things.
2021-01-20 18:34:31 +01:00
Pau Perez
996761da67 Fix long line 2021-01-20 18:23:22 +01:00
Pau Perez
783863056d Extract query object out of UsersController
It improves the overall readability of the code and as a result, things
became easier to manage already.
2021-01-20 18:23:22 +01:00
Pau Perez
d18e79ab19 Move query object to app/queries/ and doc it 2021-01-20 18:23:22 +01:00
Pau Perez
20abaaa950 Reuse outstanding balance statement across queries
Instead of relying on Spree::Order#outstanding_balance we make us of the
result set `balance_value` computed column. So, we ask PostgreSQL to
compute it instead of Ruby and then serialize it from that computed
column. That's a bit faster to compute that way and let's reuse logic.

We hide this new implementation under this features' toggle so it's only
used when enabled. We want hit the old behaviour by default.
2021-01-20 18:23:22 +01:00
Pau Perez
681a009eb6 Extract outstanding balance SQL CASE/WHEN 2021-01-20 18:23:22 +01:00