spree_api 1.2.5 → 1.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/.rspec +1 -0
  2. data/app/controllers/spree/api/addresses_controller.rb +17 -0
  3. data/app/controllers/spree/api/base_controller.rb +111 -0
  4. data/app/controllers/spree/api/countries_controller.rb +14 -0
  5. data/app/controllers/spree/api/images_controller.rb +29 -0
  6. data/app/controllers/spree/api/line_items_controller.rb +38 -0
  7. data/app/controllers/spree/api/orders_controller.rb +81 -0
  8. data/app/controllers/spree/api/payments_controller.rb +75 -0
  9. data/app/controllers/spree/api/product_properties_controller.rb +61 -0
  10. data/app/controllers/spree/api/products_controller.rb +45 -0
  11. data/app/controllers/spree/api/return_authorizations_controller.rb +50 -0
  12. data/app/controllers/spree/api/shipments_controller.rb +41 -0
  13. data/app/controllers/spree/api/taxonomies_controller.rb +46 -0
  14. data/app/controllers/spree/api/taxons_controller.rb +49 -0
  15. data/app/controllers/spree/api/variants_controller.rb +71 -0
  16. data/app/controllers/spree/api/zones_controller.rb +43 -0
  17. data/app/helpers/spree/api/api_helpers.rb +0 -5
  18. data/app/overrides/api_admin_user_edit_form.rb +1 -1
  19. data/app/views/spree/admin/users/_api_fields.html.erb +26 -14
  20. data/app/views/spree/api/{v1/addresses/show.rabl → addresses/show.v1.rabl} +0 -0
  21. data/app/views/spree/api/{v1/countries/index.rabl → countries/index.v1.rabl} +0 -0
  22. data/app/views/spree/api/{v1/countries/show.rabl → countries/show.v1.rabl} +0 -0
  23. data/app/views/spree/api/{v1/errors/gateway_error.rabl → errors/gateway_error.v1.rabl} +0 -0
  24. data/app/views/spree/api/{v1/errors/invalid_api_key.rabl → errors/invalid_api_key.v1.rabl} +0 -0
  25. data/app/views/spree/api/{v1/errors/invalid_resource.rabl → errors/invalid_resource.v1.rabl} +0 -0
  26. data/app/views/spree/api/{v1/errors/must_specify_api_key.rabl → errors/must_specify_api_key.v1.rabl} +0 -0
  27. data/app/views/spree/api/{v1/errors/not_found.rabl → errors/not_found.v1.rabl} +0 -0
  28. data/app/views/spree/api/{v1/errors/unauthorized.rabl → errors/unauthorized.v1.rabl} +0 -0
  29. data/app/views/spree/api/{v1/images/show.rabl → images/show.v1.rabl} +0 -0
  30. data/app/views/spree/api/{v1/line_items/new.rabl → line_items/new.v1.rabl} +0 -0
  31. data/app/views/spree/api/{v1/line_items/show.rabl → line_items/show.v1.rabl} +1 -1
  32. data/app/views/spree/api/{v1/orders/address.rabl → orders/address.v1.rabl} +0 -0
  33. data/app/views/spree/api/{v1/orders/canceled.rabl → orders/canceled.v1.rabl} +0 -0
  34. data/app/views/spree/api/{v1/orders/cart.rabl → orders/cart.v1.rabl} +0 -0
  35. data/app/views/spree/api/{v1/orders/complete.rabl → orders/complete.v1.rabl} +0 -0
  36. data/app/views/spree/api/{v1/orders/could_not_transition.rabl → orders/could_not_transition.v1.rabl} +0 -0
  37. data/app/views/spree/api/{v1/orders/delivery.rabl → orders/delivery.v1.rabl} +0 -0
  38. data/app/views/spree/api/{v1/orders/index.rabl → orders/index.v1.rabl} +0 -0
  39. data/app/views/spree/api/{v1/orders/invalid_shipping_method.rabl → orders/invalid_shipping_method.v1.rabl} +0 -0
  40. data/app/views/spree/api/{v1/orders/payment.rabl → orders/payment.v1.rabl} +0 -0
  41. data/app/views/spree/api/{v1/orders/show.rabl → orders/show.v1.rabl} +6 -6
  42. data/app/views/spree/api/{v1/payments/credit_over_limit.rabl → payments/credit_over_limit.v1.rabl} +0 -0
  43. data/app/views/spree/api/{v1/payments/index.rabl → payments/index.v1.rabl} +0 -0
  44. data/app/views/spree/api/{v1/payments/new.rabl → payments/new.v1.rabl} +0 -0
  45. data/app/views/spree/api/{v1/payments/show.rabl → payments/show.v1.rabl} +0 -0
  46. data/app/views/spree/api/{v1/product_properties/index.rabl → product_properties/index.v1.rabl} +0 -0
  47. data/app/views/spree/api/{v1/product_properties/new.rabl → product_properties/new.v1.rabl} +0 -0
  48. data/app/views/spree/api/{v1/product_properties/show.rabl → product_properties/show.v1.rabl} +0 -0
  49. data/app/views/spree/api/{v1/products/index.rabl → products/index.v1.rabl} +1 -2
  50. data/app/views/spree/api/{v1/products/new.rabl → products/new.v1.rabl} +0 -0
  51. data/app/views/spree/api/{v1/products/product.rabl → products/product.v1.rabl} +0 -0
  52. data/app/views/spree/api/{v1/products/show.rabl → products/show.v1.rabl} +1 -1
  53. data/app/views/spree/api/{v1/return_authorizations/index.rabl → return_authorizations/index.v1.rabl} +0 -0
  54. data/app/views/spree/api/{v1/return_authorizations/new.rabl → return_authorizations/new.v1.rabl} +0 -0
  55. data/app/views/spree/api/{v1/return_authorizations/show.rabl → return_authorizations/show.v1.rabl} +0 -0
  56. data/app/views/spree/api/{v1/shipments/cannot_ready_shipment.rabl → shipments/cannot_ready_shipment.v1.rabl} +0 -0
  57. data/app/views/spree/api/{v1/shipments/show.rabl → shipments/show.v1.rabl} +0 -0
  58. data/app/views/spree/api/{v1/taxonomies/index.rabl → taxonomies/index.v1.rabl} +1 -1
  59. data/app/views/spree/api/{v1/taxonomies/nested.rabl → taxonomies/nested.v1.rabl} +1 -1
  60. data/app/views/spree/api/{v1/taxonomies/new.rabl → taxonomies/new.v1.rabl} +0 -0
  61. data/app/views/spree/api/{v1/taxonomies/show.rabl → taxonomies/show.v1.rabl} +1 -1
  62. data/app/views/spree/api/{v1/taxons/index.rabl → taxons/index.v1.rabl} +1 -1
  63. data/app/views/spree/api/{v1/taxons/new.rabl → taxons/new.v1.rabl} +0 -0
  64. data/app/views/spree/api/{v1/taxons/show.rabl → taxons/show.v1.rabl} +0 -0
  65. data/app/views/spree/api/{v1/taxons/taxons.rabl → taxons/taxons.v1.rabl} +1 -1
  66. data/app/views/spree/api/{v1/variants/index.rabl → variants/index.v1.rabl} +0 -0
  67. data/app/views/spree/api/{v1/variants/new.rabl → variants/new.v1.rabl} +0 -0
  68. data/app/views/spree/api/{v1/variants/show.rabl → variants/show.v1.rabl} +1 -1
  69. data/app/views/spree/api/{v1/variants/variant.rabl → variants/variant.v1.rabl} +0 -0
  70. data/app/views/spree/api/{v1/zones/index.rabl → zones/index.v1.rabl} +1 -1
  71. data/app/views/spree/api/{v1/zones/show.rabl → zones/show.v1.rabl} +0 -0
  72. data/config/initializers/metal_load_paths.rb +1 -1
  73. data/config/routes.rb +34 -37
  74. data/db/migrate/20120411123334_resize_api_key_field.rb +1 -1
  75. data/lib/spree/api/engine.rb +8 -1
  76. data/lib/spree_api.rb +1 -0
  77. data/spec/controllers/spree/api/{v1/addresses_controller_spec.rb → addresses_controller_spec.rb} +3 -3
  78. data/spec/controllers/spree/api/{v1/base_controller_spec.rb → base_controller_spec.rb} +2 -9
  79. data/spec/controllers/spree/api/{v1/countries_controller_spec.rb → countries_controller_spec.rb} +5 -5
  80. data/spec/controllers/spree/api/{v1/images_controller_spec.rb → images_controller_spec.rb} +1 -1
  81. data/spec/controllers/spree/api/{v1/line_items_controller_spec.rb → line_items_controller_spec.rb} +2 -2
  82. data/spec/controllers/spree/api/{v1/orders_controller_spec.rb → orders_controller_spec.rb} +7 -12
  83. data/spec/controllers/spree/api/{v1/payments_controller_spec.rb → payments_controller_spec.rb} +2 -2
  84. data/spec/controllers/spree/api/{v1/product_properties_controller_spec.rb → product_properties_controller_spec.rb} +2 -3
  85. data/spec/controllers/spree/api/{v1/products_controller_spec.rb → products_controller_spec.rb} +14 -7
  86. data/spec/controllers/spree/api/{v1/return_authorizations_controller_spec.rb → return_authorizations_controller_spec.rb} +4 -4
  87. data/spec/controllers/spree/api/{v1/shipments_controller_spec.rb → shipments_controller_spec.rb} +4 -9
  88. data/spec/controllers/spree/api/{v1/taxonomies_controller_spec.rb → taxonomies_controller_spec.rb} +11 -11
  89. data/spec/controllers/spree/api/{v1/taxons_controller_spec.rb → taxons_controller_spec.rb} +7 -7
  90. data/spec/controllers/spree/api/{v1/unauthenticated_products_controller_spec.rb → unauthenticated_products_controller_spec.rb} +1 -1
  91. data/spec/controllers/spree/api/{v1/variants_controller_spec.rb → variants_controller_spec.rb} +4 -5
  92. data/spec/controllers/spree/api/{v1/zones_controller_spec.rb → zones_controller_spec.rb} +7 -7
  93. data/spec/support/controller_hacks.rb +1 -1
  94. data/spec/support/have_attributes_matcher.rb +2 -2
  95. data/spree_api.gemspec +1 -0
  96. metadata +139 -115
  97. checksums.yaml +0 -7
  98. data/app/controllers/spree/api/v1/addresses_controller.rb +0 -19
  99. data/app/controllers/spree/api/v1/base_controller.rb +0 -111
  100. data/app/controllers/spree/api/v1/countries_controller.rb +0 -18
  101. data/app/controllers/spree/api/v1/images_controller.rb +0 -32
  102. data/app/controllers/spree/api/v1/inventory_units_controller.rb +0 -50
  103. data/app/controllers/spree/api/v1/line_items_controller.rb +0 -40
  104. data/app/controllers/spree/api/v1/orders_controller.rb +0 -83
  105. data/app/controllers/spree/api/v1/payments_controller.rb +0 -77
  106. data/app/controllers/spree/api/v1/product_properties_controller.rb +0 -64
  107. data/app/controllers/spree/api/v1/products_controller.rb +0 -47
  108. data/app/controllers/spree/api/v1/return_authorizations_controller.rb +0 -53
  109. data/app/controllers/spree/api/v1/shipments_controller.rb +0 -43
  110. data/app/controllers/spree/api/v1/taxonomies_controller.rb +0 -50
  111. data/app/controllers/spree/api/v1/taxons_controller.rb +0 -51
  112. data/app/controllers/spree/api/v1/variants_controller.rb +0 -74
  113. data/app/controllers/spree/api/v1/zones_controller.rb +0 -45
  114. data/app/views/spree/api/v1/inventory_units/show.rabl +0 -2
  115. data/spec/controllers/spree/api/v1/inventory_units_controller_spec.rb +0 -46
