solidus_graphql_api 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (282) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +43 -67
  3. data/.github/dependabot.yml +23 -0
  4. data/.github/stale.yml +3 -3
  5. data/.github_changelog_generator +2 -0
  6. data/.rubocop.yml +10 -4
  7. data/CHANGELOG.md +4 -0
  8. data/CONTRIBUTING.md +5 -5
  9. data/Gemfile +1 -1
  10. data/Gemfile-local +1 -0
  11. data/LICENSE +1 -1
  12. data/OLD_CHANGELOG.md +170 -0
  13. data/README.md +26 -10
  14. data/Rakefile +22 -7
  15. data/app/assets/javascripts/spree/backend/solidus_graphql_api.js +2 -0
  16. data/app/assets/javascripts/spree/frontend/solidus_graphql_api.js +2 -0
  17. data/app/assets/stylesheets/spree/backend/solidus_graphql_api.css +4 -0
  18. data/app/assets/stylesheets/spree/frontend/solidus_graphql_api.css +4 -0
  19. data/app/controllers/spree/graphql_controller.rb +2 -0
  20. data/bin/console +2 -2
  21. data/bin/rails +0 -2
  22. data/bin/rails-engine +0 -3
  23. data/bin/rails-sandbox +1 -3
  24. data/bin/rake +0 -1
  25. data/bin/sandbox +5 -7
  26. data/docs/assets/images/graphiql-headers.png +0 -0
  27. data/docs/assets/images/graphiql-variables.png +0 -0
  28. data/docs/assets/images/graphiql.png +0 -0
  29. data/docs/assets/images/menu.png +0 -0
  30. data/docs/assets/images/navbar.png +0 -0
  31. data/docs/assets/style.css +1115 -0
  32. data/docs/assets/webfonts/2C4B9D_B_0.eot +0 -0
  33. data/docs/assets/webfonts/2C4B9D_B_0.ttf +0 -0
  34. data/docs/assets/webfonts/2C4B9D_B_0.woff +0 -0
  35. data/docs/assets/webfonts/2C4B9D_B_0.woff2 +0 -0
  36. data/docs/assets/webfonts/2C4B9D_C_0.eot +0 -0
  37. data/docs/assets/webfonts/2C4B9D_C_0.ttf +0 -0
  38. data/docs/assets/webfonts/2C4B9D_C_0.woff +0 -0
  39. data/docs/assets/webfonts/2C4B9D_C_0.woff2 +0 -0
  40. data/docs/assets/webfonts/2C4B9D_D_0.eot +0 -0
  41. data/docs/assets/webfonts/2C4B9D_D_0.ttf +0 -0
  42. data/docs/assets/webfonts/2C4B9D_D_0.woff +0 -0
  43. data/docs/assets/webfonts/2C4B9D_D_0.woff2 +0 -0
  44. data/docs/assets/webfonts/2C4B9D_E_0.eot +0 -0
  45. data/docs/assets/webfonts/2C4B9D_E_0.ttf +0 -0
  46. data/docs/assets/webfonts/2C4B9D_E_0.woff +0 -0
  47. data/docs/assets/webfonts/2C4B9D_E_0.woff2 +0 -0
  48. data/docs/directive/deprecated/index.html +1142 -0
  49. data/docs/directive/include/index.html +1141 -0
  50. data/docs/directive/index.html +1113 -0
  51. data/docs/directive/skip/index.html +1141 -0
  52. data/docs/enum/__directivelocation/index.html +1204 -0
  53. data/docs/enum/__typekind/index.html +1154 -0
  54. data/docs/enum/addresstypeinput/index.html +1121 -0
  55. data/docs/enum/index.html +1113 -0
  56. data/docs/index.html +1122 -0
  57. data/docs/input_object/addaddressestocheckoutinput/index.html +1135 -0
  58. data/docs/input_object/addpaymenttocheckoutinput/index.html +1135 -0
  59. data/docs/input_object/addressinput/index.html +1169 -0
  60. data/docs/input_object/addtocartinput/index.html +1130 -0
  61. data/docs/input_object/advancecheckoutinput/index.html +1120 -0
  62. data/docs/input_object/applycouponcodeinput/index.html +1125 -0
  63. data/docs/input_object/completecheckoutinput/index.html +1120 -0
  64. data/docs/input_object/createorderinput/index.html +1120 -0
  65. data/docs/input_object/emptycartinput/index.html +1120 -0
  66. data/docs/input_object/index.html +1113 -0
  67. data/docs/input_object/markdefaultshipaddressinput/index.html +1125 -0
  68. data/docs/input_object/nextcheckoutstateinput/index.html +1120 -0
  69. data/docs/input_object/productsqueryinput/index.html +1132 -0
  70. data/docs/input_object/removefromaddressbookinput/index.html +1125 -0
  71. data/docs/input_object/removefromcartinput/index.html +1125 -0
  72. data/docs/input_object/saveinaddressbookinput/index.html +1135 -0
  73. data/docs/input_object/selectshippingrateinput/index.html +1125 -0
  74. data/docs/input_object/setorderemailinput/index.html +1125 -0
  75. data/docs/input_object/updatecartquantityinput/index.html +1130 -0
  76. data/docs/interface/adjustment/index.html +1145 -0
  77. data/docs/interface/index.html +1113 -0
  78. data/docs/interface/node/index.html +1151 -0
  79. data/docs/interface/paymentsource/index.html +1134 -0
  80. data/docs/mutation/addaddressestocheckout/index.html +1137 -0
  81. data/docs/mutation/addpaymenttocheckout/index.html +1137 -0
  82. data/docs/mutation/addtocart/index.html +1137 -0
  83. data/docs/mutation/advancecheckout/index.html +1137 -0
  84. data/docs/mutation/applycouponcode/index.html +1137 -0
  85. data/docs/mutation/completecheckout/index.html +1137 -0
  86. data/docs/mutation/createorder/index.html +1137 -0
  87. data/docs/mutation/emptycart/index.html +1137 -0
  88. data/docs/mutation/markdefaultshipaddress/index.html +1132 -0
  89. data/docs/mutation/nextcheckoutstate/index.html +1137 -0
  90. data/docs/mutation/removefromaddressbook/index.html +1132 -0
  91. data/docs/mutation/removefromcart/index.html +1137 -0
  92. data/docs/mutation/saveinaddressbook/index.html +1137 -0
  93. data/docs/mutation/selectshippingrate/index.html +1137 -0
  94. data/docs/mutation/setorderemail/index.html +1137 -0
  95. data/docs/mutation/updatecartquantity/index.html +1137 -0
  96. data/docs/object/__directive/index.html +1182 -0
  97. data/docs/object/__enumvalue/index.html +1134 -0
  98. data/docs/object/__field/index.html +1164 -0
  99. data/docs/object/__inputvalue/index.html +1145 -0
  100. data/docs/object/__schema/index.html +1144 -0
  101. data/docs/object/__type/index.html +1220 -0
  102. data/docs/object/addaddressestocheckoutpayload/index.html +1130 -0
  103. data/docs/object/addpaymenttocheckoutpayload/index.html +1130 -0
  104. data/docs/object/address/index.html +1189 -0
  105. data/docs/object/addressconnection/index.html +1132 -0
  106. data/docs/object/addressedge/index.html +1126 -0
  107. data/docs/object/addtocartpayload/index.html +1130 -0
  108. data/docs/object/adjustmentconnection/index.html +1132 -0
  109. data/docs/object/adjustmentedge/index.html +1126 -0
  110. data/docs/object/advancecheckoutpayload/index.html +1130 -0
  111. data/docs/object/applycouponcodepayload/index.html +1130 -0
  112. data/docs/object/completecheckoutpayload/index.html +1130 -0
  113. data/docs/object/country/index.html +1218 -0
  114. data/docs/object/countryconnection/index.html +1132 -0
  115. data/docs/object/countryedge/index.html +1126 -0
  116. data/docs/object/createorderpayload/index.html +1130 -0
  117. data/docs/object/creditcard/index.html +1170 -0
  118. data/docs/object/currency/index.html +1144 -0
  119. data/docs/object/currencyconnection/index.html +1132 -0
  120. data/docs/object/currencyedge/index.html +1126 -0
  121. data/docs/object/emptycartpayload/index.html +1130 -0
  122. data/docs/object/image/index.html +1169 -0
  123. data/docs/object/imageconnection/index.html +1132 -0
  124. data/docs/object/imageedge/index.html +1126 -0
  125. data/docs/object/index.html +1113 -0
  126. data/docs/object/lineitem/index.html +1184 -0
  127. data/docs/object/lineitemconnection/index.html +1132 -0
  128. data/docs/object/lineitemedge/index.html +1126 -0
  129. data/docs/object/manifestitem/index.html +1124 -0
  130. data/docs/object/markdefaultshipaddresspayload/index.html +1125 -0
  131. data/docs/object/nextcheckoutstatepayload/index.html +1130 -0
  132. data/docs/object/optiontype/index.html +1203 -0
  133. data/docs/object/optiontypeconnection/index.html +1132 -0
  134. data/docs/object/optiontypeedge/index.html +1126 -0
  135. data/docs/object/optionvalue/index.html +1154 -0
  136. data/docs/object/optionvalueconnection/index.html +1132 -0
  137. data/docs/object/optionvalueedge/index.html +1126 -0
  138. data/docs/object/order/index.html +1412 -0
  139. data/docs/object/orderconnection/index.html +1132 -0
  140. data/docs/object/orderedge/index.html +1126 -0
  141. data/docs/object/pageinfo/index.html +1138 -0
  142. data/docs/object/payment/index.html +1149 -0
  143. data/docs/object/paymentmethod/index.html +1149 -0
  144. data/docs/object/price/index.html +1159 -0
  145. data/docs/object/priceconnection/index.html +1132 -0
  146. data/docs/object/priceedge/index.html +1126 -0
  147. data/docs/object/product/index.html +1327 -0
  148. data/docs/object/productconnection/index.html +1132 -0
  149. data/docs/object/productedge/index.html +1126 -0
  150. data/docs/object/productproperty/index.html +1149 -0
  151. data/docs/object/productpropertyconnection/index.html +1132 -0
  152. data/docs/object/productpropertyedge/index.html +1126 -0
  153. data/docs/object/promotionadjustment/index.html +1155 -0
  154. data/docs/object/property/index.html +1144 -0
  155. data/docs/object/removefromaddressbookpayload/index.html +1125 -0
  156. data/docs/object/removefromcartpayload/index.html +1130 -0
  157. data/docs/object/saveinaddressbookpayload/index.html +1130 -0
  158. data/docs/object/selectshippingratepayload/index.html +1130 -0
  159. data/docs/object/setorderemailpayload/index.html +1130 -0
  160. data/docs/object/shipment/index.html +1218 -0
  161. data/docs/object/shipmentconnection/index.html +1132 -0
  162. data/docs/object/shipmentedge/index.html +1126 -0
  163. data/docs/object/shippingmethod/index.html +1174 -0
  164. data/docs/object/shippingrate/index.html +1154 -0
  165. data/docs/object/shippingrateconnection/index.html +1132 -0
  166. data/docs/object/shippingrateedge/index.html +1126 -0
  167. data/docs/object/state/index.html +1144 -0
  168. data/docs/object/stateconnection/index.html +1132 -0
  169. data/docs/object/stateedge/index.html +1126 -0
  170. data/docs/object/store/index.html +1238 -0
  171. data/docs/object/taxadjustment/index.html +1150 -0
  172. data/docs/object/taxon/index.html +1228 -0
  173. data/docs/object/taxonconnection/index.html +1132 -0
  174. data/docs/object/taxonedge/index.html +1126 -0
  175. data/docs/object/taxonomy/index.html +1198 -0
  176. data/docs/object/taxonomyconnection/index.html +1132 -0
  177. data/docs/object/taxonomyedge/index.html +1126 -0
  178. data/docs/object/updatecartquantitypayload/index.html +1130 -0
  179. data/docs/object/user/index.html +1280 -0
  180. data/docs/object/usererror/index.html +1126 -0
  181. data/docs/object/variant/index.html +1332 -0
  182. data/docs/object/variantconnection/index.html +1132 -0
  183. data/docs/object/variantedge/index.html +1126 -0
  184. data/docs/object/walletpaymentsource/index.html +1144 -0
  185. data/docs/object/walletpaymentsourceconnection/index.html +1132 -0
  186. data/docs/object/walletpaymentsourceedge/index.html +1126 -0
  187. data/docs/operation/mutation/index.html +1114 -0
  188. data/docs/operation/query/index.html +1431 -0
  189. data/docs/scalar/boolean/index.html +1112 -0
  190. data/docs/scalar/float/index.html +1112 -0
  191. data/docs/scalar/id/index.html +1112 -0
  192. data/docs/scalar/index.html +1113 -0
  193. data/docs/scalar/int/index.html +1112 -0
  194. data/docs/scalar/iso8601datetime/index.html +1112 -0
  195. data/docs/scalar/json/index.html +1112 -0
  196. data/docs/scalar/string/index.html +1112 -0
  197. data/docs/union/index.html +1113 -0
  198. data/lib/generators/solidus_graphql_api/install/install_generator.rb +19 -0
  199. data/lib/generators/solidus_graphql_api/install/templates/initializer.rb +6 -0
  200. data/lib/graphql_docs/landing_pages/index.md +16 -0
  201. data/lib/solidus_graphql_api/batch_loader/has_many_through.rb +1 -0
  202. data/lib/solidus_graphql_api/batch_loader.rb +1 -1
  203. data/lib/solidus_graphql_api/configuration.rb +12 -8
  204. data/lib/solidus_graphql_api/context.rb +8 -2
  205. data/lib/solidus_graphql_api/engine.rb +2 -2
  206. data/lib/solidus_graphql_api/mutations/base_mutation.rb +3 -3
  207. data/lib/solidus_graphql_api/mutations/checkout/add_payment_to_checkout.rb +1 -1
  208. data/lib/solidus_graphql_api/mutations/user/{mark_default_address.rb → mark_default_ship_address.rb} +2 -2
  209. data/lib/solidus_graphql_api/mutations/user/save_in_address_book.rb +8 -2
  210. data/lib/solidus_graphql_api/queries/option_value/option_type_query.rb +19 -0
  211. data/lib/solidus_graphql_api/queries/shipping_rate/shipping_method_query.rb +19 -0
  212. data/lib/solidus_graphql_api/queries/taxon/children_query.rb +1 -1
  213. data/lib/solidus_graphql_api/queries/taxonomy/taxons_query.rb +1 -1
  214. data/lib/solidus_graphql_api/queries/variant/default_price_query.rb +1 -1
  215. data/lib/solidus_graphql_api/{factories → testing_support/factories}/address_factory.rb +1 -2
  216. data/lib/solidus_graphql_api/{factories → testing_support/factories}/taxonomy_factory.rb +10 -0
  217. data/lib/solidus_graphql_api/testing_support/factories.rb +9 -0
  218. data/lib/solidus_graphql_api/types/address.rb +1 -2
  219. data/lib/solidus_graphql_api/types/base/relay_node.rb +1 -1
  220. data/lib/solidus_graphql_api/types/input_objects/address_input.rb +1 -2
  221. data/lib/solidus_graphql_api/types/json.rb +6 -3
  222. data/lib/solidus_graphql_api/types/mutation.rb +1 -1
  223. data/lib/solidus_graphql_api/types/option_value.rb +5 -0
  224. data/lib/solidus_graphql_api/types/query.rb +2 -2
  225. data/lib/solidus_graphql_api/types/shipping_method.rb +20 -0
  226. data/lib/solidus_graphql_api/types/shipping_rate.rb +5 -0
  227. data/lib/solidus_graphql_api/types/user.rb +1 -1
  228. data/lib/solidus_graphql_api/version.rb +1 -1
  229. data/lib/solidus_graphql_api.rb +0 -3
  230. data/schema.graphql +128 -26
  231. data/solidus_graphql_api.gemspec +12 -12
  232. data/spec/integration/mutations/checkout/add_addresses_to_checkout_spec.rb +13 -19
  233. data/spec/integration/mutations/checkout/apply_coupon_code_spec.rb +3 -1
  234. data/spec/integration/mutations/{mark_default_address_spec.rb → mark_default_ship_address_spec.rb} +5 -5
  235. data/spec/integration/mutations/remove_from_address_book_spec.rb +4 -4
  236. data/spec/integration/mutations/save_in_address_book_spec.rb +25 -12
  237. data/spec/integration/queries/completed_orders_spec.rb +19 -15
  238. data/spec/integration/queries/countries_spec.rb +2 -2
  239. data/spec/integration/queries/current_order_spec.rb +4 -1
  240. data/spec/integration/queries/current_store_spec.rb +1 -1
  241. data/spec/integration/queries/current_user_spec.rb +7 -2
  242. data/spec/integration/queries/products_spec.rb +4 -1
  243. data/spec/integration/queries/taxonomies_spec.rb +12 -4
  244. data/spec/integration/types/json_spec.rb +17 -0
  245. data/spec/lib/solidus_graphql_api/batch_loader/belongs_to_spec.rb +24 -25
  246. data/spec/lib/solidus_graphql_api/batch_loader/has_many_spec.rb +17 -15
  247. data/spec/lib/solidus_graphql_api/batch_loader/has_many_through_spec.rb +42 -25
  248. data/spec/lib/solidus_graphql_api/batch_loader/has_one_spec.rb +17 -15
  249. data/spec/lib/solidus_graphql_api/context_spec.rb +119 -6
  250. data/spec/lib/solidus_graphql_api/queries/option_value/option_type_query_spec.rb +10 -0
  251. data/spec/lib/solidus_graphql_api/queries/shipping_rate/shipping_method_query_spec.rb +11 -0
  252. data/spec/lib/solidus_graphql_api/queries/taxon/children_query_spec.rb +9 -5
  253. data/spec/lib/solidus_graphql_api/queries/taxonomy/taxons_query_spec.rb +8 -5
  254. data/spec/lib/solidus_graphql_api/queries/variant/default_price_query_spec.rb +1 -1
  255. data/spec/lib/solidus_graphql_api/types/base/object_spec.rb +5 -1
  256. data/spec/lib/solidus_graphql_api/types/json_spec.rb +2 -1
  257. data/spec/lib/solidus_graphql_api/types/option_value_spec.rb +22 -0
  258. data/spec/lib/solidus_graphql_api/types/product_spec.rb +3 -1
  259. data/spec/lib/solidus_graphql_api/types/query_spec.rb +3 -1
  260. data/spec/lib/solidus_graphql_api/types/shipping_rate_spec.rb +22 -0
  261. data/spec/requests/spree/graphql_controller_spec.rb +15 -2
  262. data/spec/spec_helper.rb +20 -12
  263. data/spec/support/expected_schema.graphql +128 -26
  264. data/spec/support/graphql/mutations/add_addresses_to_checkout.gql +2 -2
  265. data/spec/support/graphql/mutations/mark_default_ship_address.gql +9 -0
  266. data/spec/support/graphql/mutations/remove_from_address_book.gql +1 -1
  267. data/spec/support/graphql/mutations/save_in_address_book.gql +6 -5
  268. data/spec/support/graphql/queries/completed_orders/billing_address.gql +1 -2
  269. data/spec/support/graphql/queries/completed_orders/shipping_address.gql +1 -2
  270. data/spec/support/graphql/queries/current_user.gql +6 -11
  271. data/spec/support/graphql/responses/completed_orders/billing_address.json.erb +2 -4
  272. data/spec/support/graphql/responses/completed_orders/shipping_address.json.erb +2 -4
  273. data/spec/support/graphql/responses/current_store.json.erb +1 -1
  274. data/spec/support/graphql/responses/current_user.json.erb +7 -13
  275. data/spec/support/graphql/responses/taxonomies.json.erb +7 -7
  276. data/spec/support/helpers/active_record.rb +18 -0
  277. data/spec/support/helpers/graphql.rb +4 -4
  278. metadata +245 -54
  279. data/lib/solidus_graphql_api/factories.rb +0 -11
  280. data/spec/support/graphql/mutations/mark_default_address.gql +0 -9
  281. /data/lib/solidus_graphql_api/{factories → testing_support/factories}/country_factory.rb +0 -0
  282. /data/lib/solidus_graphql_api/{factories → testing_support/factories}/store_factory.rb +0 -0
