Commit Graph

140 Commits

Author SHA1 Message Date
Maikel Linke
e5f5f3922c Add contact name to DFC Enterprise API 2023-11-16 09:10:43 +11:00
Maikel Linke
fc8f0ec4f2 Add email address to DFC Enterprise API 2023-11-15 17:00:53 +11:00
Maikel Linke
057c1363b1 Add phone number to DFC Enterprise API 2023-11-15 16:57:38 +11:00
Maikel Linke
80c0df9d1e Add website to DFC Enterprise API 2023-11-15 16:48:44 +11:00
Maikel Linke
1fb87bc497 Add SocialMedia to DFC Enterprise API 2023-11-15 16:19:23 +11:00
Maikel Linke
9311a29c9f Add logo URL to DFC Enterprise API 2023-11-15 15:16:39 +11:00
Maikel Linke
cde57fcfb4 Update specs for changed attribute URI 2023-11-09 16:16:24 +11:00
Maikel Linke
5d29dee848 Update DFC Importer to use shortened URIs
The new Connector code uses shortened URIs now.
2023-11-09 16:16:24 +11:00
Maikel Linke
d0dd6e57ca Replace variable values with fixed values in Swagger doc 2023-11-08 17:12:42 +11:00
Gaetan Craig-Riou
f76bdf0c6f Fix rubocop warning 2023-11-08 13:57:35 +11:00
Gaetan Craig-Riou
7987967824 Check product image url is present on supplied product endpoint 2023-11-08 13:57:35 +11:00
Gaetan Craig-Riou
12c6257a0f Pass the image url to DfcProvider::SuppliedProduct 2023-11-08 13:57:35 +11:00
Maikel Linke
02f251c900 Import DFC SuppliedProduct as new variant of existing product 2023-09-21 09:04:57 +10:00
Maikel Linke
db5b6e5406 Enable DFC importer to import OFN objects 2023-09-21 09:04:28 +10:00
Maikel Linke
c42f62e09f Add custom OFN product id to DFC SuppliedProduct
The Spree::Variant in OFN corresponds to a DFC SuppliedProduct. But
several Spree::Variant can be grouped under one Spree::Product which
wasn't exposed on the DFC API.

I'm adding a custom property here which can be used internally and
shouldn't break any other DFC tools.

A gotcha of this first test implementation:

The `ofn:` prefix has not been defined in the context. Software needs
to know that this is an Open Food Network attribute or ignore it.
We could define our own context and ontology and publish it on our
website but I don't see any benefit of that at this point.
2023-09-21 08:54:32 +10:00
Maikel Linke
2175c59a6b Load spec helper not knowing Rails
When the application is not preloaded then running Rspec doesn't know
Rails until the spec helper is loaded. So we can't use Rails to find the
path of the spec helper. This has been fixed before but the DFC Address
code was developed at the same time and missed.
2023-09-21 08:54:32 +10:00
Neal Chambers
bf9db13bb3 Fix Style/HashSyntax 2023-09-14 16:25:49 +09:00
Maikel Linke
7e222ad83e Include address when showing group
It may be nice to show more data like social media URLs but the DFC
Connector hasn't implemented that yet and it's not specified in the
current issue.
2023-09-13 16:36:36 +10:00
Maikel Linke
88a3615de7 List groups when showing DFC Enterprise 2023-09-13 16:36:36 +10:00
Maikel Linke
95d3987752 List enterprise groups on DFC API 2023-09-13 16:36:36 +10:00
Maikel Linke
a03fb01a8c List enterprises within groups on DFC API 2023-09-13 16:36:36 +10:00
Maikel Linke
2d91a61dcb Add DFC API EnterpriseGroups#show 2023-09-13 16:36:36 +10:00
Maikel Linke
df3fc83c8e Remove version from DFC API URL in specs
We were aiming to use stable URLs to identify resources but the URL
helpers were still using dfc-v1.7 because that was the last and
overriding path of the mounted DFC Provider engine.
2023-09-11 15:00:08 +10:00
Maikel Linke
7654d37fc3 DRY, shorten swagger file names 2023-09-11 14:57:39 +10:00
Maikel Linke
fc7c8757d9 Move DFC patches into our DFC engine
It seems to belong there and it's avoiding some loading issues with
Spring.
2023-09-11 14:57:38 +10:00
Maikel Linke
191c4a79db Load spec helpers before Rails is loaded
Using Spring was hiding an loading error. When you start Rspec, Rails
and its engines are not loaded yet. So our way to load the spec helper
via `Rails.root` did not work when you ran specs on their own without
loading Rails with Spring first.
2023-09-11 14:57:38 +10:00
Maikel
1991970185 Merge pull request #11377 from mkllnk/dfc-update-request
[DFC API] Import known units when creating new products
2023-09-08 09:05:26 +10:00
Maikel Linke
57b4f615e8 Fix DFC context in spec example 2023-08-31 17:06:20 +10:00
Maikel Linke
514b8fa6ab Import DFC unit labels like bunch and jar 2023-08-31 16:27:55 +10:00
Maikel Linke
50f7177a38 Use existing service to label weight&volume units
We still have the scale stored in two places but in our current system
that's part of a unit's "id".

