Maikel Linke
b2da57b496
Publish supplier of catalog item
2025-10-10 16:18:22 +11:00
Maikel Linke
c6a34cfe34
Move catalog_item builder into the right module
2025-10-10 16:18:22 +11:00
Maikel Linke
86774b3e4e
Tell data proxy the enterprise to update
2025-10-10 16:18:22 +11:00
Maikel Linke
2761cee5e6
Publish coordinates of addresses
2025-10-10 16:18:22 +11:00
Maikel Linke
f2f0d954c6
Move source of truth of platforms into one place
...
The first test tokens had an inconsistent client_id and I had to
introduce multiple mappings to get the right config. But that has been
harmonised and we can put the config in one place.
2025-10-10 16:18:22 +11:00
Maikel Linke
bf661159c6
Notify data proxy of permission changes
2025-10-10 16:18:21 +11:00
Maikel Linke
403aa6ac6f
Remove remaining Timecop usage
2025-08-29 11:16:20 +10:00
Maikel
bdae8e6478
Merge pull request #13475 from mkllnk/dfc-sib-tokens
...
Accept tokens from Startin'Blox OIDC server
2025-08-27 14:55:30 +10:00
Maikel Linke
94b75540e4
Replace Timecop with Rails' time helpers
...
Rails 4.1 added time helpers but we never bothered using them. But now
I'm getting rid of the Timecop dependency and use standard helpers.
Beware though that the new helpers always freeze time. When you travel
to a certain date then the clock stops ticking while Timecop maintained
the passing of time.
The freezing of time could cause problems if you are trying to enforce a
timeout. But all current specs don't seem affected.
In most cases, the freezing will make it easier to avoid flaky specs.
2025-08-22 16:57:04 +10:00
Maikel Linke
6814ef43f4
Show addresses to platform users
2025-08-13 15:06:25 +10:00
Maikel Linke
9be27842e1
Accepts tokens from Startin'Blox OIDC server
...
The API controllers don't know the new type of user yet and will raise
errors but we can work on that bit by bit.
2025-08-13 15:02:09 +10:00
Maikel Linke
2a7754edbf
Add test for current token validation
2025-08-13 15:02:09 +10:00
Carlos Chitty
b43fa55a7b
Do not try to generate a URL for unpersisted blobs in development/test environment
...
Explicitly raise an error in `image_variant_url_for` if an Active Storage variant's blob is not persisted.
This addresses `ArgumentError`/`URI::InvalidURIError` in Rails 7.1, which occurs when attempting to generate a URL for an unsaved Active Storage blob. By raising, we ensure existing error handling in calling methods (e.g., `Spree::Image#url`) can provide graceful fallbacks (default image URLs).
This should only affect test and development environments where blobs may not be immediately persisted. Tests in `SuppliedProductImporter` have been updated to reflect this behavior.
References:
- Suggestion: https://github.com/openfoodfoundation/openfoodnetwork/pull/13232#discussion_r2071116581
- Example of failing test due to this: https://github.com/openfoodfoundation/openfoodnetwork/actions/runs/14739687958/job/41374346184?pr=13232
- Related: https://github.com/rails/rails/issues/50234
2025-06-27 15:05:52 -04:00
David Cook
be1f4e91e1
Map currency to DFC codes
...
Probably should have just hardcoded it. Hopefully we can remove this soon anyway.
2025-06-17 10:50:24 +10:00
Maikel Linke
4c086e3d40
Update images in DFC product import on URL change
2025-03-04 20:02:03 +01:00
Maikel
ff8fe58268
Merge pull request #13151 from mkllnk/dfc-stock-limit
...
Fix reset stock when importing DFC products
2025-02-24 15:47:12 +11:00
Maikel
462886447a
Merge pull request #13126 from mkllnk/oidc-error
...
Direct people to refresh OIDC connection when needed
2025-02-24 15:45:48 +11:00
Maikel Linke
699db02098
Remove enterprise id from DFC product group URL
...
A Spree::Product represented as product group is not directly associated
to an enterprise. In theory, it could have multiple enterprises through
its variants. So we better don't include the id in the URL.
```
-http://test.host/api/dfc/enterprises/10000/product_groups/90000
+http://test.host/api/dfc/product_groups/90000
```
This makes it simpler as well.
2025-02-18 16:19:27 +11:00
Maikel Linke
5d495b94b3
Use product group attributes for Spree::Product updates
2025-02-18 13:08:49 +11:00
Maikel Linke
fba7c24ebd
Product group can be present or just linked
2025-02-18 13:08:49 +11:00
Maikel Linke
516759062f
Import variants for the same product group
...
When importing another catalog, it's probably referring to external
product groups. Storing the external link allows us to group several
variants and replicate the same structure within OFN.
2025-02-18 13:08:48 +11:00
Maikel Linke
c1e0c6ed34
Import variants for existing products via new DFC attribute
2025-02-18 13:08:48 +11:00
Maikel Linke
fbdc6c9bd0
Split growing supplied product builder
2025-02-18 13:08:46 +11:00
Maikel Linke
00a2894e93
Clear invalid OIDC tokens
2025-02-18 11:48:17 +11:00
Maikel Linke
db874b18a4
Fix reset stock when importing DFC products
2025-02-14 10:27:09 +11:00
Maikel Linke
710e1654d0
Report DFC server errors to Bugsnag
2025-02-11 13:01:05 +11:00
Maikel Linke
9d30f007a9
Format spec file
2025-02-11 12:36:00 +11:00
Maikel Linke
c9f319aa96
Find broader taxon if we don't have a specific one
...
For example, when importing `beef` products associate the type `meat-product`
instead because we don't have a specific beef category.
2025-01-30 11:10:47 +11:00
Maikel Linke
1fcefcfcd0
Remove now useless wrapper class
2025-01-30 10:11:03 +11:00
Gaetan Craig-Riou
6fb86dd4ac
Merge pull request #13093 from mkllnk/dfc-token-error
...
Handle wrong OIDC tokens gracefully
2025-01-27 12:56:23 +11:00
Maikel Linke
8636d3fc00
Handle wrong OIDC tokens gracefully
...
If you copy and paste only part of a token then a general DecodeError is
raised. It's the parent class for all other related errors like for
expired signatures.
Now we just fail authentication instead of raising a server error.
2025-01-24 09:01:04 +11:00
Maikel Linke
64608beaa8
Remove DefaultStockLocation created in setup
2025-01-22 12:01:57 +11:00
Maikel Linke
84648690a6
Publish price as in new DFC standard
2025-01-16 09:45:26 +11:00
Maikel Linke
0bd6fe6709
Fix setting stock from wholesale offer
2025-01-07 11:03:36 +11:00
Maikel Linke
21195c5750
Calculate stock from wholesale products
2025-01-07 11:03:36 +11:00
Maikel Linke
ddaeff7c53
Use DfcCatalog in offer broker
2025-01-07 11:03:34 +11:00
Maikel Linke
ef08ae49fe
DRY DFC catalog logic for re-use
2025-01-07 10:49:37 +11:00
Maikel Linke
5719d0682d
Remove duplicate lines, dev leftovers
2024-11-29 16:16:43 +11:00
Maikel Linke
c4c95d472e
Use defined DFC orders states
2024-11-29 16:16:42 +11:00
Maikel Linke
3e7f61c4d1
Add new DFC vocabulary
...
So that we can use order states programmatically.
2024-11-29 16:16:42 +11:00
Ahmed Ejaz
c0887b1806
12890: remove city from response
2024-11-25 19:29:31 +05:00
Ahmed Ejaz
3b83200a14
12890: fix specs
2024-11-22 12:40:54 +05:00
Maikel Linke
1eb70370c7
Import product's invalid weight as 1 item
...
We previously stored a scale which made the product screen believe that
we are dealing with weight.
2024-10-16 09:27:49 +11:00
Gaetan Craig-Riou
40afe7e0ab
Fix rebase issue
2024-10-14 15:02:34 +11:00
Gaetan Craig-Riou
9b4cd014bf
Fix DFC supplied product builder
2024-10-14 15:01:18 +11:00
Maikel Linke
7d2d14320f
Spec that connector update fixed bug
2024-10-11 09:54:29 +11:00
Maikel Linke
bda506528f
Fix import of zero-weight products
...
We don't allow variants to have zero weight or volume. But a DFC import
in production showed that some catalogs list products with zero weight.
Despite the products having a weight, it's simpler to treat these as
items.
2024-10-10 14:08:02 +11:00
Maikel Linke
f0b6403c1d
Fix locally flaky spec around date filters
...
This spec would fail on Australian systems early in the morning or in
other timezones accordingly.
2024-10-10 09:58:01 +11:00
Maikel Linke
2465780c1c
Import prices and stock levels from DFC catalog
...
We were already importing stock levels from offers but now we are
looking at catalog items as well.
2024-09-26 14:32:01 +10:00
Maikel Linke
9f43244312
Import on-demand stock setting in DFC import
2024-09-25 10:55:41 +10:00