12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/graphql/has_helpers/resolvers/lookup.rb', line 12
def resolve(id:, type:)
resource = ::HasHelpers::Resources.lookup(type)
return unless resource
klass = type.safe_constantize
return unless klass
if [::HasHelpers::ResourceType::BASE, ::HasHelpers::ResourceType::TYPE].include?(resource && resource.resource_type)
{
id: id,
base_resource: klass.name,
base_resource_id: id,
}
elsif (instance = klass.find(id)) && instance.respond_to?(:owner) && instance.owner
{
id: id,
base_resource: instance.owner.class.name,
base_resource_id: instance.owner.id,
nested_resource: klass.name,
nested_resource_id: id
}
end
end
|