solidus_graphql_api 0.1.0 → 0.3.0

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 (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