@@ -7,11 +7,24 @@ RSpec.describe Spree::GraphqlController do
7
7
 
8
8
  before { allow_any_instance_of(SolidusGraphqlApi::Context).to receive(:to_h).and_return(context) }
9
9
 
10
- after { post '/graphql', headers: headers }
11
-
12
10
  it 'passes the right context to the schema' do
13
11
  expect(SolidusGraphqlApi::Schema).to receive(:execute).with(
14
12
  nil, hash_including(context: context)
15
13
  )
14
+
15
+ post '/graphql', headers: headers
16
+ end
17
+
18
+ it 'can return blob URLs on disk storage' do
19
+ product = create(:product)
20
+ product.images.create(attributes_for(:image))
21
+
22
+ post '/graphql',
23
+ params: {
24
+ query: "{ productBySlug(slug: \"#{product.slug}\") { masterVariant { images { nodes { smallUrl } } } } }"
25
+ },
26
+ headers: headers
27
+
28
+ expect(JSON.parse(response.body).dig(*%w[data productBySlug masterVariant images nodes])[0]['smallUrl']).to match('http://')
16
29
  end
17
30
  end
data/spec/spec_helper.rb CHANGED
@@ -6,24 +6,22 @@ ENV['RAILS_ENV'] = 'test'
6
6
  # Run Coverage report
