ソースを参照

Merge pull request #284 from Shopify/fulfillment-requests

Adds FulfillmentRequest
Kirsten Westeinde 8 年 前
コミット
3197773b7b

+ 11 - 0
lib/shopify_api/resources/fulfillment_request.rb

@@ -0,0 +1,11 @@
+module ShopifyAPI
+  class FulfillmentRequest < Base
+    init_prefix :order
+
+    def order_id
+      @prefix_options[:order_id]
+    end
+
+    def cancel; load_attributes_from_response(post(:cancel, {}, only_id)); end
+  end
+end

+ 28 - 0
test/fixtures/fulfillment_request.json

@@ -0,0 +1,28 @@
+{
+   "fulfillment_request":{
+      "id":695890229,
+      "shop_id":690933842,
+      "order_id":450789469,
+      "fulfillment_service_id":755357713,
+      "service_handle":"shipwire-app",
+      "delivered_at":null,
+      "failed_at":null,
+      "failure_message":null,
+      "receipt":null,
+      "is_not_deleted":true,
+      "deleted_at":null,
+      "created_at":"2016-07-12T11:23:42-04:00",
+      "updated_at":"2016-07-12T11:23:42-04:00",
+      "fulfillment_request_line_items":[
+         {
+            "id":6,
+            "shop_id":690933842,
+            "fulfillment_request_id":695890229,
+            "line_item_id":466157049,
+            "quantity":1,
+            "created_at":"2016-07-12T11:23:54-04:00",
+            "updated_at":"2016-07-12T11:23:54-04:00"
+         }
+      ]
+   }
+}

+ 29 - 0
test/fulfillment_request_test.rb

@@ -0,0 +1,29 @@
+require 'test_helper'
+
+class FulFillmentTest < Test::Unit::TestCase
+  def setup
+    fake "orders/450789469/fulfillment_requests/695890229", :method => :get, :body => load_fixture('fulfillment_request')
+  end
+
+  context "#cancel" do
+    should "be able to cancel fulfillment request" do
+      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, :params => {:order_id => 450789469})
+
+      cancelled = ActiveSupport::JSON.decode(load_fixture('fulfillment_request'))
+      cancelled['failure_message'] = 'cancelled'
+      fake "orders/450789469/fulfillments/695890229/cancel", :method => :post, :body => ActiveSupport::JSON.encode(cancelled)
+
+      assert fulfillment_request.failure_message.blank?
+      assert fulfillment_request.cancel
+      assert_equal 'cancelled', fulfillment_request.failure_message
+    end
+  end
+
+  context "#find" do
+    should "be able to find fulfillment request" do
+      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, :params => {:order_id => 450789469})
+      assert_equal 695890229, fulfillment_request.id
+      assert_equal 450789469, fulfillment_request.order_id
+    end
+  end
+end