If the DFC adds that value to its standard then we can use it for lookup
and don't need to repeat it.

* https://github.com/datafoodconsortium/taxonomies/issues/7
2023-08-31 09:48:24 +10:00
Maikel Linke
0da1b27795 Simplify code with association #supplied_variants
Rails makes it so easy.
2023-08-30 15:55:10 +10:00
Maikel Linke
f96ab7c432 Import DFC bundle units like dozen or 6 pack 2023-08-28 17:13:04 +10:00
Maikel Linke
43346e2671 Import imperial DFC units 2023-08-28 17:13:04 +10:00
Maikel Linke
9ddf536fa3 Import DFC milligram 2023-08-28 17:13:04 +10:00
Maikel Linke
5a8d95c443 Import DFC kilogram 2023-08-28 17:13:04 +10:00
Maikel Linke
996f3bb235 Spec current quantity unit conversion 2023-08-28 17:13:04 +10:00
Maikel Linke
96b79bce2d Encapsulate DFC-OFN data model bridge
Re-uses existing code and takes knowledge out of the controller.
2023-08-28 17:13:04 +10:00
Maikel Linke
faa112c3ae Spec DFC SuppliedProduct#update with new Prototype
I observed new data from the DFC Prototype. It now uses the DFC 1.8
ontology with the hasQuantity object.

It now also uses PUT requests for updates because PATCH is not as well
supported. Rails doesn't care though.

I couldn't observe a request for the CatalogItem yet because the
Prototype failed to send it.
2023-08-28 17:13:04 +10:00
Maikel Linke
1c3574ce79 Include address in DFC Enterprise endpoint 2023-08-24 16:51:36 +10:00
Maikel Linke
20b09b5352 Add DFC Address API endpoint 2023-08-24 16:20:13 +10:00
Gaetan Craig-Riou
a8d15154a2 Link address to enterprise
+ spec
2023-08-24 15:55:15 +10:00
Gaetan Craig-Riou
86bb77ab9f Add AddressBuilder
It will let us include address in the various DFC API endpoint
2023-08-24 15:55:15 +10:00
Gaetan Craig-Riou
f5fb760128 Update Enterprise request spec
Check all the attributes supported by the DFC connector
2023-08-24 15:55:14 +10:00
Maikel Linke
244b9abd21 Spec with given data included in examples
And use in-memory data where possible to speed up specs.
2023-08-24 15:55:14 +10:00
Maikel Linke
5d05c3c0f1 DRY DFC enterprise spec 2023-08-24 15:55:14 +10:00
Gaetan Craig-Riou
18565f4a85 Add all the enterpise attributes supported by DFC connector 2023-08-24 15:55:14 +10:00
Maikel Linke
f96636072e Use original DFC Connector.export implementation
We wanted to use our own context before but now I found a better way for
the connector to cache the context and therfore we can use the original
implementation again.
2023-08-03 16:45:31 +10:00
Maikel Linke
3b5b9ec54d Avoid network request to DFC context on export
This protects us from the DFC website going down or the DFC updating
the context with breaking changes. We are in control of updating the
context now (opt-in to newer versions).
2023-07-27 15:38:36 +10:00
Maikel Linke
9183c8acdd Deal with bad SuppliedProduct data 2023-07-03 14:17:18 +10:00
Maikel Linke
18bcc179ef Clarify request body required to create product
We have to work around an Rswag limitation here. But I think that this
version is clearer on the spec.
2023-07-03 14:17:18 +10:00