diff --git a/src/config/sync/field.field.paragraph.source.field_audio.yml b/src/config/sync/field.field.paragraph.source.field_audio.yml index a8b6467..38d410f 100644 --- a/src/config/sync/field.field.paragraph.source.field_audio.yml +++ b/src/config/sync/field.field.paragraph.source.field_audio.yml @@ -21,7 +21,7 @@ settings: handler: 'default:file' handler_settings: { } file_directory: '[date:custom:Y]-[date:custom:m]' - file_extensions: ogg + file_extensions: 'ogg mp3 flac' max_filesize: '' description_field: true field_type: file diff --git a/src/web/modules/custom/ouatt_graphql/graphql/ouatt_extension.base.graphqls b/src/web/modules/custom/ouatt_graphql/graphql/ouatt_extension.base.graphqls index 7ed2d26..b94ec3b 100644 --- a/src/web/modules/custom/ouatt_graphql/graphql/ouatt_extension.base.graphqls +++ b/src/web/modules/custom/ouatt_graphql/graphql/ouatt_extension.base.graphqls @@ -32,10 +32,19 @@ type Entite implements NodeInterface { title: String! path: String! author: String - texte: String + action: String + menacemaintien: String + sources: [Source] +} + +type Source { + audios: Filefield + date: Date + documents: [Filefield] + description: String images: [Image] - fichiers: [Filefield] liens: [Link] + videos: [VideoLink] } type Static implements NodeInterface { diff --git a/src/web/modules/custom/ouatt_graphql/src/Plugin/GraphQL/SchemaExtension/OuattSchemaExtension.php b/src/web/modules/custom/ouatt_graphql/src/Plugin/GraphQL/SchemaExtension/OuattSchemaExtension.php index f36c17f..1e2b184 100644 --- a/src/web/modules/custom/ouatt_graphql/src/Plugin/GraphQL/SchemaExtension/OuattSchemaExtension.php +++ b/src/web/modules/custom/ouatt_graphql/src/Plugin/GraphQL/SchemaExtension/OuattSchemaExtension.php @@ -36,6 +36,8 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { // $this->addEntites($registry, $builder); // + $this->addSource($registry, $builder); + // $this->addStatic($registry, $builder); // $this->addGroup($registry, $builder); @@ -259,7 +261,6 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { // | _| | '_ \| __| | __/ _ \/ __| // | |___| | | | |_| | || __/\__ \ // |_____|_| |_|\__|_|\__\___||___/ - protected function addEntites(ResolverRegistryInterface $registry, ResolverBuilder $builder){ $registry->addFieldResolver('Query', 'allentites', $builder->compose( @@ -330,11 +331,18 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { ->map('entity', $builder->fromParent()) )); - $registry->addFieldResolver('Entite', 'texte', + $registry->addFieldResolver('Entite', 'action', $builder->produce('property_path') ->map('type', $builder->fromValue('entity:node')) ->map('value', $builder->fromParent()) - ->map('path', $builder->fromValue('body.value')) + ->map('path', $builder->fromValue('field_action.value')) + ); + + $registry->addFieldResolver('Entite', 'menacemaintien', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:node')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_menace_maintien.value')) ); $registry->addFieldResolver('Entite', 'author', @@ -345,34 +353,73 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { ->map('entity', $builder->fromParent()) )); - $registry->addFieldResolver('Entite', 'images', + + $registry->addFieldResolver('Entite', 'sources', + $builder->produce('entity_reference_revisions') + ->map('entity', $builder->fromParent()) + ->map('field', $builder->fromValue('field_sources')) + ); + + + } + + // ____ + // / ___| ___ _ _ _ __ ___ ___ + // \___ \ / _ \| | | | '__/ __/ _ \ + // ___) | (_) | |_| | | | (_| __/ + // |____/ \___/ \__,_|_| \___\___| + protected function addSource(ResolverRegistryInterface $registry, ResolverBuilder $builder) { + + + $registry->addFieldResolver('Source', 'description', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:paragraph')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_description.value')) + ); + + $registry->addFieldResolver('Source', 'images', $builder->produce('entity_reference') ->map('entity', $builder->fromParent()) ->map('field', $builder->fromValue('field_images')) ); - $registry->addFieldResolver('Entite', 'videos', + $registry->addFieldResolver('Source', 'videos', $builder->produce('property_path') - ->map('type', $builder->fromValue('entity:node')) + ->map('type', $builder->fromValue('entity:paragraph')) ->map('value', $builder->fromParent()) ->map('path', $builder->fromValue('field_videos')) ); - $registry->addFieldResolver('Entite', 'fichiers', - $builder->produce('entity_reference') - ->map('entity', $builder->fromParent()) - ->map('field', $builder->fromValue('field_fichiers')) + $registry->addFieldResolver('Source', 'documents', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:paragraph')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_documents')) ); - $registry->addFieldResolver('Entite', 'liens', + $registry->addFieldResolver('Source', 'liens', $builder->produce('property_path') - ->map('type', $builder->fromValue('entity:node')) + ->map('type', $builder->fromValue('entity:paragraph')) ->map('value', $builder->fromParent()) ->map('path', $builder->fromValue('field_liens')) ); - } + $registry->addFieldResolver('Source', 'date', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:paragraph')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_date')) + ); + $registry->addFieldResolver('Source', 'audios', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:paragraph')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_audio')) + ); + + } // ___ _ _ _ // / __| |_ __ _| |_(_)__ ___ // \__ \ _/ _` | _| / _(_-< @@ -684,13 +731,25 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { $registry->addFieldResolver('Filefield', 'description', $builder->callback(function ($parent, $args) { - return $parent['description']; + if (is_array($parent) && isset($parent['description'])) { + return $parent['description']; + } else if (is_array($parent) && isset($parent[0]['description'])) { + return $parent[0]['description']; + } else{ + return null; + } }) ); $registry->addFieldResolver('Filefield', 'file', $builder->callback(function ($parent, $args) { - return \Drupal\file\Entity\File::load($parent['target_id']); + if (is_array($parent) && isset($parent['target_id'])) { + return \Drupal\file\Entity\File::load($parent['target_id']); + } else if (is_array($parent) && isset($parent[0]['target_id'])) { + return \Drupal\file\Entity\File::load($parent[0]['target_id']); + } else{ + return null; + } }) ); @@ -884,16 +943,24 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { protected function addLink(ResolverRegistryInterface $registry, ResolverBuilder $builder) { $registry->addFieldResolver('Link', 'url', $builder->callback(function ($parent, $args) { - return isset($parent[0]) ? $parent[0]['uri'] : null; + // return isset($parent[0]) ? $parent[0]['uri'] : null; + return $parent['uri']; }) ); $registry->addFieldResolver('Link', 'title', $builder->callback(function ($parent, $args) { - return isset($parent[0]) ? $parent[0]['title'] : null; + // return isset($parent[0]) ? $parent[0]['title'] : null; + return $parent['title']; }) ); } + // _____ _ _ _ ____ __ _ _ _ _ + // | ____|_ __ | |_(_) |_ _ _ | _ \ ___ / _(_)_ __ (_) |_(_) ___ _ __ + // | _| | '_ \| __| | __| | | | | | | |/ _ \ |_| | '_ \| | __| |/ _ \| '_ \ + // | |___| | | | |_| | |_| |_| | | |_| | __/ _| | | | | | |_| | (_) | | | | + // |_____|_| |_|\__|_|\__|\__, | |____/ \___|_| |_|_| |_|_|\__|_|\___/|_| |_| + // |___/ protected function addEntityDefinition(ResolverRegistryInterface $registry, ResolverBuilder $builder) { $registry->addFieldResolver('Query', 'entitydef', $builder->compose( @@ -913,6 +980,11 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase { } + // _____ _ _ _ ____ __ + // | ___(_) ___| | __| | | _ \ ___ / _| + // | |_ | |/ _ \ |/ _` | | | | |/ _ \ |_ + // | _| | | __/ | (_| | | |_| | __/ _| + // |_| |_|\___|_|\__,_| |____/ \___|_| protected function addFieldDef(ResolverRegistryInterface $registry, ResolverBuilder $builder) { $registry->addFieldResolver('FieldDef', 'type',