spree_api 3.7.0.rc1 → 3.7.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +2 -2
- data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +80 -0
- data/app/controllers/spree/api/v2/storefront/account_controller.rb +1 -1
- data/app/serializers/spree/v2/storefront/address_serializer.rb +2 -1
- data/app/serializers/spree/v2/storefront/cart_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/credit_card_serializer.rb +13 -0
- data/app/serializers/spree/v2/storefront/line_item_serializer.rb +1 -0
- data/app/serializers/spree/v2/storefront/option_type_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/option_value_serializer.rb +3 -1
- data/app/serializers/spree/v2/storefront/payment_serializer.rb +3 -0
- data/app/serializers/spree/v2/storefront/store_credit_event_serializer.rb +15 -0
- data/app/serializers/spree/v2/storefront/store_credit_serializer.rb +17 -0
- data/app/serializers/spree/v2/storefront/store_credit_type_serializer.rb +11 -0
- data/app/serializers/spree/v2/storefront/user_serializer.rb +19 -1
- data/app/serializers/spree/v2/storefront/variant_serializer.rb +1 -2
- data/config/routes.rb +1 -0
- data/docs/v2/storefront/index.yaml +251 -148
- data/lib/spree/api/engine.rb +4 -0
- data/spree_api.gemspec +1 -1
- metadata +11 -8
- data/app/serializers/spree/v2/storefront/account/credit_card_serializer.rb +0 -16
- data/app/serializers/spree/v2/storefront/account_serializer.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27ba29a8ab5de5c7606f6707d735c73063ee4525961d8e22906b9145af89a9de
|
4
|
+
data.tar.gz: 4cc4d78e86ac737ce57d57c27a72f9759038edd6196b9315debdd9dda0cdc31f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fb141c57d7361926931e1a812273bbbee9f632fa2a8ff0755229b1abd0dfedcd36f504676516410f136190de522415c0f8e2497ad93936a4d774a67fa0c1fff
|
7
|
+
data.tar.gz: c8f51c67395b4b68133b856e9844b216cbfed071d0de7a4ae0a7a4053e4ac0053bfd5ba30fc95e46edf1532a3be220e951ae06c90f4b8700c574e2bdaca4b703
|
@@ -23,8 +23,8 @@ module Spree
|
|
23
23
|
def dependencies
|
24
24
|
{
|
25
25
|
resource_finder: Spree::CreditCards::Find,
|
26
|
-
collection_serializer: Spree::V2::Storefront::
|
27
|
-
resource_serializer: Spree::V2::Storefront::
|
26
|
+
collection_serializer: Spree::V2::Storefront::CreditCardSerializer,
|
27
|
+
resource_serializer: Spree::V2::Storefront::CreditCardSerializer
|
28
28
|
}
|
29
29
|
end
|
30
30
|
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Spree
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
module Storefront
|
5
|
+
module Account
|
6
|
+
class OrdersController < ::Spree::Api::V2::BaseController
|
7
|
+
include Spree::Api::V2::CollectionOptionsHelpers
|
8
|
+
before_action :require_spree_current_user
|
9
|
+
|
10
|
+
def index
|
11
|
+
render_serialized_payload { serialize_collection(paginated_collection) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def show
|
15
|
+
spree_authorize! :show, resource
|
16
|
+
|
17
|
+
render_serialized_payload { serialize_resource(resource) }
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def paginated_collection
|
23
|
+
dependencies[:collection_paginator].new(sorted_collection, params).call
|
24
|
+
end
|
25
|
+
|
26
|
+
def sorted_collection
|
27
|
+
dependencies[:collection_sorter].new(collection, params).call
|
28
|
+
end
|
29
|
+
|
30
|
+
def collection
|
31
|
+
dependencies[:collection_finder].new(user: spree_current_user).execute
|
32
|
+
end
|
33
|
+
|
34
|
+
def resource
|
35
|
+
resource = dependencies[:resource_finder].new(user: spree_current_user, number: params[:id]).execute.take
|
36
|
+
raise ActiveRecord::RecordNotFound if resource.nil?
|
37
|
+
|
38
|
+
resource
|
39
|
+
end
|
40
|
+
|
41
|
+
def serialize_collection(collection)
|
42
|
+
dependencies[:collection_serializer].new(
|
43
|
+
collection,
|
44
|
+
collection_options(collection)
|
45
|
+
).serializable_hash
|
46
|
+
end
|
47
|
+
|
48
|
+
def serialize_resource(resource)
|
49
|
+
dependencies[:resource_serializer].new(
|
50
|
+
resource,
|
51
|
+
include: resource_includes,
|
52
|
+
sparse_fields: sparse_fields
|
53
|
+
).serializable_hash
|
54
|
+
end
|
55
|
+
|
56
|
+
def dependencies
|
57
|
+
{
|
58
|
+
collection_sorter: Spree::Orders::Sort,
|
59
|
+
resource_finder: Spree::Orders::FindComplete,
|
60
|
+
resource_serializer: Spree::V2::Storefront::CartSerializer,
|
61
|
+
collection_serializer: Spree::V2::Storefront::CartSerializer,
|
62
|
+
collection_finder: Spree::Orders::FindComplete,
|
63
|
+
collection_paginator: Spree::Shared::Paginate
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
def collection_options(collection)
|
68
|
+
{
|
69
|
+
links: collection_links(collection),
|
70
|
+
meta: collection_meta(collection),
|
71
|
+
include: resource_includes,
|
72
|
+
sparse_fields: sparse_fields
|
73
|
+
}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -5,9 +5,10 @@ module Spree
|
|
5
5
|
set_type :address
|
6
6
|
|
7
7
|
attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :phone, :state_name,
|
8
|
-
:company, :country_name, :country_iso3
|
8
|
+
:company, :country_name, :country_iso3, :country_iso
|
9
9
|
|
10
10
|
attribute :state_code, &:state_abbr
|
11
|
+
attribute :state_name, &:state_name_text
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
set_type :cart
|
6
6
|
|
7
7
|
attributes :number, :item_total, :total, :ship_total, :adjustment_total, :created_at,
|
8
|
-
:updated_at, :included_tax_total, :additional_tax_total, :display_additional_tax_total,
|
8
|
+
:updated_at, :completed_at, :included_tax_total, :additional_tax_total, :display_additional_tax_total,
|
9
9
|
:display_included_tax_total, :tax_total, :currency, :state, :token, :email,
|
10
10
|
:display_item_total, :display_ship_total, :display_adjustment_total, :display_tax_total,
|
11
11
|
:promo_total, :display_promo_total, :item_count, :special_instructions, :display_total
|
@@ -7,6 +7,7 @@ module Spree
|
|
7
7
|
attributes :name, :quantity, :price, :slug, :options_text, :currency,
|
8
8
|
:display_price, :total, :display_total, :adjustment_total,
|
9
9
|
:display_adjustment_total, :additional_tax_total,
|
10
|
+
:discounted_amount, :display_discounted_amount,
|
10
11
|
:display_additional_tax_total, :promo_total, :display_promo_total,
|
11
12
|
:included_tax_total, :display_included_tax_total
|
12
13
|
|
@@ -4,6 +4,9 @@ module Spree
|
|
4
4
|
class PaymentSerializer < BaseSerializer
|
5
5
|
set_type :payment
|
6
6
|
|
7
|
+
has_one :source, polymorphic: true
|
8
|
+
has_one :payment_method
|
9
|
+
|
7
10
|
attributes :amount, :response_code, :number, :cvv_response_code, :cvv_response_message,
|
8
11
|
:payment_method_id, :payment_method_name
|
9
12
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Spree
|
2
|
+
module V2
|
3
|
+
module Storefront
|
4
|
+
class StoreCreditEventSerializer < BaseSerializer
|
5
|
+
set_type :store_credit_event
|
6
|
+
|
7
|
+
attributes :action, :amount, :user_total_amount, :created_at
|
8
|
+
|
9
|
+
attribute :order_number do |object|
|
10
|
+
object.order&.number
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spree
|
2
|
+
module V2
|
3
|
+
module Storefront
|
4
|
+
class StoreCreditSerializer < BaseSerializer
|
5
|
+
set_type :store_credit
|
6
|
+
|
7
|
+
belongs_to :category
|
8
|
+
has_many :store_credit_events
|
9
|
+
belongs_to :credit_type,
|
10
|
+
id_method_name: :type_id,
|
11
|
+
serializer: :store_credit_type
|
12
|
+
|
13
|
+
attributes :amount, :amount_used, :created_at
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -2,9 +2,27 @@ module Spree
|
|
2
2
|
module V2
|
3
3
|
module Storefront
|
4
4
|
class UserSerializer < BaseSerializer
|
5
|
-
set_type
|
5
|
+
set_type :user
|
6
6
|
|
7
7
|
attributes :email
|
8
|
+
|
9
|
+
attribute :store_credits, &:total_available_store_credit
|
10
|
+
|
11
|
+
attribute :completed_orders do |object|
|
12
|
+
object.orders.complete.count
|
13
|
+
end
|
14
|
+
|
15
|
+
has_one :default_billing_address,
|
16
|
+
id_method_name: :bill_address_id,
|
17
|
+
object_method_name: :bill_address,
|
18
|
+
record_type: :address,
|
19
|
+
serializer: :address
|
20
|
+
|
21
|
+
has_one :default_shipping_address,
|
22
|
+
id_method_name: :ship_address_id,
|
23
|
+
object_method_name: :ship_address,
|
24
|
+
record_type: :address,
|
25
|
+
serializer: :address
|
8
26
|
end
|
9
27
|
end
|
10
28
|
end
|
@@ -5,8 +5,7 @@ module Spree
|
|
5
5
|
set_type :variant
|
6
6
|
|
7
7
|
attributes :name, :sku, :price, :currency, :display_price, :weight, :height,
|
8
|
-
:width, :depth, :is_master, :options_text, :slug, :description
|
9
|
-
:track_inventory
|
8
|
+
:width, :depth, :is_master, :options_text, :slug, :description
|
10
9
|
|
11
10
|
attribute :purchasable, &:purchasable?
|
12
11
|
attribute :in_stock, &:in_stock?
|
data/config/routes.rb
CHANGED
@@ -153,6 +153,7 @@ Spree::Core::Engine.add_routes do
|
|
153
153
|
|
154
154
|
namespace :account do
|
155
155
|
resources :credit_cards, controller: :credit_cards, only: %i[index show]
|
156
|
+
resources :orders, controller: :orders, only: %i[index show]
|
156
157
|
end
|
157
158
|
|
158
159
|
resources :countries, only: %i[index]
|
@@ -90,6 +90,50 @@ paths:
|
|
90
90
|
- $ref: '#/components/parameters/SparseFieldsParam'
|
91
91
|
security:
|
92
92
|
- bearerAuth: []
|
93
|
+
'/account/orders':
|
94
|
+
get:
|
95
|
+
description: Returns Orders placed by the User. Only completed ones.
|
96
|
+
tags:
|
97
|
+
- Account
|
98
|
+
operationId: 'Completed Orders'
|
99
|
+
responses:
|
100
|
+
'200':
|
101
|
+
description: Listing user completed orders.
|
102
|
+
content:
|
103
|
+
application/json:
|
104
|
+
schema:
|
105
|
+
$ref: '#/components/schemas/CartList'
|
106
|
+
'403':
|
107
|
+
$ref: '#/components/responses/403Forbidden'
|
108
|
+
parameters:
|
109
|
+
- $ref: '#/components/parameters/CartIncludeParam'
|
110
|
+
- $ref: '#/components/parameters/SparseFieldsParam'
|
111
|
+
- $ref: '#/components/parameters/PageParam'
|
112
|
+
- $ref: '#/components/parameters/PerPageParam'
|
113
|
+
security:
|
114
|
+
- bearerAuth: []
|
115
|
+
'/account/orders/{number}':
|
116
|
+
get:
|
117
|
+
description: >-
|
118
|
+
Return the User's completed Order
|
119
|
+
tags:
|
120
|
+
- Account
|
121
|
+
operationId: 'Completed User Order'
|
122
|
+
responses:
|
123
|
+
'200':
|
124
|
+
description: Listing user completed order.
|
125
|
+
content:
|
126
|
+
application/json:
|
127
|
+
schema:
|
128
|
+
$ref: '#/components/schemas/Cart'
|
129
|
+
'403':
|
130
|
+
$ref: '#/components/responses/403Forbidden'
|
131
|
+
parameters:
|
132
|
+
- $ref: '#/components/parameters/OrderParam'
|
133
|
+
- $ref: '#/components/parameters/CartIncludeParam'
|
134
|
+
- $ref: '#/components/parameters/SparseFieldsParam'
|
135
|
+
security:
|
136
|
+
- bearerAuth: []
|
93
137
|
'/cart':
|
94
138
|
post:
|
95
139
|
description: >-
|
@@ -363,7 +407,7 @@ paths:
|
|
363
407
|
phone: '3014445002',
|
364
408
|
zipcode: '20814',
|
365
409
|
state_name: 'MD',
|
366
|
-
|
410
|
+
country_iso: 'US'
|
367
411
|
}
|
368
412
|
},
|
369
413
|
ship_address_attributes: {
|
@@ -375,7 +419,7 @@ paths:
|
|
375
419
|
phone: '3014445002',
|
376
420
|
zipcode: '20814',
|
377
421
|
state_name: 'MD',
|
378
|
-
|
422
|
+
country_iso: 'US'
|
379
423
|
}
|
380
424
|
}
|
381
425
|
}
|
@@ -1015,149 +1059,12 @@ components:
|
|
1015
1059
|
properties:
|
1016
1060
|
data:
|
1017
1061
|
type: object
|
1062
|
+
$ref: '#/components/schemas/CartAttributesWithRelationships'
|
1018
1063
|
required:
|
1019
1064
|
- id
|
1020
1065
|
- type
|
1021
1066
|
- attributes
|
1022
1067
|
- relationships
|
1023
|
-
properties:
|
1024
|
-
id:
|
1025
|
-
type: string
|
1026
|
-
example: '1'
|
1027
|
-
type:
|
1028
|
-
type: string
|
1029
|
-
default: 'cart'
|
1030
|
-
attributes:
|
1031
|
-
type: object
|
1032
|
-
properties:
|
1033
|
-
number:
|
1034
|
-
type: string
|
1035
|
-
example: 'R123456789'
|
1036
|
-
email:
|
1037
|
-
type: string
|
1038
|
-
example: 'spree@example.com'
|
1039
|
-
item_total:
|
1040
|
-
type: string
|
1041
|
-
example: '19.99'
|
1042
|
-
display_item_total:
|
1043
|
-
type: string
|
1044
|
-
example: '$19.99'
|
1045
|
-
total:
|
1046
|
-
type: string
|
1047
|
-
example: '29.99'
|
1048
|
-
display_total:
|
1049
|
-
type: string
|
1050
|
-
example: '$29.99'
|
1051
|
-
ship_total:
|
1052
|
-
type: string
|
1053
|
-
example: '0.0'
|
1054
|
-
display_ship_total:
|
1055
|
-
type: string
|
1056
|
-
example: '$19.99'
|
1057
|
-
adjustment_total:
|
1058
|
-
type: string
|
1059
|
-
example: '10.0'
|
1060
|
-
display_adjustment_total:
|
1061
|
-
type: string
|
1062
|
-
example: '$10.00'
|
1063
|
-
promo_total:
|
1064
|
-
type: string
|
1065
|
-
example: '-10.0'
|
1066
|
-
display_promo_total:
|
1067
|
-
type: string
|
1068
|
-
example: '-$10.00'
|
1069
|
-
created_at:
|
1070
|
-
$ref: '#/components/schemas/Timestamp'
|
1071
|
-
updated_at:
|
1072
|
-
$ref: '#/components/schemas/Timestamp'
|
1073
|
-
included_tax_total:
|
1074
|
-
type: string
|
1075
|
-
example: '5.00'
|
1076
|
-
additional_tax_total:
|
1077
|
-
type: string
|
1078
|
-
example: '5.0'
|
1079
|
-
display_additional_tax_total:
|
1080
|
-
type: string
|
1081
|
-
example: '$5.00'
|
1082
|
-
display_included_tax_total:
|
1083
|
-
type: string
|
1084
|
-
example: '$5.00'
|
1085
|
-
tax_total:
|
1086
|
-
type: string
|
1087
|
-
example: '10.0'
|
1088
|
-
display_tax_total:
|
1089
|
-
type: string
|
1090
|
-
example: '$10.00'
|
1091
|
-
item_count:
|
1092
|
-
type: number
|
1093
|
-
example: 2
|
1094
|
-
description: 'Total quantity number of all items added to the Cart'
|
1095
|
-
special_instructions:
|
1096
|
-
type: string
|
1097
|
-
example: 'Please wrap it as a gift'
|
1098
|
-
description: 'Message added by the Customer'
|
1099
|
-
currency:
|
1100
|
-
type: string
|
1101
|
-
example: 'USD'
|
1102
|
-
state:
|
1103
|
-
type: string
|
1104
|
-
example: 'address'
|
1105
|
-
description: 'State of the Cart in the Checkout flow'
|
1106
|
-
token:
|
1107
|
-
type: string
|
1108
|
-
example: abcdef123456
|
1109
|
-
description: >-
|
1110
|
-
Used for authorizing any action for an order within Spree’s
|
1111
|
-
API
|
1112
|
-
relationships:
|
1113
|
-
type: object
|
1114
|
-
properties:
|
1115
|
-
line_items:
|
1116
|
-
type: object
|
1117
|
-
properties:
|
1118
|
-
data:
|
1119
|
-
type: array
|
1120
|
-
items:
|
1121
|
-
$ref: '#/components/schemas/Relation'
|
1122
|
-
promotions:
|
1123
|
-
type: object
|
1124
|
-
properties:
|
1125
|
-
data:
|
1126
|
-
type: array
|
1127
|
-
items:
|
1128
|
-
$ref: '#/components/schemas/Relation'
|
1129
|
-
variants:
|
1130
|
-
type: object
|
1131
|
-
properties:
|
1132
|
-
data:
|
1133
|
-
type: array
|
1134
|
-
items:
|
1135
|
-
$ref: '#/components/schemas/Relation'
|
1136
|
-
user:
|
1137
|
-
type: object
|
1138
|
-
properties:
|
1139
|
-
data:
|
1140
|
-
$ref: '#/components/schemas/Relation'
|
1141
|
-
billing_address:
|
1142
|
-
type: object
|
1143
|
-
properties:
|
1144
|
-
data:
|
1145
|
-
$ref: '#/components/schemas/Relation'
|
1146
|
-
shipping_address:
|
1147
|
-
type: object
|
1148
|
-
properties:
|
1149
|
-
data:
|
1150
|
-
$ref: '#/components/schemas/Relation'
|
1151
|
-
payments:
|
1152
|
-
type: object
|
1153
|
-
properties:
|
1154
|
-
data:
|
1155
|
-
$ref: '#/components/schemas/Relation'
|
1156
|
-
shipments:
|
1157
|
-
type: object
|
1158
|
-
properties:
|
1159
|
-
data:
|
1160
|
-
$ref: '#/components/schemas/Relation'
|
1161
1068
|
included:
|
1162
1069
|
type: array
|
1163
1070
|
items:
|
@@ -1169,10 +1076,172 @@ components:
|
|
1169
1076
|
- $ref: '#/components/schemas/User'
|
1170
1077
|
- $ref: '#/components/schemas/Address'
|
1171
1078
|
- $ref: '#/components/schemas/ShipmentAttributesWithoutRelationsips'
|
1172
|
-
|
1079
|
+
CartList:
|
1173
1080
|
required:
|
1174
1081
|
- data
|
1175
1082
|
- included
|
1083
|
+
properties:
|
1084
|
+
data:
|
1085
|
+
required:
|
1086
|
+
- id
|
1087
|
+
- type
|
1088
|
+
- attributes
|
1089
|
+
- relationships
|
1090
|
+
type: array
|
1091
|
+
items:
|
1092
|
+
$ref: '#/components/schemas/CartAttributesWithRelationships'
|
1093
|
+
included:
|
1094
|
+
type: array
|
1095
|
+
items:
|
1096
|
+
type: object
|
1097
|
+
oneOf:
|
1098
|
+
- $ref: '#/components/schemas/VariantAttributesAndRelationships'
|
1099
|
+
- $ref: '#/components/schemas/LineItem'
|
1100
|
+
- $ref: '#/components/schemas/Promotion'
|
1101
|
+
- $ref: '#/components/schemas/User'
|
1102
|
+
- $ref: '#/components/schemas/Address'
|
1103
|
+
- $ref: '#/components/schemas/ShipmentAttributesWithoutRelationsips'
|
1104
|
+
CartAttributesWithRelationships:
|
1105
|
+
properties:
|
1106
|
+
id:
|
1107
|
+
type: string
|
1108
|
+
example: '1'
|
1109
|
+
type:
|
1110
|
+
type: string
|
1111
|
+
example: 'cart'
|
1112
|
+
attributes:
|
1113
|
+
$ref: '#/components/schemas/CartAttributes'
|
1114
|
+
relationships:
|
1115
|
+
$ref: '#/components/schemas/CartRelationships'
|
1116
|
+
CartRelationships:
|
1117
|
+
type: object
|
1118
|
+
properties:
|
1119
|
+
line_items:
|
1120
|
+
type: object
|
1121
|
+
description: ''
|
1122
|
+
properties:
|
1123
|
+
data:
|
1124
|
+
$ref: '#/components/schemas/Relation'
|
1125
|
+
promotions:
|
1126
|
+
type: object
|
1127
|
+
properties:
|
1128
|
+
data:
|
1129
|
+
$ref: '#/components/schemas/Relation'
|
1130
|
+
variants:
|
1131
|
+
type: object
|
1132
|
+
properties:
|
1133
|
+
data:
|
1134
|
+
$ref: '#/components/schemas/Relation'
|
1135
|
+
user:
|
1136
|
+
type: object
|
1137
|
+
properties:
|
1138
|
+
data:
|
1139
|
+
$ref: '#/components/schemas/Relation'
|
1140
|
+
billing_address:
|
1141
|
+
type: object
|
1142
|
+
properties:
|
1143
|
+
data:
|
1144
|
+
$ref: '#/components/schemas/Relation'
|
1145
|
+
shipping_address:
|
1146
|
+
type: object
|
1147
|
+
properties:
|
1148
|
+
data:
|
1149
|
+
$ref: '#/components/schemas/Relation'
|
1150
|
+
payments:
|
1151
|
+
type: object
|
1152
|
+
properties:
|
1153
|
+
data:
|
1154
|
+
$ref: '#/components/schemas/Relation'
|
1155
|
+
shipments:
|
1156
|
+
type: object
|
1157
|
+
properties:
|
1158
|
+
data:
|
1159
|
+
$ref: '#/components/schemas/Relation'
|
1160
|
+
CartAttributes:
|
1161
|
+
type: object
|
1162
|
+
properties:
|
1163
|
+
number:
|
1164
|
+
type: string
|
1165
|
+
example: 'R123456789'
|
1166
|
+
email:
|
1167
|
+
type: string
|
1168
|
+
example: 'spree@example.com'
|
1169
|
+
item_total:
|
1170
|
+
type: string
|
1171
|
+
example: '19.99'
|
1172
|
+
display_item_total:
|
1173
|
+
type: string
|
1174
|
+
example: '$19.99'
|
1175
|
+
total:
|
1176
|
+
type: string
|
1177
|
+
example: '29.99'
|
1178
|
+
display_total:
|
1179
|
+
type: string
|
1180
|
+
example: '$29.99'
|
1181
|
+
ship_total:
|
1182
|
+
type: string
|
1183
|
+
example: '0.0'
|
1184
|
+
display_ship_total:
|
1185
|
+
type: string
|
1186
|
+
example: '$19.99'
|
1187
|
+
adjustment_total:
|
1188
|
+
type: string
|
1189
|
+
example: '10.0'
|
1190
|
+
display_adjustment_total:
|
1191
|
+
type: string
|
1192
|
+
example: '$10.00'
|
1193
|
+
promo_total:
|
1194
|
+
type: string
|
1195
|
+
example: '-10.0'
|
1196
|
+
display_promo_total:
|
1197
|
+
type: string
|
1198
|
+
example: '-$10.00'
|
1199
|
+
created_at:
|
1200
|
+
$ref: '#/components/schemas/Timestamp'
|
1201
|
+
updated_at:
|
1202
|
+
$ref: '#/components/schemas/Timestamp'
|
1203
|
+
included_tax_total:
|
1204
|
+
type: string
|
1205
|
+
example: '5.00'
|
1206
|
+
additional_tax_total:
|
1207
|
+
type: string
|
1208
|
+
example: '5.0'
|
1209
|
+
display_additional_tax_total:
|
1210
|
+
type: string
|
1211
|
+
example: '$5.00'
|
1212
|
+
display_included_tax_total:
|
1213
|
+
type: string
|
1214
|
+
example: '$5.00'
|
1215
|
+
tax_total:
|
1216
|
+
type: string
|
1217
|
+
example: '10.0'
|
1218
|
+
display_tax_total:
|
1219
|
+
type: string
|
1220
|
+
example: '$10.00'
|
1221
|
+
item_count:
|
1222
|
+
type: number
|
1223
|
+
example: 2
|
1224
|
+
description: 'Total quantity number of all items added to the Cart'
|
1225
|
+
special_instructions:
|
1226
|
+
type: string
|
1227
|
+
example: 'Please wrap it as a gift'
|
1228
|
+
description: 'Message added by the Customer'
|
1229
|
+
currency:
|
1230
|
+
type: string
|
1231
|
+
example: 'USD'
|
1232
|
+
state:
|
1233
|
+
type: string
|
1234
|
+
example: 'address'
|
1235
|
+
description: 'State of the Cart in the Checkout flow'
|
1236
|
+
token:
|
1237
|
+
type: string
|
1238
|
+
example: abcdef123456
|
1239
|
+
description: >-
|
1240
|
+
Used for authorizing any action for an order within Spree’s
|
1241
|
+
API
|
1242
|
+
CreditCardList:
|
1243
|
+
required:
|
1244
|
+
- included
|
1176
1245
|
properties:
|
1177
1246
|
data:
|
1178
1247
|
type: array
|
@@ -1206,15 +1275,23 @@ components:
|
|
1206
1275
|
last_digits:
|
1207
1276
|
type: string
|
1208
1277
|
example: '1232'
|
1278
|
+
description: 'Last 4 digits of CC number'
|
1209
1279
|
month:
|
1210
1280
|
type: integer
|
1211
1281
|
example: 10
|
1282
|
+
description: 'Expiration date month'
|
1212
1283
|
year:
|
1213
1284
|
type: integer
|
1214
1285
|
example: 2019
|
1286
|
+
description: 'Expiration date year'
|
1215
1287
|
name:
|
1216
1288
|
type: string
|
1217
1289
|
example: 'John Doe'
|
1290
|
+
description: 'Card holder name'
|
1291
|
+
default:
|
1292
|
+
type: boolean
|
1293
|
+
example: true
|
1294
|
+
description: 'Defines if this is the default CC for a signed in user'
|
1218
1295
|
CreditCardAttributesWithRelationships:
|
1219
1296
|
properties:
|
1220
1297
|
id:
|
@@ -1347,6 +1424,12 @@ components:
|
|
1347
1424
|
display_additional_tax_total:
|
1348
1425
|
type: string
|
1349
1426
|
example: '$5.00'
|
1427
|
+
discounted_amount:
|
1428
|
+
type: string
|
1429
|
+
example: '125.0'
|
1430
|
+
display_discounted_amount:
|
1431
|
+
type: string
|
1432
|
+
example: '$125.00'
|
1350
1433
|
promo_total:
|
1351
1434
|
type: string
|
1352
1435
|
example: '-5.0'
|
@@ -2237,9 +2320,13 @@ components:
|
|
2237
2320
|
state_name:
|
2238
2321
|
type: string
|
2239
2322
|
description: 'State/region/province 2 letter abbrevation'
|
2240
|
-
|
2241
|
-
type:
|
2242
|
-
description:
|
2323
|
+
country_iso:
|
2324
|
+
type: string
|
2325
|
+
description: >-
|
2326
|
+
Country ISO (2-chars) or ISO3 (3-chars) code, list of codes:
|
2327
|
+
<a href="https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes" target="_blank" rel="noopener">
|
2328
|
+
https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
|
2329
|
+
</a>
|
2243
2330
|
example:
|
2244
2331
|
firstname: 'John'
|
2245
2332
|
lastname: 'Snow'
|
@@ -2249,7 +2336,7 @@ components:
|
|
2249
2336
|
phone: '3014445002'
|
2250
2337
|
zipcode: '20814'
|
2251
2338
|
state_name: 'MD'
|
2252
|
-
|
2339
|
+
country_iso: 'US'
|
2253
2340
|
|
2254
2341
|
parameters:
|
2255
2342
|
CreditCardIncludeParam:
|
@@ -2306,7 +2393,15 @@ components:
|
|
2306
2393
|
description: Number of requested records per page when paginating collection
|
2307
2394
|
schema:
|
2308
2395
|
type: integer
|
2309
|
-
example:
|
2396
|
+
example:
|
2397
|
+
OrderParam:
|
2398
|
+
name: number
|
2399
|
+
in: path
|
2400
|
+
required: true
|
2401
|
+
description: Number of Order
|
2402
|
+
schema:
|
2403
|
+
type: string
|
2404
|
+
example: 'R653163382'
|
2310
2405
|
CartIncludeParam:
|
2311
2406
|
name: include
|
2312
2407
|
in: query
|
@@ -2435,10 +2530,18 @@ components:
|
|
2435
2530
|
content:
|
2436
2531
|
application/json:
|
2437
2532
|
schema:
|
2438
|
-
|
2533
|
+
properties:
|
2534
|
+
error:
|
2535
|
+
type: string
|
2536
|
+
example: 'The resource you were looking for could not be found.'
|
2537
|
+
default: 'The resource you were looking for could not be found.'
|
2439
2538
|
403Forbidden:
|
2440
2539
|
description: You are not authorized to access this page.
|
2441
2540
|
content:
|
2442
2541
|
application/json:
|
2443
2542
|
schema:
|
2444
|
-
|
2543
|
+
properties:
|
2544
|
+
error:
|
2545
|
+
type: string
|
2546
|
+
example: 'You are not authorized to access this page.'
|
2547
|
+
default: 'You are not authorized to access this page.'
|
data/lib/spree/api/engine.rb
CHANGED
@@ -39,6 +39,10 @@ module Spree
|
|
39
39
|
Spree::Api::Config = Spree::ApiConfiguration.new
|
40
40
|
end
|
41
41
|
|
42
|
+
initializer 'spree.api.checking_migrations' do
|
43
|
+
Migrations.new(config, engine_name).check
|
44
|
+
end
|
45
|
+
|
42
46
|
def self.activate
|
43
47
|
Dir.glob(File.join(File.dirname(__FILE__), '../../../app/**/*_decorator*.rb')) do |c|
|
44
48
|
Rails.configuration.cache_classes ? require(c) : load(c)
|
data/spree_api.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.homepage = 'http://spreecommerce.org'
|
10
10
|
s.license = 'BSD-3-Clause'
|
11
11
|
|
12
|
-
s.required_ruby_version = '>= 2.3.
|
12
|
+
s.required_ruby_version = '>= 2.3.3'
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split($\).reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
|
15
15
|
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.7.0.
|
4
|
+
version: 3.7.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bigg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jsonapi-rspec
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.7.0.
|
33
|
+
version: 3.7.0.rc2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.7.0.
|
40
|
+
version: 3.7.0.rc2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rabl
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- app/controllers/spree/api/v1/zones_controller.rb
|
144
144
|
- app/controllers/spree/api/v2/base_controller.rb
|
145
145
|
- app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb
|
146
|
+
- app/controllers/spree/api/v2/storefront/account/orders_controller.rb
|
146
147
|
- app/controllers/spree/api/v2/storefront/account_controller.rb
|
147
148
|
- app/controllers/spree/api/v2/storefront/cart_controller.rb
|
148
149
|
- app/controllers/spree/api/v2/storefront/checkout_controller.rb
|
@@ -157,12 +158,11 @@ files:
|
|
157
158
|
- app/models/doorkeeper/access_token_decorator.rb
|
158
159
|
- app/models/doorkeeper/application_decorator.rb
|
159
160
|
- app/models/spree/api_configuration.rb
|
160
|
-
- app/serializers/spree/v2/storefront/account/credit_card_serializer.rb
|
161
|
-
- app/serializers/spree/v2/storefront/account_serializer.rb
|
162
161
|
- app/serializers/spree/v2/storefront/address_serializer.rb
|
163
162
|
- app/serializers/spree/v2/storefront/base_serializer.rb
|
164
163
|
- app/serializers/spree/v2/storefront/cart_serializer.rb
|
165
164
|
- app/serializers/spree/v2/storefront/country_serializer.rb
|
165
|
+
- app/serializers/spree/v2/storefront/credit_card_serializer.rb
|
166
166
|
- app/serializers/spree/v2/storefront/image_serializer.rb
|
167
167
|
- app/serializers/spree/v2/storefront/line_item_serializer.rb
|
168
168
|
- app/serializers/spree/v2/storefront/option_type_serializer.rb
|
@@ -175,6 +175,9 @@ files:
|
|
175
175
|
- app/serializers/spree/v2/storefront/shipment_serializer.rb
|
176
176
|
- app/serializers/spree/v2/storefront/shipping_rate_serializer.rb
|
177
177
|
- app/serializers/spree/v2/storefront/state_serializer.rb
|
178
|
+
- app/serializers/spree/v2/storefront/store_credit_event_serializer.rb
|
179
|
+
- app/serializers/spree/v2/storefront/store_credit_serializer.rb
|
180
|
+
- app/serializers/spree/v2/storefront/store_credit_type_serializer.rb
|
178
181
|
- app/serializers/spree/v2/storefront/taxon_image_serializer.rb
|
179
182
|
- app/serializers/spree/v2/storefront/taxon_serializer.rb
|
180
183
|
- app/serializers/spree/v2/storefront/taxonomy_serializer.rb
|
@@ -313,7 +316,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
313
316
|
requirements:
|
314
317
|
- - ">="
|
315
318
|
- !ruby/object:Gem::Version
|
316
|
-
version: 2.3.
|
319
|
+
version: 2.3.3
|
317
320
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
318
321
|
requirements:
|
319
322
|
- - ">"
|
@@ -321,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
321
324
|
version: 1.3.1
|
322
325
|
requirements: []
|
323
326
|
rubyforge_project:
|
324
|
-
rubygems_version: 2.7.
|
327
|
+
rubygems_version: 2.7.8
|
325
328
|
signing_key:
|
326
329
|
specification_version: 4
|
327
330
|
summary: Spree's API
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module V2
|
3
|
-
module Storefront
|
4
|
-
module Account
|
5
|
-
class CreditCardSerializer < BaseSerializer
|
6
|
-
set_type :credit_card
|
7
|
-
|
8
|
-
attributes :cc_type, :last_digits, :month, :year, :name
|
9
|
-
|
10
|
-
belongs_to :payment_method,
|
11
|
-
serializer: Spree::V2::Storefront::PaymentMethodSerializer
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module V2
|
3
|
-
module Storefront
|
4
|
-
class AccountSerializer < BaseSerializer
|
5
|
-
set_type :user
|
6
|
-
|
7
|
-
attributes :email
|
8
|
-
|
9
|
-
attribute :store_credits, &:total_available_store_credit
|
10
|
-
|
11
|
-
attribute :completed_orders do |object|
|
12
|
-
object.orders.complete.count
|
13
|
-
end
|
14
|
-
|
15
|
-
has_one :default_billing_address,
|
16
|
-
id_method_name: :bill_address_id,
|
17
|
-
object_method_name: :bill_address,
|
18
|
-
record_type: :address,
|
19
|
-
serializer: :address
|
20
|
-
|
21
|
-
has_one :default_shipping_address,
|
22
|
-
id_method_name: :ship_address_id,
|
23
|
-
object_method_name: :ship_address,
|
24
|
-
record_type: :address,
|
25
|
-
serializer: :address
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|