Maikel Linke
af6be02ba4
Fix social media import
2025-12-12 16:46:43 +11:00
Maikel Linke
f9d255a266
Continue on fail of Litefarm import
...
And report validation errors.
2025-12-12 14:03:37 +11:00
Maikel Linke
f90f71cf68
Update real Litefarm data
2025-12-10 17:18:17 +11:00
Maikel Linke
fe8a0a908e
Import DFC country by name or ISO code
2025-12-10 17:17:51 +11:00
Maikel Linke
bf6176c883
Test failed image import
2025-12-10 16:24:54 +11:00
Maikel Linke
ffdfb7d450
Doc: explain when OIDC secrets are required
2025-12-10 16:24:54 +11:00
Maikel Linke
3aa4c2a25f
Import more fields from Litefarm
2025-12-10 16:24:54 +11:00
Maikel Linke
3331aaa382
Fetch data from URL provided by Litefarm
...
So we don't have to distinguish between staging and production. They
will provide the right URL.
2025-12-10 16:24:54 +11:00
Maikel Linke
b302dcfbec
Update existing enterprises
2025-12-10 16:24:54 +11:00
Maikel Linke
7dfc4d21ca
Record updated Litefarm data
2025-12-10 16:24:53 +11:00
Maikel Linke
baad0135f9
Import enterprises and owners with minimal data
...
Still missing:
* Check for existing enterprises.
* Import all the available data.
2025-12-10 16:24:53 +11:00
Maikel Linke
1973e36634
Extract token and HTTP layer for re-use
...
Calling a webhook as a platform and fetching enterprise data will have
the same auth.
2025-12-10 16:24:53 +11:00
Maikel Linke
2e62531232
Authenticate only as platform to call webhooks
2025-12-10 16:24:53 +11:00
Maikel Linke
d811103a71
Add dummy webhook endpoint for LiteFarm
2025-12-10 16:24:53 +11:00
Maikel
1029b61bb0
Merge pull request #13742 from mkllnk/market-organic
...
Add Market Organic as available platform
2025-11-28 12:15:57 +11:00
Maikel Linke
81165cd82b
Replace country names with standard ISO code concepts
...
The DFC version 1.16.0 introduced this new standardisation.
2025-11-24 16:59:41 +11:00
Maikel Linke
fbce264dd7
Adjust webhook URL for Market Organic
2025-11-21 14:16:47 +11:00
Maikel Linke
aaad1bc0b3
Accept short client ids in tokens
2025-11-14 10:00:16 +11:00
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
91ad63d1ed
Use test token as source of truth for validity
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
ad78ef14ef
Automate replacement of generated image URLs in Swagger doc
2025-10-10 16:18:21 +11:00
Maikel Linke
df6e553661
Add SuppliedProducts index endpoint
2025-10-10 16:18:21 +11:00
Maikel Linke
4d59343f6c
List enterprises on DFC API
2025-10-10 16:18:21 +11:00
Maikel Linke
44d29e98e0
Fix publishing all enterprises when listing catalog
2025-10-10 16:18:21 +11:00
Maikel Linke
06c27d6aaf
Spec current publish of catalog of all enterprises
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
6e489d7770
Enforce required DFC permissions
2025-08-22 16:46:59 +10:00
Maikel Linke
1d2115766a
Show product groups to platform user
...
I removed the caching of `managed_enterprises` in Permissions because
it's just a scope and calling it again is very cheap. And that makes the
method a lot easier to read now that we have a conditional here.
Accessing the managed enterprises via the user instead of a separate
scope on the Enterprise model also reduce the SQL queries. We may want
to use this method in more places. I prefer to keep the
admin-conditional in a permissions class instead of in the model.
2025-08-13 15:06:31 +10:00
Maikel Linke
6814ef43f4
Show addresses to platform users
2025-08-13 15:06:25 +10:00
Maikel Linke
c9e8294561
DRY with shared context
2025-08-13 15:02:09 +10:00
Maikel Linke
82d0e1bf68
Show enterprise to authorised platform user
2025-08-13 15:02:09 +10:00
Maikel Linke
b16e541a81
Show DFC catalog to authorised platform
2025-08-13 15:02:09 +10:00
Maikel Linke
c12d494de3
Demonstrate authentication as DFC client app
2025-08-13 15:02:09 +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
Maikel Linke
52aeec5ac4
Update and list scopes for real
2025-08-08 14:00:40 +10:00
Maikel Linke
7032b3f463
Add endpoint to update scopes of platform
...
Dummy implementation only.
2025-08-08 14:00:40 +10:00
Maikel Linke
60c8f4ee20
Add DFC API endpoint for listing platforms
...
Only listing example JSON for now.
This is not part of the official DFC API but it's a DFC-related API and
therefore we put it in the same namespace.
The DFC Permission Module will make authenticated requests to grant
certain platforms certain permissions.
2025-08-08 14:00:01 +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
f723fe025e
Rename file
2025-06-18 11:12:01 +10:00
David Cook
f9764b697d
Found a cleaner way to patch inspect
...
I tried to move on, I really did, but I already had these things in my head and they suddenly clicked together, so I thought it worth updating now.
2025-06-17 10:52:20 +10:00
David Cook
0f3626f12d
Monkey-patch a cleaner inspect
...
I would love to have hooked into the pretty inspect features which provide a better format, with indentation and colours for the console. But I couldn't find out how to.
2025-06-17 10:52:20 +10: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