@@ -0,0 +1,50 @@
1
+ module Spree
2
+ module Api
3
+ class ReturnAuthorizationsController < Spree::Api::BaseController
4
+ before_filter :authorize_admin!
5
+
6
+ def index
7
+ @return_authorizations = order.return_authorizations.ransack(params[:q]).result
8
+ .page(params[:page]).per(params[:per_page])
9
+ end
10
+
11
+ def show
12
+ @return_authorization = order.return_authorizations.find(params[:id])
13
+ end
14
+
15
+ def create
16
+ @return_authorization = order.return_authorizations.build(params[:return_authorization], :as => :api)
17
+ if @return_authorization.save
18
+ render :show, :status => 201
19
+ else
20
+ invalid_resource!(@return_authorization)
21
+ end
22
+ end
23
+
24
+ def update
25
+ @return_authorization = order.return_authorizations.find(params[:id])
26
+ if @return_authorization.update_attributes(params[:return_authorization])
27
+ render :show
28
+ else
29
+ invalid_resource!(@return_authorization)
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @return_authorization = order.return_authorizations.find(params[:id])
35
+ @return_authorization.destroy
36
+ render :text => nil, :status => 204
37
+ end
38
+
39
+ private
40
+
41
+ def order
42
+ @order ||= Order.find_by_number!(params[:order_id])
43
+ end
44
+
45
+ def authorize_admin!
46
+ authorize! :manage, Spree::ReturnAuthorization
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,41 @@
1
+ module Spree
2
+ module Api
3
+ class ShipmentsController < Spree::Api::BaseController
4
+ before_filter :find_order
5
+ before_filter :find_and_update_shipment, :only => [:ship, :ready]
6
+
7
+ def ready
8
+ authorize! :read, Shipment
9
+ unless @shipment.ready?
10
+ if @shipment.can_ready?
11
+ @shipment.ready!
12
+ else
13
+ render "spree/api/shipments/cannot_ready_shipment", :status => 422 and return
14
+ end
15
+ end
16
+ render :show
17
+ end
18
+
19
+ def ship
20
+ authorize! :read, Shipment
21
+ unless @shipment.shipped?
22
+ @shipment.ship!
23
+ end
24
+ render :show
25
+ end
26
+
27
+ private
28
+
29
+ def find_order
30
+ @order = Spree::Order.find_by_number!(params[:order_id])
31
+ authorize! :read, @order
32
+ end
33
+
34
+ def find_and_update_shipment
35
+ @shipment = @order.shipments.find_by_number!(params[:id])
36
+ @shipment.update_attributes(params[:shipment])
37
+ @shipment.reload
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ module Spree
2
+ module Api
3
+ class TaxonomiesController < Spree::Api::BaseController
4
+ def index
5
+ @taxonomies = Taxonomy.order('name').includes(:root => :children).ransack(params[:q]).result
6
+ .page(params[:page]).per(params[:per_page])
7
+ end
8
+
9
+ def show
10
+ @taxonomy = Taxonomy.find(params[:id])
11
+ end
12
+
13
+ def create
14
+ authorize! :create, Taxonomy
15
+ @taxonomy = Taxonomy.new(params[:taxonomy])
16
+ if @taxonomy.save
17
+ render :show, :status => 201
18
+ else
19
+ invalid_resource!(@taxonomy)
20
+ end
21
+ end
22
+
23
+ def update
24
+ authorize! :update, Taxonomy
25
+ if taxonomy.update_attributes(params[:taxonomy])
26
+ render :show, :status => 200
27
+ else
28
+ invalid_resource!(taxonomy)
29
+ end
30
+ end
31
+
32
+ def destroy
33
+ authorize! :delete, Taxonomy
34
+ taxonomy.destroy
35
+ render :text => nil, :status => 204
36
+ end
37
+
38
+ private
39
+
40
+ def taxonomy
41
+ @taxonomy ||= Taxonomy.find(params[:id])
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,49 @@
1
+ module Spree
2
+ module Api
3
+ class TaxonsController < Spree::Api::BaseController
4
+ def index
5
+ @taxons = taxonomy.root.children
6
+ end
7
+
8
+ def show
9
+ @taxon = taxon
10
+ end
11
+
12
+ def create
13
+ authorize! :create, Taxon
14
+ @taxon = Taxon.new(params[:taxon])
15
+ if @taxon.save
16
+ render :show, :status => 201
17
+ else
18
+ invalid_resource!(@taxon)
19
+ end
20
+ end
21
+
22
+ def update
23
+ authorize! :update, Taxon
24
+ if taxon.update_attributes(params[:taxon])
25
+ render :show, :status => 200
26
+ else
27
+ invalid_resource!(taxon)
28
+ end
29
+ end
30
+
31
+ def destroy
32
+ authorize! :delete, Taxon
33
+ taxon.destroy
34
+ render :text => nil, :status => 204
35
+ end
36
+
37
+ private
38
+
39
+ def taxonomy
40
+ @taxonomy ||= Taxonomy.find(params[:taxonomy_id])
41
+ end
42
+
43
+ def taxon
44
+ @taxon ||= taxonomy.taxons.find(params[:id])
45
+ end
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,71 @@
1
+ module Spree
2
+ module Api
3
+ class VariantsController < Spree::Api::BaseController
4
+ before_filter :product
5
+
6
+ def index
7
+ @variants = scope.includes(:option_values).ransack(params[:q]).result.
8
+ page(params[:page]).per(params[:per_page])
9
+ end
10
+
11
+ def show
12
+ @variant = scope.includes(:option_values).find(params[:id])
13
+ end
14
+
15
+ def new
16
+ end
17
+
18
+ def create
19
+ authorize! :create, Variant
20
+ @variant = scope.new(params[:product])
21
+ if @variant.save
22
+ render :show, :status => 201
23
+ else
24
+ invalid_resource!(@variant)
25
+ end
26
+ end
27
+
28
+ def update
29
+ authorize! :update, Variant
30
+ @variant = scope.find(params[:id])
31
+ if @variant.update_attributes(params[:variant])
32
+ render :show, :status => 200
33
+ else
34
+ invalid_resource!(@product)
35
+ end
36
+ end
37
+
38
+ def destroy
39
+ authorize! :delete, Variant
40
+ @variant = scope.find(params[:id])
41
+ @variant.destroy
42
+ render :text => nil, :status => 204
43
+ end
44
+
45
+ private
46
+ def product
47
+ @product ||= Spree::Product.find_by_permalink(params[:product_id]) if params[:product_id]
48
+ end
49
+
50
+ def scope
51
+ if @product
52
+ unless current_api_user.has_spree_role?("admin") || params[:show_deleted]
53
+ variants = @product.variants_including_master
54
+ else
55
+ variants = @product.variants_including_master_and_deleted
56
+ end
57
+ else
58
+ variants = Variant.scoped
59
+ if current_api_user.has_spree_role?("admin")
60
+ unless params[:show_deleted]
61
+ variants = Variant.active
62
+ end
63
+ else
64
+ variants = variants.active
65
+ end
66
+ end
67
+ variants
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,43 @@
1
+ module Spree
2
+ module Api
3
+ class ZonesController < Spree::Api::BaseController
4
+ def index
5
+ @zones = Zone.order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
6
+ end
7
+
8
+ def show
9
+ zone
10
+ end
11
+
12
+ def create
13
+ authorize! :create, Zone
14
+ @zone = Zone.new(map_nested_attributes_keys(Spree::Zone, params[:zone]))
15
+ if @zone.save
16
+ render :show, :status => 201
17
+ else
18
+ invalid_resource!(@zone)
19
+ end
20
+ end
21
+
22
+ def update
23
+ authorize! :update, Zone
24
+ if zone.update_attributes(map_nested_attributes_keys(Spree::Zone, params[:zone]))
25
+ render :show, :status => 200
26
+ else
27
+ invalid_resource!(@zone)
28
+ end
29
+ end
30
+
31
+ def destroy
32
+ authorize! :delete, Zone
33
+ zone.destroy
34
+ render :text => nil, :status => 204
35
+ end
36
+
37
+ private
38
+ def zone
39
+ @zone ||= Spree::Zone.find(params[:id])
40
+ end
41
+ end
42
+ end
43
+ end
@@ -64,11 +64,6 @@ module Spree
64
64
  [:id, :name, :permalink, :position, :parent_id, :taxonomy_id]
