spree_api 6.0.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/app/controllers/concerns/spree/api/v3/admin/embed_permissions.rb +6 -1
  4. data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +10 -0
  5. data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +8 -4
  6. data/app/controllers/spree/api/v3/admin/sellers_controller.rb +1 -1
  7. data/app/controllers/spree/api/v3/admin/store_controller.rb +23 -7
  8. data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +15 -5
  9. data/app/controllers/spree/api/v3/store/customers_controller.rb +1 -0
  10. data/app/controllers/spree/api/v3/store/store_controller.rb +25 -0
  11. data/app/serializers/spree/api/v3/address_serializer.rb +2 -0
  12. data/app/serializers/spree/api/v3/admin/address_serializer.rb +2 -0
  13. data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +20 -2
  14. data/app/serializers/spree/api/v3/admin/category_serializer.rb +1 -3
  15. data/app/serializers/spree/api/v3/admin/claim_serializer.rb +2 -0
  16. data/app/serializers/spree/api/v3/admin/collection_serializer.rb +1 -4
  17. data/app/serializers/spree/api/v3/admin/company_serializer.rb +2 -0
  18. data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +2 -0
  19. data/app/serializers/spree/api/v3/admin/customer_serializer.rb +2 -0
  20. data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +2 -0
  21. data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +1 -0
  22. data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +2 -0
  23. data/app/serializers/spree/api/v3/admin/invitation_serializer.rb +1 -1
  24. data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +1 -0
  25. data/app/serializers/spree/api/v3/admin/media_serializer.rb +2 -0
  26. data/app/serializers/spree/api/v3/admin/newsletter_subscriber_serializer.rb +2 -0
  27. data/app/serializers/spree/api/v3/admin/option_type_serializer.rb +2 -0
  28. data/app/serializers/spree/api/v3/admin/option_value_serializer.rb +2 -0
  29. data/app/serializers/spree/api/v3/admin/order_serializer.rb +2 -0
  30. data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +2 -0
  31. data/app/serializers/spree/api/v3/admin/payment_serializer.rb +8 -2
  32. data/app/serializers/spree/api/v3/admin/payment_source_serializer.rb +2 -0
  33. data/app/serializers/spree/api/v3/admin/product_serializer.rb +1 -3
  34. data/app/serializers/spree/api/v3/admin/return_serializer.rb +2 -0
  35. data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +2 -1
  36. data/app/serializers/spree/api/v3/admin/seller_serializer.rb +4 -0
  37. data/app/serializers/spree/api/v3/admin/session_serializer.rb +17 -0
  38. data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +2 -0
  39. data/app/serializers/spree/api/v3/admin/store_serializer.rb +3 -4
  40. data/app/serializers/spree/api/v3/admin/variant_serializer.rb +1 -3
  41. data/app/serializers/spree/api/v3/base_serializer.rb +28 -0
  42. data/app/serializers/spree/api/v3/category_serializer.rb +1 -4
  43. data/app/serializers/spree/api/v3/claim_serializer.rb +2 -0
  44. data/app/serializers/spree/api/v3/collection_serializer.rb +1 -4
  45. data/app/serializers/spree/api/v3/company_serializer.rb +2 -0
  46. data/app/serializers/spree/api/v3/credit_card_serializer.rb +2 -0
  47. data/app/serializers/spree/api/v3/customer_serializer.rb +2 -0
  48. data/app/serializers/spree/api/v3/delivery_method_serializer.rb +2 -0
  49. data/app/serializers/spree/api/v3/fulfillment_serializer.rb +2 -0
  50. data/app/serializers/spree/api/v3/gift_card_serializer.rb +1 -0
  51. data/app/serializers/spree/api/v3/line_item_serializer.rb +2 -0
  52. data/app/serializers/spree/api/v3/media_serializer.rb +2 -0
  53. data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -0
  54. data/app/serializers/spree/api/v3/option_type_serializer.rb +2 -0
  55. data/app/serializers/spree/api/v3/option_value_serializer.rb +2 -0
  56. data/app/serializers/spree/api/v3/order_serializer.rb +2 -0
  57. data/app/serializers/spree/api/v3/payment_method_serializer.rb +2 -0
  58. data/app/serializers/spree/api/v3/payment_serializer.rb +3 -1
  59. data/app/serializers/spree/api/v3/payment_source_serializer.rb +2 -0
  60. data/app/serializers/spree/api/v3/product_serializer.rb +1 -4
  61. data/app/serializers/spree/api/v3/return_serializer.rb +2 -0
  62. data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +22 -1
  63. data/app/serializers/spree/api/v3/seller/profile_serializer.rb +1 -1
  64. data/app/serializers/spree/api/v3/seller_serializer.rb +2 -0
  65. data/app/serializers/spree/api/v3/store_credit_serializer.rb +2 -0
  66. data/app/serializers/spree/api/v3/store_serializer.rb +16 -0
  67. data/app/serializers/spree/api/v3/variant_serializer.rb +1 -4
  68. data/app/services/spree/api/v3/request_schema.rb +15 -7
  69. data/config/routes.rb +5 -2
  70. data/lib/spree/api/agent_workflow_endpoints.rb +2 -2
  71. data/lib/spree/api/agent_write_schemas.rb +6 -6
  72. data/lib/spree/api/dependencies.rb +2 -2
  73. data/lib/spree/api/enum_types.rb +2 -1
  74. data/lib/spree/api/oauth.rb +40 -20
  75. data/lib/typelizer/open_enums.rb +22 -3
  76. data/openapi/admin.yaml +87631 -0
  77. data/openapi/store.yaml +25412 -0
  78. metadata +12 -7
