From b4a0338642a92517e1558ad77b2a6c416d95030d Mon Sep 17 00:00:00 2001 From: Andy Liu Date: Mon, 4 Nov 2024 13:34:29 -0500 Subject: [PATCH] remove removing duplicate code --- lib/shopify_api/webhooks/registration.rb | 17 ++--------------- .../webhooks/registrations/event_bridge.rb | 15 +++++++++++---- lib/shopify_api/webhooks/registrations/http.rb | 15 +++++++++++---- .../webhooks/registrations/pub_sub.rb | 15 +++++++++++---- 4 files changed, 35 insertions(+), 27 deletions(-) diff --git a/lib/shopify_api/webhooks/registration.rb b/lib/shopify_api/webhooks/registration.rb index 82e011ed3..8cd18d543 100644 --- a/lib/shopify_api/webhooks/registration.rb +++ b/lib/shopify_api/webhooks/registration.rb @@ -49,27 +49,14 @@ def mutation_name(webhook_id); end def build_check_query; end sig do - params(body: T::Hash[String, T.untyped]).returns({ + abstract.params(body: T::Hash[String, T.untyped]).returns({ webhook_id: T.nilable(String), current_address: T.nilable(String), fields: T::Array[String], metafield_namespaces: T::Array[String], }) end - def parse_check_result(body) - edges = body.dig("data", "webhookSubscriptions", "edges") || {} - webhook_id = nil - fields = [] - metafield_namespaces = [] - unless edges.empty? - node = edges[0]["node"] - webhook_id = node["id"].to_s - fields = node["includeFields"] || [] - metafield_namespaces = node["metafieldNamespaces"] || [] - end - { webhook_id: webhook_id, current_address: nil, fields: fields, - metafield_namespaces: metafield_namespaces, } - end + def parse_check_result(body); end sig { params(webhook_id: T.nilable(String)).returns(String) } def build_register_query(webhook_id: nil) diff --git a/lib/shopify_api/webhooks/registrations/event_bridge.rb b/lib/shopify_api/webhooks/registrations/event_bridge.rb index 980eb1f4a..8a3653f4b 100644 --- a/lib/shopify_api/webhooks/registrations/event_bridge.rb +++ b/lib/shopify_api/webhooks/registrations/event_bridge.rb @@ -46,7 +46,7 @@ def build_check_query end sig do - params(body: T::Hash[String, T.untyped]).returns({ + override.params(body: T::Hash[String, T.untyped]).returns({ webhook_id: T.nilable(String), current_address: T.nilable(String), fields: T::Array[String], @@ -54,13 +54,20 @@ def build_check_query }) end def parse_check_result(body) - parse_results = super(body) edges = body.dig("data", "webhookSubscriptions", "edges") || {} + webhook_id = nil + fields = [] + metafield_namespaces = [] + current_address = nil unless edges.empty? node = edges[0]["node"] - parse_results[:current_address] = node["endpoint"]["arn"].to_s + webhook_id = node["id"].to_s + current_address = node["endpoint"]["arn"].to_s + fields = node["includeFields"] || [] + metafield_namespaces = node["metafieldNamespaces"] || [] end - parse_results + { webhook_id: webhook_id, current_address: current_address, fields: fields, + metafield_namespaces: metafield_namespaces, } end end end diff --git a/lib/shopify_api/webhooks/registrations/http.rb b/lib/shopify_api/webhooks/registrations/http.rb index 6d342b92a..a3c0cf48a 100644 --- a/lib/shopify_api/webhooks/registrations/http.rb +++ b/lib/shopify_api/webhooks/registrations/http.rb @@ -52,7 +52,7 @@ def build_check_query end sig do - params(body: T::Hash[String, T.untyped]).returns({ + override.params(body: T::Hash[String, T.untyped]).returns({ webhook_id: T.nilable(String), current_address: T.nilable(String), fields: T::Array[String], @@ -60,18 +60,25 @@ def build_check_query }) end def parse_check_result(body) - parse_results = super(body) edges = body.dig("data", "webhookSubscriptions", "edges") || {} + webhook_id = nil + fields = [] + metafield_namespaces = [] + current_address = nil unless edges.empty? node = edges[0]["node"] - parse_results[:current_address] = + webhook_id = node["id"].to_s + current_address = if node.key?("endpoint") node["endpoint"]["callbackUrl"].to_s else node["callbackUrl"].to_s end + fields = node["includeFields"] || [] + metafield_namespaces = node["metafieldNamespaces"] || [] end - parse_results + { webhook_id: webhook_id, current_address: current_address, fields: fields, + metafield_namespaces: metafield_namespaces, } end end end diff --git a/lib/shopify_api/webhooks/registrations/pub_sub.rb b/lib/shopify_api/webhooks/registrations/pub_sub.rb index ddd47ffba..183ba890b 100644 --- a/lib/shopify_api/webhooks/registrations/pub_sub.rb +++ b/lib/shopify_api/webhooks/registrations/pub_sub.rb @@ -51,7 +51,7 @@ def build_check_query end sig do - params(body: T::Hash[String, T.untyped]).returns({ + override.params(body: T::Hash[String, T.untyped]).returns({ webhook_id: T.nilable(String), current_address: T.nilable(String), fields: T::Array[String], @@ -59,14 +59,21 @@ def build_check_query }) end def parse_check_result(body) - parse_results = super(body) edges = body.dig("data", "webhookSubscriptions", "edges") || {} + webhook_id = nil + fields = [] + metafield_namespaces = [] + current_address = nil unless edges.empty? node = edges[0]["node"] - parse_results[:current_address] = + webhook_id = node["id"].to_s + current_address = "pubsub://#{node["endpoint"]["pubSubProject"]}:#{node["endpoint"]["pubSubTopic"]}" + fields = node["includeFields"] || [] + metafield_namespaces = node["metafieldNamespaces"] || [] end - parse_results + { webhook_id: webhook_id, current_address: current_address, fields: fields, + metafield_namespaces: metafield_namespaces, } end end end