Module: ShopifyToolkit::MetaobjectStatements
Constant Summary
Constants included
from AdminClient
AdminClient::API_VERSION
Class Method Summary
collapse
Instance Method Summary
collapse
#api_version, #handle_shopify_admin_client_errors, #shopify_admin_client
#announce, #say, #say_with_time, #write
Class Method Details
.define(&block) ⇒ Object
110
111
112
113
114
115
116
|
# File 'lib/shopify_toolkit/metaobject_statements.rb', line 110
def self.define(&block)
context = Object.new
context.extend(self)
context.instance_eval(&block) if block_given?(&block)
context
end
|
.log_time(method_name) ⇒ Object
10
11
12
13
14
15
|
# File 'lib/shopify_toolkit/metaobject_statements.rb', line 10
def self.log_time(method_name)
current_method = instance_method(method_name)
define_method(method_name) do |*args, **kwargs, &block|
say_with_time("#{method_name}(#{args.map(&:inspect).join(', ')})") { current_method.bind(self).call(*args, **kwargs, &block) }
end
end
|
Instance Method Details
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/shopify_toolkit/metaobject_statements.rb', line 57
def get_metaobject_definition_gid(type)
result =
shopify_admin_client
.query(
query:
"# GraphQL
query GetMetaobjectDefinitionID($type: String!) {
metaobjectDefinitionByType(type: $type) {
id
}
}",
variables: { type: type.to_s },
)
.tap { handle_shopify_admin_client_errors(_1) }
.body
result.dig("data", "metaobjectDefinitionByType", "id")
end
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/shopify_toolkit/metaobject_statements.rb', line 76
def update_metaobject_definition(type, **options)
existing_gid = get_metaobject_definition_gid(type)
raise "Metaobject #{type} does not exist" unless existing_gid
query =
"# GraphQL
mutation UpdateMetaobjectDefinition($id: ID!, $definition: MetaobjectDefinitionUpdateInput!) {
metaobjectDefinitionUpdate(id: $id, definition: $definition) {
metaobjectDefinition {
id
name
type
fieldDefinitions {
name
key
}
}
userErrors {
field
message
code
}
}
}
"
variables = { id: existing_gid, definition: { **options } }
shopify_admin_client
.query(query:, variables:)
.tap { handle_shopify_admin_client_errors(_1, "data.metaobjectDefinitionUpdate.userErrors") }
end
|