integrated thematique in serahc results
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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){
|
||||
|
Reference in New Issue
Block a user