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.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/app/controllers/concerns/spree/api/v3/admin/embed_permissions.rb +6 -1
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +10 -0
- data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +8 -4
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/store_controller.rb +23 -7
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +15 -5
- data/app/controllers/spree/api/v3/store/customers_controller.rb +1 -0
- data/app/controllers/spree/api/v3/store/store_controller.rb +25 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +20 -2
- data/app/serializers/spree/api/v3/admin/category_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/claim_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/collection_serializer.rb +1 -4
- data/app/serializers/spree/api/v3/admin/company_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/invitation_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/newsletter_subscriber_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/option_type_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/option_value_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +8 -2
- data/app/serializers/spree/api/v3/admin/payment_source_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +2 -1
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +4 -0
- data/app/serializers/spree/api/v3/admin/session_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +3 -4
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/base_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/category_serializer.rb +1 -4
- data/app/serializers/spree/api/v3/claim_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/collection_serializer.rb +1 -4
- data/app/serializers/spree/api/v3/company_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/credit_card_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/customer_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/delivery_method_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/line_item_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/media_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/option_type_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/option_value_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/order_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/payment_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/payment_source_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/product_serializer.rb +1 -4
- data/app/serializers/spree/api/v3/return_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +22 -1
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/seller_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/store_credit_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/store_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/variant_serializer.rb +1 -4
- data/app/services/spree/api/v3/request_schema.rb +15 -7
- data/config/routes.rb +5 -2
- data/lib/spree/api/agent_workflow_endpoints.rb +2 -2
- data/lib/spree/api/agent_write_schemas.rb +6 -6
- data/lib/spree/api/dependencies.rb +2 -2
- data/lib/spree/api/enum_types.rb +2 -1
- data/lib/spree/api/oauth.rb +40 -20
- data/lib/typelizer/open_enums.rb +22 -3
- data/openapi/admin.yaml +87631 -0
- data/openapi/store.yaml +25412 -0
- metadata +12 -7
data/lib/typelizer/open_enums.rb
CHANGED
|
@@ -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 = {
|
|
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
|