Commit Graph

87 Commits

Author SHA1 Message Date
Maikel Linke
9183c8acdd Deal with bad SuppliedProduct data 2023-07-03 14:17:18 +10:00
Maikel Linke
7a51995aeb Respond with SuppliedProduct data when creating 2023-07-03 12:37:23 +10:00
Filipe
54a85a504d Merge pull request #11101 from mkllnk/dfc-api-key
Allow access to DFC API with OFN API token
2023-06-29 17:20:21 +01:00
Maikel
e065910d2d Merge pull request #10939 from Matt-Yorkley/master-variants
Remove master variants
2023-06-23 13:42:58 +10:00
Maikel Linke
08a06d21fa Allow access to DFC API with OFN API token 2023-06-22 16:58:12 +10:00
Maikel Linke
ec8c710e3a Import simple DFC SuppliedProduct
OFN products and variants need more data like a price but the DFC
stores that in a different object. We may get a larger graph containing
that information but we don't have any test data yet.
2023-06-19 16:19:48 +10:00
Maikel Linke
df9e1ac2b4 Encapsulate SuppliedProductBuilder
And improve EnterpriseBuilder. It was builder products twice.
2023-06-19 16:19:48 +10:00
Matt-Yorkley
1daab8994d Remove is_master and not_master scopes 2023-06-16 21:23:44 +01:00
Maikel Linke
0dcd87dda9 Update stock and SKU from DFC
The input has been observed with the nginx access log including
$request_body when the DFC Protoype pushed an update.
2023-05-28 10:39:08 +02:00
Maikel Linke
375b3a3cb0 Update variant's quantity from DFC 2023-05-28 10:39:08 +02:00
Maikel Linke
48a52582e6 Update variant description with DFC description
We used the name before because the DFC Prototype only displays the
description.
2023-05-28 10:39:08 +02:00
Maikel Linke
3c6f55732d Add dummy product type to DFC export 2023-05-09 17:01:00 +10:00
Maikel Linke
b2e8af0cd1 Add stock to DFC Offer as well 2023-05-09 16:51:26 +10:00
Maikel Linke
54137067dd Export variant's display_name if present
The `#name` method is simply delegated to a variant's product.
2023-05-09 16:51:26 +10:00
Maikel Linke
80edc44ef5 Replace SuppliedProductSerializer with DFC Connector
And remove the BaseSerializer because this was the last serializer.
2023-05-09 16:51:26 +10:00
Maikel Linke
0b808a4b1e Add product quantity to DFC export 2023-05-09 16:51:26 +10:00
Maikel Linke
1e23cf1c92 Replace EnterpriseSerializer with DFC Connector
And move same test coverage to a new builder spec.
2023-05-09 16:51:26 +10:00
Maikel Linke
683ad0f5b9 Replace PersonSerializer with DFC Connector
And the address serializer was just an empty placeholder.
2023-05-09 16:51:26 +10:00
Maikel Linke
c60d622818 List catalog items with DFC Connector 2023-05-09 16:51:25 +10:00
Maikel Linke
7f8ce08d4e Include DFC Offer in the export with valid id 2023-05-09 16:51:25 +10:00
Maikel Linke
78cf3b5a1d Serialize DFC catalog item with DFC Connector
This is work in progress. The DFC Connector uses a more recent DFC
version and other endpoints still use the old serializers. We need to
update those endpoints as well and update the version number in the API
URL.
2023-05-09 16:51:25 +10:00
Maikel Linke
5187201796 Add DFC vocabularies
- Add a script for downloading updated files.
- Add a service for easier loading of vocab files.
2023-05-09 16:51:25 +10:00
Maikel Linke
9c3bdc6b9b Remove unnecessary table join
And use Rails syntax for clarity and future extensions.
2023-03-14 14:38:25 +11:00
Maikel Linke
2105c0d0ea Ignore master variants exporting to DFC 2023-03-14 14:38:24 +11:00
Maikel Linke
b8338fb9af Removing engine namespace from services
Services are usually not namespaced because they are part of the app.
This engine has an isolated namespace which means that we don't need to
separate with out own namespacing here.
2023-03-14 13:49:21 +11:00
Maikel Linke
a9c8d9f304 Configure host for dfc_provider engine globally
Passing the parameter all the time was pretty inconvenient.
2023-03-07 16:39:02 +11:00
David Cook
7b965718aa Authorise based on user's UID
And test to make sure the wrong user is not selected.
2022-11-25 16:14:25 +11:00
David Cook
ff9544e08b Allow AuthorizationControl to run without Warden
As explained in 36c44a5487, it's not normally good to change production code to make testing easier.
But this tiny change makes it more robust, and enables much simpler specs.
2022-11-25 16:01:42 +11:00
Maikel Linke
029c0afaa9 Verify token signature for authenticated login
We were just logging in any user without password or other verification
before. Now we verify the Keycloak signature and know that the person is
indeed logged in.
2022-11-25 14:49:36 +11:00
Maikel Linke
33ee03388f Add DFC product update action, not implemented 2022-11-25 14:49:36 +11:00
Maikel Linke
4d49266f0f Allow updates just with auth token
Rails usually requires an additional CSRF protection token but when it's
not present we ignore the user's session and use only the OIDC auth
token.
2022-11-25 14:49:36 +11:00
Maikel Linke
aea6f864d9 Update to DFC v1.6
I just replaced dfc: with dfc-b: where I found this key used in the
prototype. We may need to change more.
2022-11-25 14:49:36 +11:00
Maikel Linke
4cdb224434 Add missing rdfs prefix to DFC context 2022-11-25 14:49:36 +11:00
Maikel Linke
63c1cd7bff Remove invalid id attribute from DFC offer
This one is a bit confusing. The attribute changes throughout the
different versions of the ontology and the DFC examples are not in line
with the specification. WIP I guess.