65
65
  end
66
66
 
67
- def inventory_unit_attributes
68
- [:id, :lock_version, :state, :variant_id, :order_id,
69
- :shipment_id, :return_authorization_id]
70
- end
71
-
72
67
  def return_authorization_attributes
73
68
  [:id, :number, :state, :amount, :order_id, :reason, :created_at, :updated_at]
74
69
  end
@@ -1,6 +1,6 @@
1
1
  Deface::Override.new(:virtual_path => "spree/admin/users/edit",
2
2
  :name => "api_admin_user_edit_form",
3
- :insert_after => "[data-hook='admin_user_edit_form'], #admin_user_edit_form[data-hook]",
3
+ :insert_after => "[data-hook='admin_user_edit_general_settings']",
4
4
  :partial => "spree/admin/users/api_fields",
5
5
  :disabled => false)
6
6
 
@@ -1,20 +1,32 @@
1
- <h2><%= t('access', :scope => 'spree.api') %></h2>
1
+ <fieldset data-hook="admin_user_api_key" class="omega six columns">
2
+ <legend><%= t('access', :scope => 'spree.api') %></legend>
2
3
 
3
- <% if @user.spree_api_key.present? %>
4
- <p><strong><%= t('key', :scope => 'spree.api') %></strong> <%= @user.spree_api_key %></p>
4
+ <% if @user.spree_api_key.present? %>
5
+ <div class="field">
6
+ <%= label_tag t('key', :scope => 'spree.api') %>:
7
+ <%= @user.spree_api_key %>
8
+ </div>
9
+ <div class="filter-actions actions">
10
+ <%= form_tag spree.clear_api_key_admin_user_path(@user), :method => :put do %>
11
+ <%= button t('clear_key', :scope => 'spree.api'), 'icon-trash' %>
12
+ <% end %>
5
13
 
