Я имею дело с веб-перехватчиками для создания заказов Shopify, и он запускается несколько раз.
def perform(shop_domain:, webhook:)
shop = Shop.find_by(shopify_domain: shop_domain)
found = false
order_item_ids = []
webhook['line_items'].each do |line_item|
line_item['properties'].each do |property|
if property['name'] == 'BJ_PROD'
found = true
order_item_ids << line_item['product_id']
end
end
end
if found
@order = Order.create({
shop: shop,
shopify_order_id: webhook["id"],
status: 'Ordered',
sent_to_admin: false,
order_details: webhook
})
end
session = ShopifyAPI::Session.new(shop.shopify_domain, shop.shopify_token)
session = ShopifyAPI::Base.activate_session(session)
order_item_ids.each do |order_item_id|
product = ShopifyAPI::Product.find(order_item_id)
product.published_at = nil
product.save!
end
shop.with_shopify_session do
end
render status: 200, json: @order.to_json
end
Я пытаюсь использовать статус рендеринга: 200 и head: ok в моем классе OrdersCreateJob, но выдает ошибку, поскольку используется в фоновом задании. Кто-нибудь знает, как бороться с таким сценарием ios?