integrated thematique in serahc results

This commit is contained in:
2020-12-24 14:50:13 +01:00
parent a4bbdecdd2
commit ee97e675e3
12 changed files with 352 additions and 33 deletions

View File

@@ -40,6 +40,17 @@ type Article {
memo: String
}
type SearchResult {
id: Int!
uuid: String!
title: String!
bundle: String
short_description: String
images: [Image]
visuels: [Image]
reference: String
}
type Sample {
showroom: Showroom
location: String

View File

@@ -6,6 +6,10 @@ extend type Query {
materiaux(ids: [Int]): [Materiau]
}
extend type Query {
searchresults(ids: [Int]): [SearchResult]
}
extend type Query {
article(id: Int!): Article
}

View File

@@ -26,6 +26,8 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
$this->addMateriau($registry, $builder);
$this->addSearchResult($registry, $builder);
$this->addSample($registry, $builder);
$this->addArticle($registry, $builder);
@@ -213,11 +215,72 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
);
}
// ___ _
// / __| __ _ _ __ _ __| |___
// \__ \/ _` | ' \| '_ \ / -_)
// |___/\__,_|_|_|_| .__/_\___|
// |_|
// ___ _ ___ _ _
// / __| ___ __ _ _ _ __| |_ | _ \___ ____ _| | |_
// \__ \/ -_) _` | '_/ _| ' \| / -_|_-< || | | _|
// |___/\___\__,_|_| \__|_||_|_|_\___/__/\_,_|_|\__|
protected function addSearchResult(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
$registry->addFieldResolver('Query', 'searchresults',
$builder->produce('entity_load_multiple')
->map('type', $builder->fromValue('node'))
->map('ids', $builder->fromArgument('ids'))
);
$registry->addFieldResolver('SearchResult', 'id',
$builder->produce('entity_id')
->map('entity', $builder->fromParent())
);
$registry->addFieldResolver('SearchResult', 'bundle',
$builder->produce('entity_bundle')
->map('entity', $builder->fromParent())
);
$registry->addFieldResolver('SearchResult', 'uuid',
$builder->produce('entity_uuid')
->map('entity', $builder->fromParent())
);
$registry->addFieldResolver('SearchResult', 'title',
$builder->compose(
$builder->produce('entity_label')
->map('entity', $builder->fromParent())
));
$registry->addFieldResolver('SearchResult', 'short_description',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:node'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('field_short_description.value'))
);
$registry->addFieldResolver('SearchResult', 'images',
$builder->produce('entity_reference')
->map('entity', $builder->fromParent())
->map('field', $builder->fromValue('field_materiau_images'))
);
$registry->addFieldResolver('SearchResult', 'visuels',
$builder->produce('entity_reference')
->map('entity', $builder->fromParent())
->map('field', $builder->fromValue('field_visuel'))
);
$registry->addFieldResolver('SearchResult', 'reference',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:node'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('field_reference.value'))
);
}
// ___ _
// / __| __ _ _ __ _ __| |___
// \__ \/ _` | ' \| '_ \ / -_)
// |___/\__,_|_|_|_| .__/_\___|
// |_|
protected function addSample(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
$registry->addFieldResolver('Sample', 'showroom',
$builder->callback(function($parent, $args){