Commit Graph

73 Commits

Author SHA1 Message Date
Maikel Linke
28e17aff68 Fix DFC context in spec to resolve product types
The `dfc-b:hasType` value can only be parsed as object id if the context
contains:

```
    "dfc-b:hasType":{
      "@type":"@id"
    },
```

The standard context includes this and it's easier to use. Now that the
URIs of product types are correctly resolved, we don't need to
substitute the URI manually.

Also dropped an old unneeded spec for backwards compatibility.
2024-01-22 10:12:39 +11:00
Gaetan Craig-Riou
162fd4bef5 update documentation 2024-01-22 10:12:39 +11:00
Gaetan Craig-Riou
a2cb1f4c37 Update swagger documentation 2024-01-22 10:12:39 +11:00
Maikel Linke
af51177593 Update price and stock through the DFC API 2024-01-12 14:25:11 +11:00
Maikel Linke
8d6ae18fb6 Show Offers on the DFC API 2024-01-12 14:22:24 +11:00
Maikel Linke
4bac83dd83 Update variant name instead of product via DFC
A DFC SuppliedProduct relates to a Spree::Variant and when updating its
name we only want to change the name for that variant. Otherwise, when
we update the name of the product, it would update the name for all
variants and all the corresponding SuppliedProducts.
2024-01-12 14:22:24 +11:00
Gaetan Craig-Riou
92921c89d1 Add enpoint to delete enterprise from group
Plus documentation
2024-01-10 12:44:02 +11:00
Gaetan Craig-Riou
b90349e4c2 Add endpoint to add enterprise to a group
plus documentaion
2024-01-10 12:31:38 +11:00
Maikel Linke
eb03235295 Use full product and variant name on DFC API 2023-12-20 16:43:29 +11:00
Maikel Linke
6e34c41f42 Bump DFC taxonomies to v1.0.2
Finally replacing the last of the old DFC context URLs that are not
valid any more.
2023-11-16 15:52:31 +11:00
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
6266df5c76 Add long description to DFC Enterprise API 2023-11-15 14:59:15 +11:00
Maikel Linke
0a88e8b8ac Update API documentation 2023-11-09 16:17:11 +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
11ee4b30c2 Update Swagger documentation to include ofn:image 2023-11-08 13:57:35 +11: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
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
6316974146 Group DFC API operations by endpoint
Previously they were all in one long list called "default".
2023-09-11 14:57:38 +10:00
Maikel Linke
57b4f615e8 Fix DFC context in spec example 2023-08-31 17:06:20 +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
f5fb760128 Update Enterprise request spec
Check all the attributes supported by the 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
4872855471 Update DFC context to newest version
The new DFC Connector is based on the new DFC context which changed all
URLs of all data types.

There's also a better way to access semantic properties now.
2023-07-27 15:38:36 +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
d5c41980d6 Document example for updating SuppliedProduct 2023-07-03 13:44:57 +10:00
Maikel Linke
7dc6cb151d Include DFC context in spec example
The DFC Prototype does include the context while the output of the DFC
Connector refers to the URL of the published context. While that's more
efficient, it's also brittle because the context is updated from time to
time. That happened three days ago and working with the newly published
context breaks our integration until we get an updated version of the
DFC Connector containing the new URLs for datatypes.
2023-07-03 13:27:24 +10:00
Maikel Linke
811740c361 Correct OFN session cookie name
And improve the documentation in general.
2023-07-03 13:25:55 +10:00
Maikel Linke
7a51995aeb Respond with SuppliedProduct data when creating 2023-07-03 12:37:23 +10:00
Maikel Linke
d21e6f99bb Swaggerise CatalogItems spec 2023-06-28 14:11:50 +10:00
Maikel Linke
883e637545 Create deterministic test data for stable API docs
Otherwise the auto-generated Swagger file changes all the time without
code changes.
2023-06-28 13:50:54 +10:00
Maikel Linke
df29eaab98 Document DFC example body to create a product 2023-06-28 13:50:54 +10:00
Maikel Linke
db77d1591c Add test examples to DFC API documentation
In other API specs, you provide example values in the schema. So the
specs contain examples which can be used for the documentation. But
instead of defining example data separately, we can use the generated
data by the specs. This way we document real output and don't have to
double up on documentation.

Note that we don't have schema definitions for the DFC API yet. And it
wouldn't make sense to replicate the DFC Ontology manually in JSON
Schema for this purpose. The DFC Connector ensures already that we
comply with the ontology. But I hope that we can use a tool at some
point to generate JSON Schema from the DFC Ontology which would add more
detail to the Swagger docs, I think.
2023-06-28 13:50:54 +10:00
Maikel Linke
b14c9bdf4c Swaggerize SuppliedProduct spec 2023-06-28 13:50:54 +10:00
Maikel Linke
f0a5475563 Swaggerize Enterprise spec 2023-06-28 13:50:54 +10:00
Maikel Linke
494c5e78de Swaggerize Person spec
I chose the simplest spec first to demonstrate how it works. The UI at
/api-docs now shows this endpoint with two possible responses.

The docs are missing an example response which I hope to add later.
2023-06-28 13:50:54 +10:00
Maikel Linke
8368a6ccc9 Announce the new DFC endpoint
We need to declare in each spec file for which endpoint the spec is
because it was just choosing the first declared one by default. The
first one was v1 and now it's dfc-v1.7.
2023-06-28 13:50:54 +10:00