Maikel
7414b5cbc9
Merge pull request #11397 from rioug/11331-add-required-field-dcf-enterprise
...
Add required enterprise fields to DFC API
2023-08-25 11:44:49 +10:00
Maikel
56f4eca79e
Update engines/dfc_provider/app/controllers/dfc_provider/addresses_controller.rb
...
Fix type in comment
Co-authored-by: David Cook <david@redcliffs.net >
2023-08-25 11:31:00 +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
Neal Chambers
06e217c527
Safely autocorrect Rails/WhereNot
...
Inspecting 1483 files
........................................................................................................................C..................................................................................................................C...........CC.C..........................................C......C..........C.........................C......................CC..........C........................................................................................................................C.......................................................................................................C........................................................C...........................................................................................................................................C......................................C.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Offenses:
app/controllers/spree/admin/products_controller.rb:183:11: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { import_date: nil }) instead of manually constructing negated SQL in where.
where('spree_variants.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:26: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
scope_with_deleted.where('id != ?', id)
^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:40: C: [Corrected] Style/HashSyntax: Omit the hash value.
scope_with_deleted.where.not(id: id)
^^
app/models/enterprise.rb:152:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: ready_enterprises }) instead of manually constructing negated SQL in where.
where("enterprises.id NOT IN (?)", ready_enterprises)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:158:31: C: [Corrected] Rails/WhereNot: Use where.not(sells: 'none') instead of manually constructing negated SQL in where.
scope :is_distributor, -> { where('sells != ?', 'none') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:479:17: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
dups = dups.where('id != ?', id) unless new_record?
^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:534:43: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: self }) instead of manually constructing negated SQL in where.
enterprises = owner.owned_enterprises.where('enterprises.id != ?', self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:583:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: id }) instead of manually constructing negated SQL in where.
where('enterprises.id != ?', id).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_fee.rb:40:24: C: [Corrected] Rails/WhereNot: Use where.not(spree_calculators: { type: PER_ORDER_CALCULATORS }) instead of manually constructing negated SQL in where.
joins(:calculator).where('spree_calculators.type NOT IN (?)', PER_ORDER_CALCULATORS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_relationship.rb:78:19: C: [Corrected] Rails/WhereNot: Use where.not(name: perms) instead of manually constructing negated SQL in where.
permissions.where('name NOT IN (?)', perms).destroy_all
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/product_import/inventory_reset_strategy.rb:27:16: C: [Corrected] Rails/WhereNot: Use where.not(id: excluded_items_ids) instead of manually constructing negated SQL in where.
relation.where('id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/proxy_order.rb:19:25: C: [Corrected] Rails/WhereNot: Use where.not(proxy_orders: { canceled_at: nil }) instead of manually constructing negated SQL in where.
scope :canceled, -> { where('proxy_orders.canceled_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/credit_card.rb:26:39: C: [Corrected] Rails/WhereNot: Use where.not(gateway_customer_profile_id: nil) instead of manually constructing negated SQL in where.
scope :with_payment_profile, -> { where('gateway_customer_profile_id IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/product.rb:166:9: C: [Corrected] Rails/WhereNot: Use where.not(order_cycles: { id: nil }) instead of manually constructing negated SQL in where.
where('order_cycles.id IS NOT NULL')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:94:30: C: [Corrected] Rails/WhereNot: Use where.not(deleted_at: nil) instead of manually constructing negated SQL in where.
scope :deleted, lambda { where('deleted_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:165:43: C: [Corrected] Rails/WhereNot: Use where.not(spree_prices: { amount: nil }) instead of manually constructing negated SQL in where.
where('spree_prices.amount IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:19: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
Spree::Zone.where('id != ?', id).update_all(default_tax: false) if default_tax
^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:33: C: [Corrected] Style/HashSyntax: Omit the hash value.
Spree::Zone.where.not(id: id).update_all(default_tax: false) if default_tax
^^
app/models/variant_override.rb:32:7: C: [Corrected] Rails/WhereNot: Use where.not(variant_overrides: { import_date: nil }) instead of manually constructing negated SQL in where.
where('variant_overrides.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/services/cap_quantity.rb:45:22: C: [Corrected] Rails/WhereNot: Use where.not(variant_id: available_variants_for.select(&:id)) instead of manually constructing negated SQL in where.
order.line_items.where('variant_id NOT IN (?)', available_variants_for.select(&:id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/catalog/app/services/catalog/product_import/products_reset_strategy.rb:32:18: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { id: excluded_items_ids }) instead of manually constructing negated SQL in where.
relation.where('spree_variants.id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb:78:18: C: [Corrected] Rails/WhereNot: Use where.not(order_cycle_id: order_cycle_ids) instead of manually constructing negated SQL in where.
orphaned.where('order_cycle_id NOT IN (?)', order_cycle_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:27:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: nil }) instead of manually constructing negated SQL in where.
.where("enterprises.id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:39:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprise_id: nil) instead of manually constructing negated SQL in where.
.where("enterprise_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:40:14: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/data/anonymize_data.rake:50:16: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
Customer.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 26 offenses detected, 26 offenses corrected
2023-08-20 12:33:43 +09:00
Neal Chambers
871a8e6f2c
Fix Rails/Blank
2023-08-17 16:42:46 +09:00
Neal Chambers
b78bbd2629
Fix Rails/ApplicationController
2023-08-17 16:42:41 +09:00
Maikel
fd7b00ac7f
Merge pull request #11323 from mkllnk/dfc-import-context
...
Use known, statically cached DFC context
2023-08-16 11:35:57 +10:00
Matt-Yorkley
a712eac333
Update shipping_category in /lib and /engines
2023-08-14 21:02:47 +01:00
Konrad
c3414143e6
Merge pull request #11222 from Matt-Yorkley/checkout-controller
...
Reduce controller size
2023-08-10 23:28:57 +02:00
Maikel
b50fa216eb
Merge pull request #11117 from rioug/10857-voucher-error-moving-between-summary-and-cart-take2
...
[vouchers] error moving between summary and cart pages
2023-08-09 11:14:52 +10:00
Matt-Yorkley
82b8bb74a1
Remove #before_save_hook method and clarify it's intention
2023-08-04 08:43:15 +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
1daed8c29c
Always load our DFC Connector patches
...
We want to use the preloaded context when exporting documents as well.
2023-08-03 16:45:30 +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
Neal Chambers
a97e208881
Safely autocorrect Layout/MultilineBlockLayout
...
Inspecting 1479 files
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Offenses:
engines/order_management/app/services/order_management/subscriptions/validator.rb:101:9: C: [Corrected] Layout/IndentationWidth: Use 2 (not 12) spaces for indentation.
sli.quantity > 0 && !sli.marked_for_destruction?
^^^^^^^^^^^^
engines/order_management/app/services/order_management/subscriptions/validator.rb:101:11: C: [Corrected] Layout/MultilineBlockLayout: Block argument expression is not on the same line as the block start.
|sli| sli.quantity > 0 && !sli.marked_for_destruction?
^^^^^
1479 files inspected, 2 offenses detected, 2 offenses corrected
2023-07-27 09:58:05 +10:00
Maikel Linke
54f39668ba
Remove unused, outdated dependency declarations
...
The Gemfile of the main app is used.
2023-07-21 14:13:27 +10:00
Maikel Linke
a01aa8849c
Add Ruby version to engines for Rubocop
...
> This ensures that RuboCop is using the same Ruby version as the gem.
https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Gemspec/RequiredRubyVersion
2023-07-21 14:13:26 +10:00
Gaetan Craig-Riou
366cca7984
Prevent voucher adjustment from bein updated when update is called
2023-07-14 14:47:03 +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
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
7b9e4f6914
Move test files to own directory
2023-07-03 13:25:55 +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
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
400d087789
Merge pull request #11133 from mkllnk/dfc-api-specs
...
OFN DFC API documenation in OpenAPI format generated with Rswag
2023-07-03 10:53:40 +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 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
014fb69d4b
Merge pull request #10964 from macanudo527/fix_linelength_bundle1
...
Fix Layout/LineLength - Bundle 1
2023-06-26 12:10:39 +10:00
Maikel
e065910d2d
Merge pull request #10939 from Matt-Yorkley/master-variants
...
Remove master variants
2023-06-23 13:42:58 +10:00
Neal Chambers
1e4034534c
Fix Layout/LineLength
2023-06-23 09:08:04 +09:00
Maikel Linke
08a06d21fa
Allow access to DFC API with OFN API token
2023-06-22 16:58:12 +10:00
Maikel Linke
82fc6a2a9d
Prepare spec to authenticate with other means
...
I want to add OFN API key support.
2023-06-22 16:27:04 +10:00
Maikel Linke
a9f8c7c4ab
Update DFC API docs, describe all endpoints
2023-06-19 16:20:35 +10:00