7
7
  require 'solidus_dev_support/rspec/coverage'
8
8
 
9
- require(File.expand_path('dummy/config/environment.rb', __dir__).tap { |file|
10
- # Create the dummy app if it's still missing.
11
- system 'bin/rake extension:test_app' unless File.exist? file
12
- })
9
+ # Create the dummy app if it's still missing.
10
+ dummy_env = "#{__dir__}/dummy/config/environment.rb"
11
+ system 'bin/rake extension:test_app' unless File.exist? dummy_env
12
+ require dummy_env
13
13
 
14
14
  # Requires factories and other useful helpers defined in spree_core.
15
- require 'solidus_dev_support/rspec/rails_helper'
16
- require 'pry'
15
+ require 'solidus_dev_support/rspec/feature_helper'
17
16
  require "graphql/schema_comparator"
18
- require 'with_model'
19
17
  require 'timecop'
20
18
 
21
19
  # Requires supporting ruby files with custom matchers and macros, etc,
22
20
  # in spec/support/ and its subdirectories.
23
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
21
+ Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
24
22
 
25
- # Requires factories defined in lib/solidus_graphql_api/factories.rb
26
- require 'solidus_graphql_api/factories'
23
+ # Requires factories defined in lib/solidus_graphql_api/testing_support/factories.rb
24
+ SolidusDevSupport::TestingSupport::Factories.load_for(SolidusGraphqlApi::Engine)
27
25
 
