Commit Graph

25 Commits

Author SHA1 Message Date
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
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
7a51995aeb Respond with SuppliedProduct data when creating 2023-07-03 12:37:23 +10:00
Maikel Linke
5a4efdbce3 Separate DFC API swagger config
This allows us to run the specs separately to generate the
documentation. It's more efficient this way and the separate swagger doc
file is easier to read.

The engine-specific swagger helper also allows us to simplify the spec
files.

Added an exception to our styleguide because it's intended and useful to
have a complete (lengthy) description of the API in one block.
2023-07-03 12:37:23 +10:00
Maikel Linke
78d6d129e8 Simplify with extracted helper method 2023-06-28 14:11:50 +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
e065910d2d Merge pull request #10939 from Matt-Yorkley/master-variants
Remove master variants
2023-06-23 13:42:58 +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
Matt-Yorkley
3ef7d2c9ff Remove master variant from product 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
50ef06c973 Name DFC test data to clarify content
The DFC has several products like PhysicalProduct and SuppliedProduct.
Here we have a supplied product.
2023-05-28 10:39:08 +02:00
Maikel Linke
dde4ea9334 Convert CatalogItems controller spec to request spec 2023-05-28 10:39:08 +02:00
Maikel Linke
207a15e55c Convert SuppliedProducts controller spec to request spec 2023-05-28 10:39:08 +02:00
Maikel Linke
742468efd2 Convert EnterpriseController spec to request spec
Also testing request of unrelated enterprise instead of non-existing
enterprise because authorisation is important to test.
2023-05-28 10:39:08 +02:00
Maikel Linke
d338c61d2c Convert PersonsController spec request spec
It's much more realistic and also tests the routing and authentication.
Besides using real authentication I also improved the matchers.
2023-05-28 10:39:08 +02:00