6
- <%= form_tag spree.clear_api_key_admin_user_path(@user), :method => :put do %>
7
- <%= button t('clear_key', :scope => 'spree.api') %>
8
- <% end %>
14
+ <span class="or"><%= t(:or)%></span>
15
+
16
+ <%= form_tag spree.generate_api_key_admin_user_path(@user), :method => :put do %>
17
+ <%= button t('regenerate_key', :scope => 'spree.api'), 'icon-refresh' %>
18
+ <% end %>
19
+ </div>
9
20
 
10
- <%= form_tag spree.generate_api_key_admin_user_path(@user), :method => :put do %>
11
- <%= button t('regenerate_key', :scope => 'spree.api') %>
12
- <% end %>
21
+ <% else %>
13
22
 
14
- <% else %>
23
+ <div class="no-objects-found"><%= t('no_key', :scope => 'spree.api') %></div>
15
24
 
16
- <p><%= t('no_key', :scope => 'spree.api') %></p>
17
- <%= form_tag spree.generate_api_key_admin_user_path(@user), :method => :put do %>
18
- <%= button t('generate_key', :scope => 'spree.api') %>
25
+ <div class="filter-actions actions">
26
+ <%= form_tag spree.generate_api_key_admin_user_path(@user), :method => :put do %>
27
+ <%= button t('generate_key', :scope => 'spree.api'), 'icon-key' %>
28
+ <% end %>
29
+ </div>
19
30
  <% end %>