@@ -22,7 +22,7 @@ module Typelizer
22
22
  CLOSED_TYPE_NAMES = %w[CountryCode CurrencyCode LocaleCode WeightUnit DimensionUnit].freeze
23
23
 
24
24
  CLOSED_LIST_NAMES = %w[
25
- ApiKeyType CaptureMethod CatalogAssignableType CatalogPriceSource ClaimResolution
25
+ AdminUserStatus ApiKeyType CaptureMethod CatalogAssignableType CatalogPriceSource ClaimResolution
26
26
  CollectionRuleMatchPolicy CollectionSortOrder CommissionKind CompanyInvitationStatus CompanyKind
27
27
  ConsentSource DataRequestKind DeliveryStatus DeliveryZoneMemberType DiscountKind DocumentNumberFormat
28
28
  EmailFont EmailTemplateKind FileUploadVisibility FulfillmentType MatchPolicy MediaType OptionTypeKind
@@ -34,6 +34,25 @@ module Typelizer
34
34
  TaxRemittance UnitSystem
35
35
  ].freeze
36
36
 
37
+ # Open lists whose values are suggestions rather than built-ins an
38
+ # extension adds to, described as such wherever the list is published.
39
+ DESCRIPTIONS = {
40
+ 'TimeZone' => 'Common IANA time zones; any other IANA time zone identifier is accepted too.'
41
+ }.freeze
42
+
43
+ # @param name [String, nil] a list's `enum_type_name`
44
+ # @return [String, nil] what the list's values are, when they are not built-ins
45
+ def self.description(name)
46
+ DESCRIPTIONS[name]
47
+ end
48
+
49
+ # @param schema [Hash] the schema of any value in the list
50
+ # @param values [Array<String>] the values to suggest
51
+ # @return [Hash] a schema suggesting the values while accepting any other
52
+ def self.open_schema(schema, values)
53
+ { anyOf: [schema.merge(enum: values), schema] }
54
+ end
55
+
37
56
  # @param name [String, nil] a list's `enum_type_name`
38
57
  # @return [Boolean] whether the list is closed: no value outside it is valid
39
58
  def self.closed?(name)
@@ -63,7 +82,7 @@ module Typelizer
63
82
  return super unless property.enum_type_name && property.enum.is_a?(Array) && !property.multi
64
83
  return super if OpenEnums.closed?(property.enum_type_name)
65
84
 
66
- open = { anyOf: [{ type: :string, enum: property.enum.compact }, { type: :string }] }
85
+ open = OpenEnums.open_schema({ type: :string }, property.enum.compact)
67
86
  # OpenAPI 3.0 ignores `nullable` beside `anyOf`, which is where
68
87
  # Typelizer puts it, so the free-string branch carries it instead.
69
88
  if property.nullable && !v31?(openapi_version)
@@ -72,7 +91,7 @@ module Typelizer
72
91
  apply_nullable(open, property, openapi_version: openapi_version)
73
92
  end
74
93
  apply_metadata(open, property)
75
- open[:description] ||= OPEN_ENUM_DESCRIPTION
94
+ open[:description] ||= OpenEnums.description(property.enum_type_name) || OPEN_ENUM_DESCRIPTION
76
95
  open
77
96
  end
78
97
  end