The previous nil attribute failed JSON-LD validation and DFC examples
just contain the reference as I did it now. But I think that we will
need to update it again vor DFC-v1.7.
2022-11-25 14:49:36 +11:00
Maikel Linke
ee3ec15bc4 Update URL to DFC ontology 2022-11-25 14:49:36 +11:00
Maikel Linke
b9a43df7fe Include DFC version in API URL
And let the OFN app decide under which name to mount the DFC engine.
It simplifies the code and will make it more flexible to introduce other
versions in the future.
2022-11-25 14:49:36 +11:00
Maikel Linke
fd274447fe Simplify DFC authentication code 2022-11-25 14:49:36 +11:00
Maikel Linke
52a98989e0 Allow logged in users to access DFC API
It makes testing in development so much easier.
2022-11-25 14:49:36 +11:00
Maikel Linke
96193a27a4 Simplify DFC authorisation control
I want to add other ways to authenticate for easier testing and possibly
more integrations. It will be easier to just test if we got a user or
not instead of testing pre-conditions to that as well.
2022-11-25 14:49:36 +11:00
Maikel Linke
2630fde763 Update dfc_provider for Active Storage images 2022-11-25 14:49:36 +11:00
Maikel Linke
a501bc9687 Encapsulate dfc_provider in api routing
Move /api/v0/dfc_provider to /api/dfc_provider. Before it got redirected
to v0 which caused some errors.
2022-11-25 14:49:36 +11:00
François Turbelin
39bb25e959 Adjust supplied_products id before better data matching 2021-07-15 21:17:14 +02:00
François Turbelin
c4a7c05c05 Use check_enterprise filter in a better way 2021-07-14 14:59:19 +02:00
François Turbelin
9d1b059835 Fix typo in supplied_products_controller comment 2021-07-14 14:08:09 +02:00
François Turbelin
06c19641b4 Remove return on case 2021-06-22 20:44:51 +02:00
François Turbelin
bcd2790649 Fix failing spec 2021-06-17 09:18:05 +02:00
François Turbelin
1ef7247311 Use a service to fetch variants in the engine 2021-06-17 08:50:52 +02:00
François Turbelin
235a2574dc Add spec for SuppliedProduct serializer 2021-06-17 08:50:52 +02:00
François Turbelin
4dc07d9872 Add spec for CatalogItem serializer 2021-06-17 08:50:52 +02:00
François Turbelin
a87c46843c Factorize serializer code into Base inherited class 2021-06-17 08:50:52 +02:00