20
- <% end %>
31
+
32
+ </fieldset>
@@ -1,5 +1,5 @@
1
1
  object @line_item
2
2
  attributes *line_item_attributes
3
3
  child :variant do
4
- extends "spree/api/v1/variants/variant"
4
+ extends "spree/api/variants/variant"
5
5
  end
@@ -1,20 +1,20 @@
1
1
  object @order
2
2
  attributes *order_attributes
3
3
 
4
- if lookup_context.find_all("spree/api/v1/orders/#{@order.state}").present?
5
- extends "spree/api/v1/orders/#{@order.state}"
4
+ if lookup_context.find_all("spree/api/orders/#{@order.state}").present?
5
+ extends "spree/api/orders/#{@order.state}"
6
6
  end
7
7
 
8
8
  child :billing_address => :bill_address do
9
- extends "spree/api/v1/addresses/show"
9
+ extends "spree/api/addresses/show"
10
10
  end
11
11
 
12
12
  child :shipping_address => :ship_address do
13
- extends "spree/api/v1/addresses/show"
13
+ extends "spree/api/addresses/show"
14
14
  end
15
15
 
16
16
  child :line_items => :line_items do
17
- extends "spree/api/v1/line_items/show"
17
+ extends "spree/api/line_items/show"
18
18
  end
19
19
 
20
20
  child :payments => :payments do
@@ -25,5 +25,5 @@ child :payments => :payments do
25
25
  end
26
26
 
27
27
  child :shipments => :shipments do
28
- extends "spree/api/v1/shipments/show"
28
+ extends "spree/api/shipments/show"
29
29
  end