gql getting concernement from entite

This commit is contained in:
Bachir Soussi Chiadmi 2023-08-18 12:52:06 +02:00
parent b9e092354c
commit d7b9f4d209
4 changed files with 40 additions and 5 deletions

View File

@ -118,7 +118,8 @@ field_settings:
label: Title
datasource_id: 'entity:node'
property_path: title
type: string
type: text
boost: !!float 2
dependencies:
module:
- node
@ -126,7 +127,7 @@ field_settings:
label: Title
datasource_id: 'entity:node'
property_path: title
type: string
type: text
dependencies:
module:
- node
@ -134,7 +135,7 @@ field_settings:
label: 'Entités » Paragraph » Entité » Contenu » Title'
datasource_id: 'entity:node'
property_path: 'field_entite:entity:field_entite:entity:title'
type: string
type: text
dependencies:
config:
- field.storage.node.field_entite

View File

@ -30,7 +30,7 @@ field_settings:
label: 'Experiences vécues » Paragraph » Liens'
datasource_id: 'entity:node'
property_path: 'field_sources:entity:field_liens'
type: string
type: text
dependencies:
config:
- field.storage.node.field_sources
@ -85,7 +85,8 @@ field_settings:
label: Title
datasource_id: 'entity:node'
property_path: title
type: string
type: text
boost: !!float 2
dependencies:
module:
- node

View File

@ -50,6 +50,7 @@ type Entite implements NodeInterface {
proximite: [Entite]
agissante: Boolean
sources: [Source]
concernement: Concernement
}
type Source {

View File

@ -485,6 +485,38 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
->map('field', $builder->fromValue('field_sources'))
);
$registry->addFieldResolver('Entite', 'concernement',
$builder->compose(
$builder->callback(function($parent, $arg){
$entite_nid = $parent->id();
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$paragraph_storage = \Drupal::entityTypeManager()->getStorage('paragraph');
$query = $node_storage->getQuery()
->condition('type', ['concernement'], 'IN')
// ->condition('uid', $parent->id())
->accessCheck(TRUE);
$results = $query->execute();
$concernements = [];
foreach ($results as $nid) {
$concernement = $node_storage->load($nid);
$entite_integre_paragraph_values = $concernement->field_entite->getValue();
foreach ($entite_integre_paragraph_values as $paragraph_ids) {
$paragraph = $paragraph_storage->load($paragraph_ids['target_id']);
$field_entite_values = $paragraph->field_entite->getValue();
if ($field_entite_values[0]['target_id'] === $entite_nid) {
$concernements[] = $nid;
break;
}
}
}
return $concernements[0];
}),
$builder->produce('entity_load')
->map('type', $builder->fromValue('node'))
->map('id', $builder->fromParent())
)
);
}
// ____