28
26
  RSpec.configure do |config|
29
27
  config.add_setting :default_freeze_date, default: "21/12/2012 12:00:00"
@@ -33,6 +31,18 @@ RSpec.configure do |config|
33
31
 
34
32
  config.infer_spec_type_from_file_location!
35
33
  config.use_transactional_fixtures = false
34
+
35
+ if defined?(ActiveStorage::Current)
36
+ config.before(:all) do
37
+ test_host = 'https://www.example.com'
38
+ if Rails.gem_version >= Gem::Version.new(7)
39
+ ActiveStorage::Current.url_options = { host: test_host }
40
+ else
41
+ ActiveStorage::Current.host = test_host
42
+ end
43
+ end
44
+ end
45
+
36
46
  config.include Helpers::Graphql
37
47
  config.include Matchers::Graphql
38
48
 
@@ -57,6 +67,4 @@ RSpec.configure do |config|
57
67
  example.run
58
68
  end
59
69
  end
60
-
61
- config.extend WithModel
62
70
  end
@@ -85,9 +85,8 @@ type Address implements Node {
85
85
  company: String
86
86
  country: Country!
87
87
  createdAt: ISO8601DateTime
88
- firstname: String!
89
88
  id: ID!
90
- lastname: String
89
+ name: String!
91
90
  phone: String!
92
91
  state: State
93
92
  stateName: String
@@ -140,14 +139,18 @@ input AddressInput {
140
139
  city: String!
141
140
  company: String
142
141
  countryId: ID!
143
- firstname: String!
144
- lastname: String
142
+ name: String!
145
143
  phone: String!
146
144
  stateId: ID
147
145
  stateName: String
148
146
  zipcode: String!
149
147
  }
150
148
 
149
+ enum AddressTypeInput {
150
+ billing
151
+ shipping
152
+ }
153
+
151
154
  """
152
155
  Adjustment.
153
156
  """
@@ -562,9 +565,9 @@ type ManifestItem {
562
565
  }
563
566
 
564
567
  """
565
- Autogenerated input type of MarkDefaultAddress
568
+ Autogenerated input type of MarkDefaultShipAddress
566
569
  """
567
- input MarkDefaultAddressInput {
570
+ input MarkDefaultShipAddressInput {
568
571
  addressId: ID!
569
572
 
570
573
  """
@@ -574,9 +577,9 @@ input MarkDefaultAddressInput {
574
577
  }
575
578
 
576
579
  """
577
- Autogenerated return type of MarkDefaultAddress
580
+ Autogenerated return type of MarkDefaultShipAddress
578
581
  """
579
- type MarkDefaultAddressPayload {
582
+ type MarkDefaultShipAddressPayload {
580
583
  """
581
584
  A unique identifier for the client performing the mutation.
582
585
  """
@@ -585,22 +588,102 @@ type MarkDefaultAddressPayload {
585
588
  }
586
589
 
587
590
  type Mutation {
588
- addAddressesToCheckout(input: AddAddressesToCheckoutInput!): AddAddressesToCheckoutPayload
589
- addPaymentToCheckout(input: AddPaymentToCheckoutInput!): AddPaymentToCheckoutPayload
590
- addToCart(input: AddToCartInput!): AddToCartPayload
591
- advanceCheckout(input: AdvanceCheckoutInput!): AdvanceCheckoutPayload
592
- applyCouponCode(input: ApplyCouponCodeInput!): ApplyCouponCodePayload
593
- completeCheckout(input: CompleteCheckoutInput!): CompleteCheckoutPayload
594
- createOrder(input: CreateOrderInput!): CreateOrderPayload
595
- emptyCart(input: EmptyCartInput!): EmptyCartPayload
596
- markDefaultAddress(input: MarkDefaultAddressInput!): MarkDefaultAddressPayload
597
- nextCheckoutState(input: NextCheckoutStateInput!): NextCheckoutStatePayload
598
- removeFromAddressBook(input: RemoveFromAddressBookInput!): RemoveFromAddressBookPayload
599
- removeFromCart(input: RemoveFromCartInput!): RemoveFromCartPayload
600
- saveInAddressBook(input: SaveInAddressBookInput!): SaveInAddressBookPayload
601
- selectShippingRate(input: SelectShippingRateInput!): SelectShippingRatePayload
602
- setOrderEmail(input: SetOrderEmailInput!): SetOrderEmailPayload
603
- updateCartQuantity(input: UpdateCartQuantityInput!): UpdateCartQuantityPayload
591
+ addAddressesToCheckout(
592
+ """
593
+ Parameters for AddAddressesToCheckout
594
+ """
595
+ input: AddAddressesToCheckoutInput!
596
+ ): AddAddressesToCheckoutPayload
597
+ addPaymentToCheckout(
598
+ """
599
+ Parameters for AddPaymentToCheckout
600
+ """
601
+ input: AddPaymentToCheckoutInput!
602
+ ): AddPaymentToCheckoutPayload
603
+ addToCart(
604
+ """
605
+ Parameters for AddToCart
606
+ """
607
+ input: AddToCartInput!
608
+ ): AddToCartPayload
609
+ advanceCheckout(
610
+ """
611
+ Parameters for AdvanceCheckout
612
+ """
613
+ input: AdvanceCheckoutInput!
614
+ ): AdvanceCheckoutPayload
615
+ applyCouponCode(
616
+ """
617
+ Parameters for ApplyCouponCode
618
+ """
619
+ input: ApplyCouponCodeInput!
620
+ ): ApplyCouponCodePayload
621
+ completeCheckout(
622
+ """
623
+ Parameters for CompleteCheckout
624
+ """
625
+ input: CompleteCheckoutInput!
626
+ ): CompleteCheckoutPayload
627
+ createOrder(
628
+ """
629
+ Parameters for CreateOrder
630
+ """
631
+ input: CreateOrderInput!
632
+ ): CreateOrderPayload
633
+ emptyCart(
634
+ """
635
+ Parameters for EmptyCart
636
+ """
637
+ input: EmptyCartInput!
638
+ ): EmptyCartPayload
639
+ markDefaultShipAddress(
640
+ """
641
+ Parameters for MarkDefaultShipAddress
642
+ """
643
+ input: MarkDefaultShipAddressInput!
644
+ ): MarkDefaultShipAddressPayload
645
+ nextCheckoutState(
646
+ """
647
+ Parameters for NextCheckoutState
648
+ """
649
+ input: NextCheckoutStateInput!
650
+ ): NextCheckoutStatePayload
651
+ removeFromAddressBook(
652
+ """
653
+ Parameters for RemoveFromAddressBook
654
+ """
655
+ input: RemoveFromAddressBookInput!
656
+ ): RemoveFromAddressBookPayload
657
+ removeFromCart(
658
+ """
659
+ Parameters for RemoveFromCart
660
+ """
661
+ input: RemoveFromCartInput!
662
+ ): RemoveFromCartPayload
663
+ saveInAddressBook(
664
+ """
665
+ Parameters for SaveInAddressBook
666
+ """
667
+ input: SaveInAddressBookInput!
668
+ ): SaveInAddressBookPayload
669
+ selectShippingRate(
670
+ """
671
+ Parameters for SelectShippingRate
672
+ """
673
+ input: SelectShippingRateInput!
674
+ ): SelectShippingRatePayload
675
+ setOrderEmail(
676
+ """
677
+ Parameters for SetOrderEmail
678
+ """
679
+ input: SetOrderEmailInput!
680
+ ): SetOrderEmailPayload
681
+ updateCartQuantity(
682
+ """
683
+ Parameters for UpdateCartQuantity
684
+ """
685
+ input: UpdateCartQuantityInput!
686
+ ): UpdateCartQuantityPayload
604
687
  }
605
688
 
606
689
  """
@@ -710,6 +793,7 @@ type OptionValue implements Node {
710
793
  createdAt: ISO8601DateTime
711
794
  id: ID!
712
795
  name: String!
796
+ optionType: OptionType!
713
797
  position: String!
714
798
  presentation: String!
715
799
  updatedAt: ISO8601DateTime
@@ -1387,6 +1471,7 @@ Autogenerated input type of SaveInAddressBook
1387
1471
  """
1388
1472
  input SaveInAddressBookInput {
1389
1473
  address: AddressInput!
1474
+ addressType: AddressTypeInput = shipping
1390
1475
 
1391
1476
  """
1392
1477
  A unique identifier for the client performing the mutation.
@@ -1524,6 +1609,23 @@ type ShipmentEdge {
1524
1609
  node: Shipment
1525
1610
  }
1526
1611
 
1612
+ """
1613
+ Shipping Method.
1614
+ """
1615
+ type ShippingMethod implements Node {
1616
+ adminName: String
1617
+ availableToAll: Boolean!
1618
+ availableToUsers: Boolean!
1619
+ carrier: String
1620
+ code: String
1621
+ createdAt: ISO8601DateTime
1622
+ id: ID!
1623
+ name: String!
1624
+ serviceLevel: String
1625
+ trackingUrl: String
1626
+ updatedAt: ISO8601DateTime
1627
+ }
1628
+
1527
1629
  """
1528
1630
  Shipping Rate.
1529
1631
  """
@@ -1533,6 +1635,7 @@ type ShippingRate implements Node {
1533
1635
  currency: String!
1534
1636
  id: ID!
1535
1637
  selected: Boolean!
1638
+ shippingMethod: ShippingMethod!
1536
1639
  updatedAt: ISO8601DateTime
1537
1640
  }
1538
1641
 
@@ -1861,7 +1964,6 @@ type User implements Node {
1861
1964
  billAddress: Address
1862
1965
  createdAt: ISO8601DateTime
1863
1966
  currentSignInAt: ISO8601DateTime
1864
- defaultAddress: Address
1865
1967
  email: String!
1866
1968
  id: ID!
1867
1969
  lastSignInAt: ISO8601DateTime
@@ -2067,4 +2169,4 @@ type WalletPaymentSourceEdge {
2067
2169
  The item at the end of the edge.
2068
2170
  """
2069
2171
  node: WalletPaymentSource
2070
- }
2172
+ }
@@ -5,10 +5,10 @@ mutation ($input: AddAddressesToCheckoutInput!) {
5
5
  number
6
6
  state
7
7
  billingAddress {
8
- firstname
8
+ name
9
9
  }
10
10
  shippingAddress {
11
- firstname
11
+ name
12
12
  }
13
13
  },
14
14
  errors {
@@ -0,0 +1,9 @@
1
+ mutation ($input: MarkDefaultShipAddressInput!) {
2
+ markDefaultShipAddress(input: $input) {
3
+ user {
4
+ shipAddress {
5
+ id
6
+ }
7
+ }
8
+ }
9
+ }
@@ -1,7 +1,7 @@
1
1
  mutation ($input: RemoveFromAddressBookInput!) {
2
2
  removeFromAddressBook(input: $input) {
3
3
  user {
4
- defaultAddress {
4
+ shipAddress {
5
5
  id
6
6
  }
7
7
  addresses {
@@ -2,7 +2,7 @@ mutation ($input: SaveInAddressBookInput!) {
2
2
  saveInAddressBook(input: $input) {
3
3
  user {
4
4
  email
5
- defaultAddress {
5
+ shipAddress {
6
6
  address1
7
7
  address2
8
8
  alternativePhone
@@ -13,8 +13,7 @@ mutation ($input: SaveInAddressBookInput!) {
13
13
  name
14
14
  }
15
15
  createdAt
16
- firstname
17
- lastname
16
+ name
18
17
  phone
19
18
  stateName
20
19
  state {
@@ -24,6 +23,9 @@ mutation ($input: SaveInAddressBookInput!) {
24
23
  updatedAt
25
24
  zipcode
26
25
  }
26
+ billAddress {
27
+ name
28
+ }
27
29
  addresses {
28
30
  nodes {
29
31
  address1
@@ -36,8 +38,7 @@ mutation ($input: SaveInAddressBookInput!) {
36
38
  name
37
39
  }
38
40
  createdAt
39
- firstname
40
- lastname
41
+ name
41
42
  phone
42
43
  stateName
43
44
  state {
@@ -21,8 +21,7 @@ query {
21
21
  }
22
22
  id
23
23
  createdAt
24
- firstname
25
- lastname
24
+ name
26
25
  phone
27
26
  state {
28
27
  id
@@ -21,8 +21,7 @@ query {
21
21
  }
22
22
  id
23
23
  createdAt
24
- firstname
25
- lastname
24
+ name
26
25
  phone
27
26
  state {
28
27
  id
@@ -18,9 +18,8 @@ query {
18
18
  updatedAt
19
19
  }
20
20
  createdAt
21
- firstname
21
+ name
22
22
  id
23
- lastname
24
23
  phone
25
24
  state {
26
25
  name
@@ -50,9 +49,8 @@ query {
50
49
  updatedAt
51
50
  }
52
51
  createdAt
53
- firstname
52
+ name
54
53
  id
55
- lastname
56
54
  phone
57
55
  state {
58
56
  name
@@ -66,7 +64,7 @@ query {
66
64
  }
67
65
  createdAt
68
66
  currentSignInAt
69
- defaultAddress {
67
+ shipAddress {
70
68
  address1
71
69
  address2
72
70
  alternativePhone
@@ -83,9 +81,8 @@ query {
83
81
  updatedAt
84
82
  }
85
83
  createdAt
86
- firstname
84
+ name
87
85
  id
88
- lastname
89
86
  phone
90
87
  state {
91
88
  name
@@ -118,9 +115,8 @@ query {
118
115
  updatedAt
119
116
  }
120
117
  createdAt
121
- firstname
118
+ name
122
119
  id
123
- lastname
124
120
  phone
125
121
  state {
126
122
  name
@@ -159,9 +155,8 @@ query {
159
155
  updatedAt
160
156
  }
161
157
  createdAt
162
- firstname
158
+ name
163
159
  id
164
- lastname
165
160
  phone
166
161
  state {
167
162
  name
@@ -22,8 +22,7 @@
22
22
  "updatedAt": "2012-12-21T12:00:00Z"
23
23
  },
24
24
  "createdAt": "2012-12-21T12:00:00Z",
25
- "firstname": "John",
26
- "lastname": null,
25
+ "name": "John Von Doe",
27
26
  "phone": "555-555-0199",
28
27
  "state": {
29
28
  "id": 2,
@@ -57,8 +56,7 @@
57
56
  "updatedAt": "2012-12-21T12:00:00Z"
58
57
  },
59
58
  "createdAt": "2012-12-21T12:00:00Z",
60
- "firstname": "John",
61
- "lastname": null,
59
+ "name": "John Von Doe",
62
60
  "phone": "555-555-0199",
63
61
  "state": {
64
62
  "id": 4,
@@ -22,8 +22,7 @@
22
22
  "updatedAt": "2012-12-21T12:00:00Z"
23
23
  },
24
24
  "createdAt": "2012-12-21T12:00:00Z",
25
- "firstname": "John",
26
- "lastname": null,
25
+ "name": "John Von Doe",
27
26
  "phone": "555-555-0199",
28
27
  "state": {
29
28
  "id": 1,
@@ -57,8 +56,7 @@
57
56
  "updatedAt": "2012-12-21T12:00:00Z"
58
57
  },
59
58
  "createdAt": "2012-12-21T12:00:00Z",
60
- "firstname": "John",
61
- "lastname": null,
59
+ "name": "John Von Doe",
62
60
  "phone": "555-555-0199",
63
61
  "state": {
64
62
  "id": 3,
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "default": true,
24
24
  "defaultCurrency": "USD",
25
- "mailFromAddress": "spree@example.org",
25
+ "mailFromAddress": "solidus_graphql_api@example.org",
26
26
  "metaDescription": "store description",
27
27
  "metaKeywords": "store, metaKeywords",
28
28
  "name": "Solidus Test Store",
@@ -20,9 +20,8 @@
20
20
  "updatedAt": "2012-12-21T12:00:00Z"
21
21
  },
22
22
  "createdAt": "2012-12-21T12:00:00Z",
23
- "firstname": "John",
23
+ "name": "John Von Doe",
24
24
  "id": 1,
25
- "lastname": null,
26
25
  "phone": "555-555-0199",
27
26
  "state": {
28
27
  "name": "Alabama",
@@ -51,9 +50,8 @@
51
50
  "updatedAt": "2012-12-21T12:00:00Z"
52
51
  },
53
52
  "createdAt": "2012-12-21T12:00:00Z",
54
- "firstname": "John",
53
+ "name": "John Von Doe",
55
54
  "id": 2,
56
- "lastname": null,
57
55
  "phone": "555-555-0199",
58
56
  "state": {
59
57
  "name": "Alabama",
@@ -84,9 +82,8 @@
84
82
  "updatedAt": "2012-12-21T12:00:00Z"
85
83
  },
86
84
  "createdAt": "2012-12-21T12:00:00Z",
87
- "firstname": "John",
85
+ "name": "John Von Doe",
88
86
  "id": 2,
89
- "lastname": null,
90
87
  "phone": "555-555-0199",
91
88
  "state": {
92
89
  "name": "Alabama",
@@ -100,7 +97,7 @@
100
97
  },
101
98
  "createdAt": "2012-12-21T12:00:00Z",
102
99
  "currentSignInAt": null,
103
- "defaultAddress": {
100
+ "shipAddress": {
104
101
  "address1": "A Different Road",
105
102
  "address2": "Northwest",
106
103
  "alternativePhone": "555-555-0199",
@@ -117,9 +114,8 @@
117
114
  "updatedAt": "2012-12-21T12:00:00Z"
118
115
  },
119
116
  "createdAt": "2012-12-21T12:00:00Z",
120
- "firstname": "John",
117
+ "name": "John Von Doe",
121
118
  "id": 1,
122
- "lastname": null,
123
119
  "phone": "555-555-0199",
124
120
  "state": {
125
121
  "name": "Alabama",
@@ -152,9 +148,8 @@
152
148
  "updatedAt": "2012-12-21T12:00:00Z"
153
149
  },
154
150
  "createdAt": "2012-12-21T12:00:00Z",
155
- "firstname": "John",
151
+ "name": "John Von Doe",
156
152
  "id": 1,
157
- "lastname": null,
158
153
  "phone": "555-555-0199",
159
154
  "state": {
160
155
  "name": "Alabama",
@@ -193,9 +188,8 @@
193
188
  "updatedAt": "2012-12-21T12:00:00Z"
194
189
  },
195
190
  "createdAt": "2012-12-21T12:00:00Z",
196
- "firstname": "John",
191
+ "name": "John Von Doe",
197
192
  "id": 1,
198
- "lastname": null,
199
193
  "phone": "555-555-0199",
200
194
  "state": {
201
195
  "name": "Alabama",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "createdAt": "2012-12-21T12:00:00Z",
18
18
  "description": null,
19
- "iconUrl": "/assets/default_taxon.png",
19
+ "iconUrl": "<%= taxon_url %>",
20
20
  "id": 3,
21
21
  "metaDescription": null,
22
22
  "metaKeywords": null,
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "createdAt": "2012-12-21T12:00:00Z",
34
34
  "description": "Brand description",
35
- "iconUrl": "/assets/default_taxon.png",
35
+ "iconUrl": "<%= brand_url %>",
36
36
  "id": 1,
37
37
  "metaDescription": "Brand meta description",
38
38
  "metaKeywords": "Brand meta keywords",
@@ -50,7 +50,7 @@
50
50
  {
51
51
  "createdAt": "2012-12-21T12:00:00Z",
52
52
  "description": null,
53
- "iconUrl": "/assets/default_taxon.png",
53
+ "iconUrl": "<%= taxon_url %>",
54
54
  "id": 3,
55
55
  "metaDescription": null,
56
56
  "metaKeywords": null,
@@ -66,7 +66,7 @@
66
66
  },
67
67
  "createdAt": "2012-12-21T12:00:00Z",
68
68
  "description": "Brand description",
69
- "iconUrl": "/assets/default_taxon.png",
69
+ "iconUrl": "<%= brand_url %>",
70
70
  "id": 1,
71
71
  "metaDescription": "Brand meta description",
72
72
  "metaKeywords": "Brand meta keywords",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "createdAt": "2012-12-21T12:00:00Z",
84
84
  "description": null,
85
- "iconUrl": "/assets/default_taxon.png",
85
+ "iconUrl": "<%= taxon_url %>",
86
86
  "id": 3,
87
87
  "metaDescription": null,
88
88
  "metaKeywords": null,
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "createdAt": "2012-12-21T12:00:00Z",
110
110
  "description": null,
111
- "iconUrl": "/assets/default_taxon.png",
111
+ "iconUrl": "<%= category_url %>",
112
112
  "id": 2,
113
113
  "metaDescription": null,
114
114
  "metaKeywords": null,
@@ -126,7 +126,7 @@
126
126
  },
127
127
  "createdAt": "2012-12-21T12:00:00Z",
128
128
  "description": null,
129
- "iconUrl": "/assets/default_taxon.png",
129
+ "iconUrl": "<%= category_url %>",
130
130
  "id": 2,
131
131
  "metaDescription": null,
132
132
  "metaKeywords": null,
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Helpers
4
+ module ActiveRecord
5
+ def run_migrations(&block)
6
+ migration = Class.new(::ActiveRecord::Migration[6.1]).tap do |klass|
7
+ klass.define_method(:up, &block)
8
+ end
9
+ ::ActiveRecord::Migration.suppress_messages { migration.migrate(:up) }
10
+ end
11
+
12
+ def create_model(name, &block)
13
+ stub_const(name, Class.new(ApplicationRecord)).tap do |klass|
14
+ klass.class_eval(&block) if block_given?
15
+ end
16
+ end
17
+ end
18
+ end