OuattSchemaExtension.php 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738
  1. <?php
  2. namespace Drupal\ouatt_graphql\Plugin\GraphQL\SchemaExtension;
  3. use Drupal\graphql\GraphQL\ResolverBuilder;
  4. use Drupal\graphql\GraphQL\ResolverRegistryInterface;
  5. use Drupal\graphql\GraphQL\Response\ResponseInterface;
  6. use Drupal\graphql\Plugin\GraphQL\SchemaExtension\SdlSchemaExtensionPluginBase;
  7. use Drupal\materio_graphql\GraphQL\Response\MaterioResponse;
  8. use Drupal\Core\Url;
  9. use Drupal\Node\Entity\NodeType;
  10. use GraphQL\Error\Error;
  11. /**
  12. * @SchemaExtension(
  13. * id = "ouatt_extension",
  14. * name = "Ou Atterrir extension",
  15. * description = "Ou Atterrir extension.",
  16. * schema = "ouatt"
  17. * )
  18. */
  19. class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
  20. /**
  21. * {@inheritdoc}
  22. */
  23. public function registerResolvers(ResolverRegistryInterface $registry) {
  24. $builder = new ResolverBuilder();
  25. $this->addRouteResolver($registry, $builder);
  26. //
  27. $this->addConcernements($registry, $builder);
  28. //
  29. $this->addEntitesIntegres($registry, $builder);
  30. //
  31. $this->addEntites($registry, $builder);
  32. //
  33. $this->addSource($registry, $builder);
  34. //
  35. $this->addBesoin($registry, $builder);
  36. //
  37. $this->addReponse($registry, $builder);
  38. //
  39. $this->addDoleance($registry, $builder);
  40. //
  41. $this->addGroupeInterets($registry, $builder);
  42. //
  43. $this->addReceptionTraitement($registry, $builder);
  44. //
  45. $this->addMiseEnoeuvreDecision($registry, $builder);
  46. //
  47. $this->addReceptionsApplications($registry, $builder);
  48. //
  49. $this->addStatic($registry, $builder);
  50. //
  51. $this->addGroup($registry, $builder);
  52. //
  53. $this->addUser($registry, $builder);
  54. //
  55. $this->addFilefield($registry, $builder);
  56. //
  57. $this->addFile($registry, $builder);
  58. //
  59. $this->addDate($registry, $builder);
  60. //
  61. $this->addVideolink($registry, $builder);
  62. //
  63. $this->addImage($registry, $builder);
  64. //
  65. $this->addTaxoterm($registry, $builder);
  66. //
  67. $this->addLink($registry, $builder);
  68. $this->addEntityDefinition($registry, $builder);
  69. $this->addFieldDef($registry, $builder);
  70. }
  71. // ___ _
  72. // | _ \___ _ _| |_ ___
  73. // | / _ \ || | _/ -_)
  74. // |_|_\___/\_,_|\__\___|
  75. protected function addRouteResolver(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  76. // Tell GraphQL how to resolve types of a common interface.
  77. $registry->addTypeResolver('NodeInterface', function ($value) {
  78. $path = explode('\\', get_class($value));
  79. $class = array_pop($path);
  80. if ($class === 'Node') {
  81. switch ($value->bundle()) {
  82. case 'concernement': return 'Concernement';
  83. case 'entite': return 'Entite';
  84. case 'besoin': return 'Besoin';
  85. case 'reponse': return 'Reponse';
  86. case 'static': return 'Static';
  87. }
  88. }
  89. throw new Error('Could not resolve content type.');
  90. });
  91. $registry->addFieldResolver('Query', 'route',
  92. $builder->compose(
  93. $builder->produce('route_load')
  94. ->map('path', $builder->fromArgument('path')),
  95. $builder->produce('route_entity')
  96. ->map('url', $builder->fromParent())
  97. ));
  98. }
  99. // ____ _
  100. // / ___|___ _ __ ___ ___ _ __ _ __ ___ _ __ ___ ___ _ __ | |_ ___
  101. // | | / _ \| '_ \ / __/ _ \ '__| '_ \ / _ \ '_ ` _ \ / _ \ '_ \| __/ __|
  102. // | |__| (_) | | | | (_| __/ | | | | | __/ | | | | | __/ | | | |_\__ \
  103. // \____\___/|_| |_|\___\___|_| |_| |_|\___|_| |_| |_|\___|_| |_|\__|___/
  104. protected function addConcernements(ResolverRegistryInterface $registry, ResolverBuilder $builder){
  105. $registry->addFieldResolver('Query', 'allconcernements',
  106. $builder->compose(
  107. $builder->callback(function($parent, $arg){
  108. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  109. $query = $entity_storage->getQuery()
  110. ->condition('type', ['concernement'], 'IN')
  111. ->accessCheck(TRUE);
  112. $results = $query->execute();
  113. return $results;
  114. }),
  115. $builder->produce('entity_load_multiple')
  116. ->map('type', $builder->fromValue('node'))
  117. ->map('ids', $builder->fromParent())
  118. )
  119. );
  120. $registry->addFieldResolver('Query', 'concernements',
  121. $builder->compose(
  122. $builder->callback(function($parent, $arg){
  123. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  124. $query = $entity_storage->getQuery()
  125. ->condition('type', ['concernement'], 'IN')
  126. ->accessCheck(TRUE);
  127. $results = $query->execute();
  128. return $results;
  129. }),
  130. $builder->produce('entity_load_multiple')
  131. ->map('type', $builder->fromValue('node'))
  132. ->map('ids', $builder->fromArgument('ids'))
  133. )
  134. );
  135. $registry->addFieldResolver('Query', 'concernement',
  136. $builder->produce('entity_load')
  137. ->map('type', $builder->fromValue('node'))
  138. ->map('id', $builder->fromArgument('id'))
  139. );
  140. $registry->addFieldResolver('Query', 'concernementrevisions',
  141. $builder->compose(
  142. $builder->produce('entity_load')
  143. ->map('type', $builder->fromValue('node'))
  144. ->map('id', $builder->fromArgument('id')),
  145. $builder->callback(function($parent, $arg){
  146. $vids = \Drupal::entityTypeManager()->getStorage('node')->revisionIds($parent);
  147. $revisions = [];
  148. foreach($vids as $vid){
  149. $revisions[] = \Drupal::entityTypeManager()->getStorage('node')->loadRevision($vid);
  150. }
  151. return $revisions;
  152. })
  153. )
  154. );
  155. $registry->addFieldResolver('Concernement', 'id',
  156. $builder->produce('entity_id')
  157. ->map('entity', $builder->fromParent())
  158. );
  159. $registry->addFieldResolver('Concernement', 'revision_id',
  160. $builder->compose(
  161. $builder->callback(function($parent, $arg){
  162. $revid = $parent->getRevisionId();
  163. return $revid;
  164. })
  165. )
  166. );
  167. $registry->addFieldResolver('Concernement', 'uuid',
  168. $builder->produce('entity_uuid')
  169. ->map('entity', $builder->fromParent())
  170. );
  171. $registry->addFieldResolver('Concernement', 'path',
  172. $builder->compose(
  173. $builder->produce('entity_url')
  174. ->map('entity', $builder->fromParent()),
  175. $builder->produce('url_path')
  176. ->map('url', $builder->fromParent())
  177. )
  178. );
  179. $registry->addFieldResolver('Concernement', 'title',
  180. $builder->compose(
  181. $builder->produce('entity_label')
  182. ->map('entity', $builder->fromParent())
  183. ));
  184. $registry->addFieldResolver('Concernement', 'bundle',
  185. $builder->compose(
  186. $builder->produce('entity_bundle')
  187. ->map('entity', $builder->fromParent())
  188. ));
  189. $registry->addFieldResolver('Concernement', 'description',
  190. $builder->produce('property_path')
  191. ->map('type', $builder->fromValue('entity:node'))
  192. ->map('value', $builder->fromParent())
  193. ->map('path', $builder->fromValue('field_description.value'))
  194. );
  195. $registry->addFieldResolver('Concernement', 'caillou',
  196. $builder->produce('property_path')
  197. ->map('type', $builder->fromValue('entity:node'))
  198. ->map('value', $builder->fromParent())
  199. ->map('path', $builder->fromValue('field_caillou.value'))
  200. );
  201. $registry->addFieldResolver('Concernement', 'author',
  202. $builder->compose(
  203. $builder->produce('entity_owner')
  204. ->map('entity', $builder->fromParent())
  205. ));
  206. $registry->addFieldResolver('Concernement', 'created',
  207. $builder->compose(
  208. $builder->produce('entity_created')
  209. ->map('entity', $builder->fromParent())
  210. )
  211. );
  212. $registry->addFieldResolver('Concernement', 'changed',
  213. $builder->compose(
  214. $builder->produce('entity_changed')
  215. ->map('entity', $builder->fromParent())
  216. )
  217. );
  218. $registry->addFieldResolver('Concernement', 'lieu',
  219. $builder->produce('entity_reference')
  220. ->map('entity', $builder->fromParent())
  221. ->map('field', $builder->fromValue('field_lieu'))
  222. );
  223. // $registry->addFieldResolver('Concernement', 'recit',
  224. // $builder->produce('entity_reference')
  225. // ->map('entity', $builder->fromParent())
  226. // ->map('field', $builder->fromValue('field_recit'))
  227. // );
  228. $registry->addFieldResolver('Concernement', 'recit',
  229. $builder->compose(
  230. $builder->produce('property_path')
  231. ->map('type', $builder->fromValue('entity:node'))
  232. ->map('value', $builder->fromParent())
  233. ->map('path', $builder->fromValue('field_recit')),
  234. $builder->produce('seek')
  235. ->map('input', $builder->fromParent())
  236. ->map('position', $builder->fromValue(0))
  237. ));
  238. $registry->addFieldResolver('Concernement', 'recit_colophon',
  239. $builder->produce('property_path')
  240. ->map('type', $builder->fromValue('entity:node'))
  241. ->map('value', $builder->fromParent())
  242. ->map('path', $builder->fromValue('field_recit_colophon.value'))
  243. );
  244. $registry->addFieldResolver('Concernement', 'entites',
  245. $builder->produce('entity_reference_revisions')
  246. ->map('entity', $builder->fromParent())
  247. ->map('field', $builder->fromValue('field_entite'))
  248. );
  249. // besoins: [Besoin]
  250. $registry->addFieldResolver('Concernement', 'besoins',
  251. $builder->produce('entity_reference')
  252. ->map('entity', $builder->fromParent())
  253. ->map('field', $builder->fromValue('field_besoin'))
  254. );
  255. // doleances: [Doleance]
  256. $registry->addFieldResolver('Concernement', 'doleances',
  257. $builder->produce('entity_reference')
  258. ->map('entity', $builder->fromParent())
  259. ->map('field', $builder->fromValue('field_doleancer'))
  260. );
  261. // revisions: [Concernement]
  262. $registry->addFieldResolver('Concernement', 'revisions',
  263. $builder->produce('entity_reference')
  264. ->map('entity', $builder->fromParent())
  265. ->map('field', $builder->fromValue('field_doleancer'))
  266. );
  267. }
  268. // _____ _ _ _ __ ___ _ __ __
  269. // | ____|_ __ | |_(_) |_ /_/ ___ |_ _|_ __ | |_ /_/ __ _ _ __ /_/ ___ ___
  270. // | _| | '_ \| __| | __/ _ \/ __| | || '_ \| __/ _ \/ _` | '__/ _ \/ _ \/ __|
  271. // | |___| | | | |_| | || __/\__ \ | || | | | || __/ (_| | | | __/ __/\__ \
  272. // |_____|_| |_|\__|_|\__\___||___/ |___|_| |_|\__\___|\__, |_| \___|\___||___/
  273. // |___/
  274. protected function addEntitesIntegres(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  275. $registry->addFieldResolver('Entiteintegre', 'entite',
  276. $builder->compose(
  277. $builder->produce('entity_reference')
  278. ->map('entity', $builder->fromParent())
  279. ->map('field', $builder->fromValue('field_entite')),
  280. $builder->callback(function ($items) {
  281. if (isset($items[0])) {
  282. return $items[0];
  283. }
  284. })
  285. ));
  286. $registry->addFieldResolver('Entiteintegre', 'actuelfuture',
  287. $builder->produce('property_path')
  288. ->map('type', $builder->fromValue('entity:paragraph'))
  289. ->map('value', $builder->fromParent())
  290. ->map('path', $builder->fromValue('field_actuel_future.value'))
  291. );
  292. $registry->addFieldResolver('Entiteintegre', 'menacemaintien',
  293. $builder->produce('property_path')
  294. ->map('type', $builder->fromValue('entity:paragraph'))
  295. ->map('value', $builder->fromParent())
  296. ->map('path', $builder->fromValue('field_menace_maintien_degres.value'))
  297. );
  298. $registry->addFieldResolver('Entiteintegre', 'prise',
  299. $builder->produce('property_path')
  300. ->map('type', $builder->fromValue('entity:paragraph'))
  301. ->map('value', $builder->fromParent())
  302. ->map('path', $builder->fromValue('field_prise.value'))
  303. );
  304. }
  305. // _____ _ _ _
  306. // | ____|_ __ | |_(_) |_ ___ ___
  307. // | _| | '_ \| __| | __/ _ \/ __|
  308. // | |___| | | | |_| | || __/\__ \
  309. // |_____|_| |_|\__|_|\__\___||___/
  310. protected function addEntites(ResolverRegistryInterface $registry, ResolverBuilder $builder){
  311. $registry->addFieldResolver('Query', 'allentites',
  312. $builder->compose(
  313. $builder->callback(function($parent, $arg){
  314. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  315. $query = $entity_storage->getQuery()
  316. ->condition('type', ['entite'], 'IN')
  317. ->accessCheck(TRUE);
  318. $results = $query->execute();
  319. return $results;
  320. }),
  321. $builder->produce('entity_load_multiple')
  322. ->map('type', $builder->fromValue('node'))
  323. ->map('ids', $builder->fromParent())
  324. )
  325. );
  326. $registry->addFieldResolver('Query', 'entites',
  327. $builder->compose(
  328. $builder->callback(function($parent, $arg){
  329. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  330. $query = $entity_storage->getQuery()
  331. ->condition('type', ['entite'], 'IN')
  332. ->accessCheck(TRUE);
  333. $results = $query->execute();
  334. return $results;
  335. }),
  336. $builder->produce('entity_load_multiple')
  337. ->map('type', $builder->fromValue('node'))
  338. ->map('ids', $builder->fromArgument('ids'))
  339. )
  340. );
  341. $registry->addFieldResolver('Query', 'entite',
  342. $builder->produce('entity_load')
  343. ->map('type', $builder->fromValue('node'))
  344. ->map('id', $builder->fromArgument('id'))
  345. );
  346. $registry->addFieldResolver('Entite', 'id',
  347. $builder->produce('entity_id')
  348. ->map('entity', $builder->fromParent())
  349. );
  350. $registry->addFieldResolver('Entite', 'uuid',
  351. $builder->produce('entity_uuid')
  352. ->map('entity', $builder->fromParent())
  353. );
  354. $registry->addFieldResolver('Entite', 'path',
  355. $builder->compose(
  356. $builder->produce('entity_url')
  357. ->map('entity', $builder->fromParent()),
  358. $builder->produce('url_path')
  359. ->map('url', $builder->fromParent())
  360. )
  361. );
  362. $registry->addFieldResolver('Entite', 'title',
  363. $builder->compose(
  364. $builder->produce('entity_label')
  365. ->map('entity', $builder->fromParent())
  366. ));
  367. $registry->addFieldResolver('Entite', 'bundle',
  368. $builder->compose(
  369. $builder->produce('entity_bundle')
  370. ->map('entity', $builder->fromParent())
  371. ));
  372. // superposition: [Entite]
  373. $registry->addFieldResolver('Entite', 'superposition',
  374. $builder->produce('entity_reference')
  375. ->map('entity', $builder->fromParent())
  376. ->map('field', $builder->fromValue('field_superposition'))
  377. );
  378. // proximite: [Entite]
  379. $registry->addFieldResolver('Entite', 'proximite',
  380. $builder->produce('entity_reference')
  381. ->map('entity', $builder->fromParent())
  382. ->map('field', $builder->fromValue('field_proximite'))
  383. );
  384. // agissante: Boolean
  385. $registry->addFieldResolver('Entite', 'agissante',
  386. $builder->produce('property_path')
  387. ->map('type', $builder->fromValue('entity:node'))
  388. ->map('value', $builder->fromParent())
  389. ->map('path', $builder->fromValue('field_entite_agissante.value'))
  390. );
  391. $registry->addFieldResolver('Entite', 'action',
  392. $builder->produce('property_path')
  393. ->map('type', $builder->fromValue('entity:node'))
  394. ->map('value', $builder->fromParent())
  395. ->map('path', $builder->fromValue('field_action.value'))
  396. );
  397. $registry->addFieldResolver('Entite', 'menacemaintien',
  398. $builder->produce('property_path')
  399. ->map('type', $builder->fromValue('entity:node'))
  400. ->map('value', $builder->fromParent())
  401. ->map('path', $builder->fromValue('field_menace_maintien.value'))
  402. );
  403. $registry->addFieldResolver('Entite', 'author',
  404. $builder->compose(
  405. $builder->produce('entity_owner')
  406. ->map('entity', $builder->fromParent()),
  407. $builder->produce('entity_label')
  408. ->map('entity', $builder->fromParent())
  409. )
  410. );
  411. $registry->addFieldResolver('Entite', 'sources',
  412. $builder->produce('entity_reference_revisions')
  413. ->map('entity', $builder->fromParent())
  414. ->map('field', $builder->fromValue('field_sources'))
  415. );
  416. }
  417. // ____
  418. // / ___| ___ _ _ _ __ ___ ___
  419. // \___ \ / _ \| | | | '__/ __/ _ \
  420. // ___) | (_) | |_| | | | (_| __/
  421. // |____/ \___/ \__,_|_| \___\___|
  422. protected function addSource(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  423. $registry->addFieldResolver('Source', 'description',
  424. $builder->produce('property_path')
  425. ->map('type', $builder->fromValue('entity:paragraph'))
  426. ->map('value', $builder->fromParent())
  427. ->map('path', $builder->fromValue('field_description.value'))
  428. );
  429. $registry->addFieldResolver('Source', 'images',
  430. $builder->produce('entity_reference')
  431. ->map('entity', $builder->fromParent())
  432. ->map('field', $builder->fromValue('field_images'))
  433. );
  434. $registry->addFieldResolver('Source', 'videos',
  435. $builder->produce('property_path')
  436. ->map('type', $builder->fromValue('entity:paragraph'))
  437. ->map('value', $builder->fromParent())
  438. ->map('path', $builder->fromValue('field_videos'))
  439. );
  440. $registry->addFieldResolver('Source', 'documents',
  441. $builder->produce('property_path')
  442. ->map('type', $builder->fromValue('entity:paragraph'))
  443. ->map('value', $builder->fromParent())
  444. ->map('path', $builder->fromValue('field_documents'))
  445. );
  446. $registry->addFieldResolver('Source', 'liens',
  447. $builder->produce('property_path')
  448. ->map('type', $builder->fromValue('entity:paragraph'))
  449. ->map('value', $builder->fromParent())
  450. ->map('path', $builder->fromValue('field_liens'))
  451. );
  452. $registry->addFieldResolver('Source', 'date',
  453. $builder->produce('property_path')
  454. ->map('type', $builder->fromValue('entity:paragraph'))
  455. ->map('value', $builder->fromParent())
  456. ->map('path', $builder->fromValue('field_date'))
  457. );
  458. $registry->addFieldResolver('Source', 'audios',
  459. $builder->produce('property_path')
  460. ->map('type', $builder->fromValue('entity:paragraph'))
  461. ->map('value', $builder->fromParent())
  462. ->map('path', $builder->fromValue('field_audio'))
  463. );
  464. }
  465. // ____ _
  466. // | __ ) ___ ___ ___ (_)_ __
  467. // | _ \ / _ \/ __|/ _ \| | '_ \
  468. // | |_) | __/\__ \ (_) | | | | |
  469. // |____/ \___||___/\___/|_|_| |_|
  470. protected function addBesoin(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  471. $registry->addFieldResolver('Query', 'allbesoins',
  472. $builder->compose(
  473. $builder->callback(function($parent, $arg){
  474. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  475. $query = $entity_storage->getQuery()
  476. ->condition('type', ['besoin'], 'IN')
  477. ->accessCheck(TRUE);
  478. $results = $query->execute();
  479. return $results;
  480. }),
  481. $builder->produce('entity_load_multiple')
  482. ->map('type', $builder->fromValue('node'))
  483. ->map('ids', $builder->fromParent())
  484. )
  485. );
  486. $registry->addFieldResolver('Query', 'besoins',
  487. $builder->compose(
  488. $builder->callback(function($parent, $arg){
  489. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  490. $query = $entity_storage->getQuery()
  491. ->condition('type', ['besoin'], 'IN')
  492. ->accessCheck(TRUE);
  493. $results = $query->execute();
  494. return $results;
  495. }),
  496. $builder->produce('entity_load_multiple')
  497. ->map('type', $builder->fromValue('node'))
  498. ->map('ids', $builder->fromArgument('ids'))
  499. )
  500. );
  501. $registry->addFieldResolver('Query', 'besoin',
  502. $builder->produce('entity_load')
  503. ->map('type', $builder->fromValue('node'))
  504. ->map('id', $builder->fromArgument('id'))
  505. );
  506. // id: Int!
  507. $registry->addFieldResolver('Besoin', 'id',
  508. $builder->produce('entity_id')
  509. ->map('entity', $builder->fromParent())
  510. );
  511. // path: String!
  512. $registry->addFieldResolver('Besoin', 'path',
  513. $builder->compose(
  514. $builder->produce('entity_url')
  515. ->map('entity', $builder->fromParent()),
  516. $builder->produce('url_path')
  517. ->map('url', $builder->fromParent())
  518. )
  519. );
  520. $registry->addFieldResolver('Besoin', 'author',
  521. $builder->compose(
  522. $builder->produce('entity_owner')
  523. ->map('entity', $builder->fromParent()),
  524. $builder->produce('entity_label')
  525. ->map('entity', $builder->fromParent())
  526. ));
  527. // description: String!
  528. $registry->addFieldResolver('Besoin', 'description',
  529. $builder->produce('property_path')
  530. ->map('type', $builder->fromValue('entity:node'))
  531. ->map('value', $builder->fromParent())
  532. ->map('path', $builder->fromValue('body.value'))
  533. );
  534. // index: Int
  535. $registry->addFieldResolver('Besoin', 'index',
  536. $builder->produce('property_path')
  537. ->map('type', $builder->fromValue('entity:node'))
  538. ->map('value', $builder->fromParent())
  539. ->map('path', $builder->fromValue('field_index.value'))
  540. );
  541. // concernement: Concernement
  542. $registry->addFieldResolver('Besoin', 'concernement',
  543. $builder->compose(
  544. $builder->produce('entity_reference')
  545. ->map('entity', $builder->fromParent())
  546. ->map('field', $builder->fromValue('field_concernement')),
  547. $builder->callback(function($parent, $arg){
  548. return $parent[0];
  549. })
  550. ));
  551. // reponses: [Reponse]
  552. $registry->addFieldResolver('Besoin', 'reponses',
  553. $builder->produce('entity_reference')
  554. ->map('entity', $builder->fromParent())
  555. ->map('field', $builder->fromValue('field_reponse'))
  556. );
  557. }
  558. // ____
  559. // | _ \ ___ _ __ ___ _ __ ___ ___
  560. // | |_) / _ \ '_ \ / _ \| '_ \/ __|/ _ \
  561. // | _ < __/ |_) | (_) | | | \__ \ __/
  562. // |_| \_\___| .__/ \___/|_| |_|___/\___|
  563. // |_|
  564. protected function addReponse(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  565. $registry->addFieldResolver('Query', 'allreponses',
  566. $builder->compose(
  567. $builder->callback(function($parent, $arg){
  568. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  569. $query = $entity_storage->getQuery()
  570. ->condition('type', ['cercle_politique'], 'IN')
  571. ->accessCheck(TRUE);
  572. $results = $query->execute();
  573. return $results;
  574. }),
  575. $builder->produce('entity_load_multiple')
  576. ->map('type', $builder->fromValue('node'))
  577. ->map('ids', $builder->fromParent())
  578. )
  579. );
  580. $registry->addFieldResolver('Query', 'reponses',
  581. $builder->compose(
  582. $builder->callback(function($parent, $arg){
  583. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  584. $query = $entity_storage->getQuery()
  585. ->condition('type', ['reponse'], 'IN')
  586. ->accessCheck(TRUE);
  587. $results = $query->execute();
  588. return $results;
  589. }),
  590. $builder->produce('entity_load_multiple')
  591. ->map('type', $builder->fromValue('node'))
  592. ->map('ids', $builder->fromArgument('ids'))
  593. )
  594. );
  595. $registry->addFieldResolver('Query', 'reponse',
  596. $builder->produce('entity_load')
  597. ->map('type', $builder->fromValue('node'))
  598. ->map('id', $builder->fromArgument('id'))
  599. );
  600. // id: Int!
  601. $registry->addFieldResolver('Reponse', 'id',
  602. $builder->produce('entity_id')
  603. ->map('entity', $builder->fromParent())
  604. );
  605. // path: String!
  606. $registry->addFieldResolver('Reponse', 'path',
  607. $builder->compose(
  608. $builder->produce('entity_url')
  609. ->map('entity', $builder->fromParent()),
  610. $builder->produce('url_path')
  611. ->map('url', $builder->fromParent())
  612. )
  613. );
  614. $registry->addFieldResolver('Reponse', 'author',
  615. $builder->compose(
  616. $builder->produce('entity_owner')
  617. ->map('entity', $builder->fromParent()),
  618. $builder->produce('entity_label')
  619. ->map('entity', $builder->fromParent())
  620. ));
  621. // besoin: Besoin
  622. $registry->addFieldResolver('Reponse', 'besoin',
  623. $builder->compose(
  624. $builder->produce('entity_reference')
  625. ->map('entity', $builder->fromParent())
  626. ->map('field', $builder->fromValue('field_besoin_on_reponses')),
  627. $builder->callback(function($parent, $arg){
  628. return $parent[0];
  629. })
  630. ));
  631. // qui: String
  632. $registry->addFieldResolver('Reponse', 'qui',
  633. $builder->produce('property_path')
  634. ->map('type', $builder->fromValue('entity:node'))
  635. ->map('value', $builder->fromParent())
  636. ->map('path', $builder->fromValue('field_qui.value'))
  637. );
  638. // quoi: String
  639. $registry->addFieldResolver('Reponse', 'quoi',
  640. $builder->produce('property_path')
  641. ->map('type', $builder->fromValue('entity:node'))
  642. ->map('value', $builder->fromParent())
  643. ->map('path', $builder->fromValue('field_quoi.value'))
  644. );
  645. // ou: String
  646. $registry->addFieldResolver('Reponse', 'ou',
  647. $builder->produce('property_path')
  648. ->map('type', $builder->fromValue('entity:node'))
  649. ->map('value', $builder->fromParent())
  650. ->map('path', $builder->fromValue('field_ou.value'))
  651. );
  652. // avec: String
  653. $registry->addFieldResolver('Reponse', 'avec',
  654. $builder->produce('property_path')
  655. ->map('type', $builder->fromValue('entity:node'))
  656. ->map('value', $builder->fromParent())
  657. ->map('path', $builder->fromValue('field_avec.value'))
  658. );
  659. }
  660. // ____ _
  661. // | _ \ ___ | | ___ __ _ _ __ ___ ___
  662. // | | | |/ _ \| |/ _ \/ _` | '_ \ / __/ _ \
  663. // | |_| | (_) | | __/ (_| | | | | (_| __/
  664. // |____/ \___/|_|\___|\__,_|_| |_|\___\___|
  665. protected function addDoleance(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  666. $registry->addFieldResolver('Query', 'alldoleances',
  667. $builder->compose(
  668. $builder->callback(function($parent, $arg){
  669. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  670. $query = $entity_storage->getQuery()
  671. ->condition('type', ['cercle_politique'], 'IN')
  672. ->accessCheck(TRUE);
  673. $results = $query->execute();
  674. return $results;
  675. }),
  676. $builder->produce('entity_load_multiple')
  677. ->map('type', $builder->fromValue('node'))
  678. ->map('ids', $builder->fromParent())
  679. )
  680. );
  681. $registry->addFieldResolver('Query', 'doleances',
  682. $builder->compose(
  683. $builder->callback(function($parent, $arg){
  684. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  685. $query = $entity_storage->getQuery()
  686. ->condition('type', ['cercle_politique'], 'IN')
  687. ->accessCheck(TRUE);
  688. $results = $query->execute();
  689. return $results;
  690. }),
  691. $builder->produce('entity_load_multiple')
  692. ->map('type', $builder->fromValue('node'))
  693. ->map('ids', $builder->fromArgument('ids'))
  694. )
  695. );
  696. $registry->addFieldResolver('Query', 'doleance',
  697. $builder->produce('entity_load')
  698. ->map('type', $builder->fromValue('node'))
  699. ->map('id', $builder->fromArgument('id'))
  700. );
  701. $registry->addFieldResolver('Doleance', 'id',
  702. $builder->produce('entity_id')
  703. ->map('entity', $builder->fromParent())
  704. );
  705. $registry->addFieldResolver('Doleance', 'path',
  706. $builder->compose(
  707. $builder->produce('entity_url')
  708. ->map('entity', $builder->fromParent()),
  709. $builder->produce('url_path')
  710. ->map('url', $builder->fromParent())
  711. )
  712. );
  713. $registry->addFieldResolver('Doleance', 'uuid',
  714. $builder->produce('entity_uuid')
  715. ->map('entity', $builder->fromParent())
  716. );
  717. $registry->addFieldResolver('Doleance', 'bundle',
  718. $builder->compose(
  719. $builder->produce('entity_bundle')
  720. ->map('entity', $builder->fromParent())
  721. ));
  722. $registry->addFieldResolver('Doleance', 'title',
  723. $builder->compose(
  724. $builder->produce('entity_label')
  725. ->map('entity', $builder->fromParent())
  726. ));
  727. $registry->addFieldResolver('Doleance', 'author',
  728. $builder->compose(
  729. $builder->produce('entity_owner')
  730. ->map('entity', $builder->fromParent()),
  731. $builder->produce('entity_label')
  732. ->map('entity', $builder->fromParent())
  733. ));
  734. // #1
  735. // leprobleme: String
  736. $registry->addFieldResolver('Doleance', 'leprobleme',
  737. $builder->produce('property_path')
  738. ->map('type', $builder->fromValue('entity:node'))
  739. ->map('value', $builder->fromParent())
  740. ->map('path', $builder->fromValue('field_le_probleme.value'))
  741. );
  742. // lenquete: String
  743. $registry->addFieldResolver('Doleance', 'lenquete',
  744. $builder->produce('property_path')
  745. ->map('type', $builder->fromValue('entity:node'))
  746. ->map('value', $builder->fromParent())
  747. ->map('path', $builder->fromValue('field_enquete_terraindevie.value'))
  748. );
  749. // groupesinterets: [GroupeInterets]
  750. $registry->addFieldResolver('Doleance', 'groupesinterets',
  751. $builder->produce('entity_reference_revisions')
  752. ->map('entity', $builder->fromParent())
  753. ->map('field', $builder->fromValue('field_groupes'))
  754. );
  755. // #2
  756. // entite_addresse_doleance: String
  757. $registry->addFieldResolver('Doleance', 'entite_addresse_doleance',
  758. $builder->produce('property_path')
  759. ->map('type', $builder->fromValue('entity:node'))
  760. ->map('value', $builder->fromParent())
  761. ->map('path', $builder->fromValue('field_entite_adresse_doleance.value'))
  762. );
  763. // comment_ennonce_doleance: String
  764. $registry->addFieldResolver('Doleance', 'comment_ennonce_doleance',
  765. $builder->produce('property_path')
  766. ->map('type', $builder->fromValue('entity:node'))
  767. ->map('value', $builder->fromParent())
  768. ->map('path', $builder->fromValue('field_comment_enonce_doleance.value'))
  769. );
  770. // aqui_addresse_doleance: String
  771. $registry->addFieldResolver('Doleance', 'aqui_addresse_doleance',
  772. $builder->produce('property_path')
  773. ->map('type', $builder->fromValue('entity:node'))
  774. ->map('value', $builder->fromParent())
  775. ->map('path', $builder->fromValue('field_a_qui_adresse_doleance.value'))
  776. );
  777. // reception_traitement: [ReceptionTraitement]
  778. $registry->addFieldResolver('Doleance', 'reception_traitement',
  779. $builder->produce('entity_reference_revisions')
  780. ->map('entity', $builder->fromParent())
  781. ->map('field', $builder->fromValue('field_receptions_et_traitements'))
  782. );
  783. // #3
  784. // entites_decisionnaires: String
  785. $registry->addFieldResolver('Doleance', 'entites_decisionnaires',
  786. $builder->produce('property_path')
  787. ->map('type', $builder->fromValue('entity:node'))
  788. ->map('value', $builder->fromParent())
  789. ->map('path', $builder->fromValue('field_entites_decisionnaires.value'))
  790. );
  791. // decision_formule: String
  792. $registry->addFieldResolver('Doleance', 'decision_formule',
  793. $builder->produce('property_path')
  794. ->map('type', $builder->fromValue('entity:node'))
  795. ->map('value', $builder->fromParent())
  796. ->map('path', $builder->fromValue('field_decision_formulee.value'))
  797. );
  798. // mise_en_oeuvre_decision: [MiseEnoeuvreDecision]
  799. $registry->addFieldResolver('Doleance', 'mise_en_oeuvre_decision',
  800. $builder->produce('entity_reference_revisions')
  801. ->map('entity', $builder->fromParent())
  802. ->map('field', $builder->fromValue('field_mise_en_oeuvre_decision'))
  803. );
  804. // #4
  805. // entite_addresse_application: String
  806. $registry->addFieldResolver('Doleance', 'entite_adresse_application',
  807. $builder->produce('property_path')
  808. ->map('type', $builder->fromValue('entity:node'))
  809. ->map('value', $builder->fromParent())
  810. ->map('path', $builder->fromValue('field_entite_adresse_application.value'))
  811. );
  812. // aqui_adresse_decision: String
  813. $registry->addFieldResolver('Doleance', 'aqui_adresse_decision',
  814. $builder->produce('property_path')
  815. ->map('type', $builder->fromValue('entity:node'))
  816. ->map('value', $builder->fromParent())
  817. ->map('path', $builder->fromValue('field_aqui_adresse_decision.value'))
  818. );
  819. // comment_formule_decision: String
  820. $registry->addFieldResolver('Doleance', 'comment_formule_decision',
  821. $builder->produce('property_path')
  822. ->map('type', $builder->fromValue('entity:node'))
  823. ->map('value', $builder->fromParent())
  824. ->map('path', $builder->fromValue('field_comment_formule_decision.value'))
  825. );
  826. // receptions_et_applications: [ReceptionsApplications]
  827. $registry->addFieldResolver('Doleance', 'receptions_et_applications',
  828. $builder->produce('entity_reference_revisions')
  829. ->map('entity', $builder->fromParent())
  830. ->map('field', $builder->fromValue('field_receptions_et_applications'))
  831. );
  832. // probleme_initial_resolu: Int
  833. $registry->addFieldResolver('Doleance', 'probleme_initial_resolu',
  834. $builder->produce('property_path')
  835. ->map('type', $builder->fromValue('entity:node'))
  836. ->map('value', $builder->fromParent())
  837. ->map('path', $builder->fromValue('field_probleme_initial_resolu.value'))
  838. );
  839. // oui_nouvelle_situation: String
  840. $registry->addFieldResolver('Doleance', 'oui_nouvelle_situation',
  841. $builder->produce('property_path')
  842. ->map('type', $builder->fromValue('entity:node'))
  843. ->map('value', $builder->fromParent())
  844. ->map('path', $builder->fromValue('field_oui_nouvelle_situation.value'))
  845. );
  846. // non_adresse_doleance: String
  847. $registry->addFieldResolver('Doleance', 'non_adresse_doleance',
  848. $builder->produce('property_path')
  849. ->map('type', $builder->fromValue('entity:node'))
  850. ->map('value', $builder->fromParent())
  851. ->map('path', $builder->fromValue('field_non_adresse_doleance.value'))
  852. );
  853. }
  854. // ____ ___ _ _
  855. // / ___|_ __ ___ _ _ _ __ ___ |_ _|_ __ | |_ ___ _ __ ___| |_ ___
  856. // | | _| '__/ _ \| | | | '_ \ / _ \ | || '_ \| __/ _ \ '__/ _ \ __/ __|
  857. // | |_| | | | (_) | |_| | |_) | __/ | || | | | || __/ | | __/ |_\__ \
  858. // \____|_| \___/ \__,_| .__/ \___| |___|_| |_|\__\___|_| \___|\__|___/
  859. // |_|
  860. protected function addGroupeInterets(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  861. // groupe_interets: String
  862. $registry->addFieldResolver('GroupeInterets', 'groupe_interets',
  863. $builder->produce('property_path')
  864. ->map('type', $builder->fromValue('entity:paragraph'))
  865. ->map('value', $builder->fromParent())
  866. ->map('path', $builder->fromValue('field_groupe_interets.value'))
  867. );
  868. // accorder_interets: String
  869. $registry->addFieldResolver('GroupeInterets', 'accorder_interets',
  870. $builder->produce('property_path')
  871. ->map('type', $builder->fromValue('entity:paragraph'))
  872. ->map('value', $builder->fromParent())
  873. ->map('path', $builder->fromValue('field_accorder_interets.value'))
  874. );
  875. // formuler: String
  876. $registry->addFieldResolver('GroupeInterets', 'formuler',
  877. $builder->produce('property_path')
  878. ->map('type', $builder->fromValue('entity:paragraph'))
  879. ->map('value', $builder->fromParent())
  880. ->map('path', $builder->fromValue('field_formuler.value'))
  881. );
  882. }
  883. // ____ _ _ _____ _ _ _
  884. // | _ \ ___ ___ ___ _ __ | |_(_) ___ _ __ |_ _| __ __ _(_) |_ ___ _ __ ___ ___ _ __ | |_
  885. // | |_) / _ \/ __/ _ \ '_ \| __| |/ _ \| '_ \ | || '__/ _` | | __/ _ \ '_ ` _ \ / _ \ '_ \| __|
  886. // | _ < __/ (_| __/ |_) | |_| | (_) | | | | | || | | (_| | | || __/ | | | | | __/ | | | |_
  887. // |_| \_\___|\___\___| .__/ \__|_|\___/|_| |_| |_||_| \__,_|_|\__\___|_| |_| |_|\___|_| |_|\__|
  888. // |_|
  889. protected function addReceptionTraitement(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  890. // entite_adressee: String
  891. $registry->addFieldResolver('ReceptionTraitement', 'entite_adressee',
  892. $builder->produce('property_path')
  893. ->map('type', $builder->fromValue('entity:paragraph'))
  894. ->map('value', $builder->fromParent())
  895. ->map('path', $builder->fromValue('field_entite_adressee.value'))
  896. );
  897. // doleance_formulee: String
  898. $registry->addFieldResolver('ReceptionTraitement', 'doleance_formulee',
  899. $builder->produce('property_path')
  900. ->map('type', $builder->fromValue('entity:paragraph'))
  901. ->map('value', $builder->fromParent())
  902. ->map('path', $builder->fromValue('field_doleance_formulee.value'))
  903. );
  904. // traite_doleance: String
  905. $registry->addFieldResolver('ReceptionTraitement', 'traite_doleance',
  906. $builder->produce('property_path')
  907. ->map('type', $builder->fromValue('entity:paragraph'))
  908. ->map('value', $builder->fromParent())
  909. ->map('path', $builder->fromValue('field_traite_doleance.value'))
  910. );
  911. // entite_recoit_doleance: String
  912. $registry->addFieldResolver('ReceptionTraitement', 'entite_recoit_doleance',
  913. $builder->produce('property_path')
  914. ->map('type', $builder->fromValue('entity:paragraph'))
  915. ->map('value', $builder->fromParent())
  916. ->map('path', $builder->fromValue('field_entite_recoit_doleance.value'))
  917. );
  918. }
  919. // __ __ _ _____ ____ _ _
  920. // | \/ (_)___ ___ | ____|_ __ ___ ___ _ ___ ___ __ ___ | _ \ ___ ___(_)___(_) ___ _ __
  921. // | |\/| | / __|/ _ \ | _| | '_ \ / _ \ / _ \ | | \ \ / / '__/ _ \ | | | |/ _ \/ __| / __| |/ _ \| '_ \
  922. // | | | | \__ \ __/ | |___| | | | (_) | __/ |_| |\ V /| | | __/ | |_| | __/ (__| \__ \ | (_) | | | |
  923. // |_| |_|_|___/\___| |_____|_| |_|\___/ \___|\__,_| \_/ |_| \___| |____/ \___|\___|_|___/_|\___/|_| |_|
  924. protected function addMiseEnoeuvreDecision(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  925. // entite_adresse_decision: String
  926. $registry->addFieldResolver('MiseEnoeuvreDecision', 'entite_adresse_decision',
  927. $builder->produce('property_path')
  928. ->map('type', $builder->fromValue('entity:paragraph'))
  929. ->map('value', $builder->fromParent())
  930. ->map('path', $builder->fromValue('field_entite_adresse_decision.value'))
  931. );
  932. // formule_decision: String
  933. $registry->addFieldResolver('MiseEnoeuvreDecision', 'formule_decision',
  934. $builder->produce('property_path')
  935. ->map('type', $builder->fromValue('entity:paragraph'))
  936. ->map('value', $builder->fromParent())
  937. ->map('path', $builder->fromValue('field_formule_decision.value'))
  938. );
  939. // entite_metenoeuvre_decisio: String
  940. $registry->addFieldResolver('MiseEnoeuvreDecision', 'entite_metenoeuvre_decisio',
  941. $builder->produce('property_path')
  942. ->map('type', $builder->fromValue('entity:paragraph'))
  943. ->map('value', $builder->fromParent())
  944. ->map('path', $builder->fromValue('field_entite_metenoeuvre_decisio.value'))
  945. );
  946. }
  947. // ____ _ _ _ _ _ _ _
  948. // | _ \ ___ ___ ___ _ __ | |_(_) ___ _ __ ___ / \ _ __ _ __ | (_) ___ __ _| |_(_) ___ _ __ ___
  949. // | |_) / _ \/ __/ _ \ '_ \| __| |/ _ \| '_ \/ __| / _ \ | '_ \| '_ \| | |/ __/ _` | __| |/ _ \| '_ \/ __|
  950. // | _ < __/ (_| __/ |_) | |_| | (_) | | | \__ \ / ___ \| |_) | |_) | | | (_| (_| | |_| | (_) | | | \__ \
  951. // |_| \_\___|\___\___| .__/ \__|_|\___/|_| |_|___/ /_/ \_\ .__/| .__/|_|_|\___\__,_|\__|_|\___/|_| |_|___/
  952. // |_| |_| |_|
  953. protected function addReceptionsApplications(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  954. // applique_decision: String
  955. $registry->addFieldResolver('ReceptionsApplications', 'applique_decision',
  956. $builder->produce('property_path')
  957. ->map('type', $builder->fromValue('entity:paragraph'))
  958. ->map('value', $builder->fromParent())
  959. ->map('path', $builder->fromValue('field_applique_decision.value'))
  960. );
  961. // formule_decision_applic: String
  962. $registry->addFieldResolver('ReceptionsApplications', 'formule_decision_applic',
  963. $builder->produce('property_path')
  964. ->map('type', $builder->fromValue('entity:paragraph'))
  965. ->map('value', $builder->fromParent())
  966. ->map('path', $builder->fromValue('field_formule_decision_applic.value'))
  967. );
  968. // entite_recoit_decision: String
  969. $registry->addFieldResolver('ReceptionsApplications', 'entite_recoit_decision',
  970. $builder->produce('property_path')
  971. ->map('type', $builder->fromValue('entity:paragraph'))
  972. ->map('value', $builder->fromParent())
  973. ->map('path', $builder->fromValue('field_entite_recoit_decision.value'))
  974. );
  975. }
  976. // ___ _ _ _
  977. // / __| |_ __ _| |_(_)__ ___
  978. // \__ \ _/ _` | _| / _(_-<
  979. // |___/\__\__,_|\__|_\__/__/
  980. protected function addStatic(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  981. $registry->addFieldResolver('Query', 'allstatics',
  982. $builder->compose(
  983. $builder->callback(function($parent, $arg){
  984. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  985. $query = $entity_storage->getQuery()
  986. ->condition('type', ['static'], 'IN')
  987. ->accessCheck(TRUE);
  988. $results = $query->execute();
  989. return $results;
  990. }),
  991. $builder->produce('entity_load_multiple')
  992. ->map('type', $builder->fromValue('node'))
  993. ->map('ids', $builder->fromParent())
  994. )
  995. );
  996. $registry->addFieldResolver('Query', 'promotedstatics',
  997. $builder->compose(
  998. $builder->callback(function($parent, $arg){
  999. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  1000. $query = $entity_storage->getQuery()
  1001. ->condition('type', ['static'], 'IN')
  1002. ->condition('promote', true)
  1003. ->accessCheck(TRUE);
  1004. $results = $query->execute();
  1005. return $results;
  1006. }),
  1007. $builder->produce('entity_load_multiple')
  1008. ->map('type', $builder->fromValue('node'))
  1009. ->map('ids', $builder->fromParent())
  1010. )
  1011. );
  1012. $registry->addFieldResolver('Query', 'statics',
  1013. $builder->produce('entity_load_multiple')
  1014. ->map('type', $builder->fromValue('node'))
  1015. ->map('ids', $builder->fromArgument('ids'))
  1016. );
  1017. $registry->addFieldResolver('Query', 'static',
  1018. $builder->produce('entity_load')
  1019. ->map('type', $builder->fromValue('node'))
  1020. ->map('bundles', $builder->fromValue(['static']))
  1021. ->map('id', $builder->fromArgument('id'))
  1022. );
  1023. $registry->addFieldResolver('Static', 'id',
  1024. $builder->produce('entity_id')
  1025. ->map('entity', $builder->fromParent())
  1026. );
  1027. $registry->addFieldResolver('Static', 'uuid',
  1028. $builder->produce('entity_uuid')
  1029. ->map('entity', $builder->fromParent())
  1030. );
  1031. $registry->addFieldResolver('Static', 'path',
  1032. $builder->compose(
  1033. $builder->produce('entity_url')
  1034. ->map('entity', $builder->fromParent()),
  1035. $builder->produce('url_path')
  1036. ->map('url', $builder->fromParent())
  1037. )
  1038. );
  1039. $registry->addFieldResolver('Static', 'title',
  1040. $builder->compose(
  1041. $builder->produce('entity_label')
  1042. ->map('entity', $builder->fromParent())
  1043. ));
  1044. $registry->addFieldResolver('Static', 'bundle',
  1045. $builder->compose(
  1046. $builder->produce('entity_bundle')
  1047. ->map('entity', $builder->fromParent())
  1048. ));
  1049. $registry->addFieldResolver('Static', 'promoted',
  1050. $builder->produce('property_path')
  1051. ->map('type', $builder->fromValue('entity:node'))
  1052. ->map('value', $builder->fromParent())
  1053. ->map('path', $builder->fromValue('promote.value'))
  1054. );
  1055. $registry->addFieldResolver('Static', 'texte',
  1056. $builder->produce('property_path')
  1057. ->map('type', $builder->fromValue('entity:node'))
  1058. ->map('value', $builder->fromParent())
  1059. ->map('path', $builder->fromValue('body.value'))
  1060. );
  1061. $registry->addFieldResolver('Static', 'author',
  1062. $builder->compose(
  1063. $builder->produce('entity_owner')
  1064. ->map('entity', $builder->fromParent()),
  1065. $builder->produce('entity_label')
  1066. ->map('entity', $builder->fromParent())
  1067. ));
  1068. $registry->addFieldResolver('Static', 'fichiers',
  1069. $builder->produce('entity_reference')
  1070. ->map('entity', $builder->fromParent())
  1071. ->map('field', $builder->fromValue('field_fichier'))
  1072. );
  1073. }
  1074. // ______
  1075. // / ____/________ __ ______
  1076. // / / __/ ___/ __ \/ / / / __ \
  1077. // / /_/ / / / /_/ / /_/ / /_/ /
  1078. // \____/_/ \____/\__,_/ .___/
  1079. // /_/
  1080. protected function addGroup(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1081. $registry->addFieldResolver('Query', 'allgroups',
  1082. $builder->compose(
  1083. $builder->callback(function($parent, $arg){
  1084. $entity_storage = \Drupal::entityTypeManager()->getStorage('group');
  1085. $query = $entity_storage->getQuery()
  1086. // ->condition('type', ['static'], 'IN')
  1087. ->accessCheck(TRUE);
  1088. $results = $query->execute();
  1089. return $results;
  1090. }),
  1091. $builder->produce('entity_load_multiple')
  1092. ->map('type', $builder->fromValue('group'))
  1093. ->map('ids', $builder->fromParent())
  1094. )
  1095. );
  1096. $registry->addFieldResolver('Query', 'groups',
  1097. $builder->produce('entity_load_multiple')
  1098. ->map('type', $builder->fromValue('group'))
  1099. ->map('ids', $builder->fromArgument('ids'))
  1100. );
  1101. $registry->addFieldResolver('Query', 'group',
  1102. $builder->produce('entity_load')
  1103. ->map('type', $builder->fromValue('group'))
  1104. // ->map('bundles', $builder->fromValue(['static']))
  1105. ->map('id', $builder->fromArgument('id'))
  1106. );
  1107. $registry->addFieldResolver('Group', 'id',
  1108. $builder->produce('entity_id')
  1109. ->map('entity', $builder->fromParent())
  1110. );
  1111. $registry->addFieldResolver('Group', 'uuid',
  1112. $builder->produce('entity_uuid')
  1113. ->map('entity', $builder->fromParent())
  1114. );
  1115. $registry->addFieldResolver('Group', 'name',
  1116. $builder->compose(
  1117. $builder->produce('entity_label')
  1118. ->map('entity', $builder->fromParent())
  1119. ));
  1120. $registry->addFieldResolver('Group', 'description',
  1121. $builder->produce('property_path')
  1122. ->map('type', $builder->fromValue('entity:node'))
  1123. ->map('value', $builder->fromParent())
  1124. ->map('path', $builder->fromValue('field_description.value'))
  1125. );
  1126. $registry->addFieldResolver('Group', 'path',
  1127. $builder->compose(
  1128. $builder->produce('entity_url')
  1129. ->map('entity', $builder->fromParent()),
  1130. $builder->produce('url_path')
  1131. ->map('url', $builder->fromParent())
  1132. )
  1133. );
  1134. $registry->addFieldResolver('Group', 'owner',
  1135. $builder->produce('entity_owner')
  1136. ->map('entity', $builder->fromParent())
  1137. );
  1138. $registry->addFieldResolver('Group', 'members',
  1139. $builder->compose(
  1140. $builder->callback(function ($parent, $args) {
  1141. $memberships = $parent->getMembers();
  1142. $users = [];
  1143. foreach ($memberships as $member) {
  1144. $users[] = $member->getUser();
  1145. }
  1146. return $users;
  1147. })
  1148. )
  1149. );
  1150. // $registry->addFieldResolver('Group', 'concernements',
  1151. // $builder->compose(
  1152. // $builder->callback(function ($parent, $args) {
  1153. // $memberships = $parent->getMembers();
  1154. // $users = [];
  1155. // foreach ($memberships as $member) {
  1156. // $users[] = $member->getUser();
  1157. // }
  1158. // return $users;
  1159. // }),
  1160. // )
  1161. // );
  1162. }
  1163. // __ __
  1164. // / / / /_______ _____
  1165. // / / / / ___/ _ \/ ___/
  1166. // / /_/ (__ ) __/ /
  1167. // \____/____/\___/_/
  1168. protected function addUser(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1169. $registry->addFieldResolver('Query', 'user',
  1170. $builder->produce('entity_load')
  1171. ->map('type', $builder->fromValue('user'))
  1172. // ->map('bundles', $builder->fromValue(['static']))
  1173. ->map('id', $builder->fromArgument('id'))
  1174. );
  1175. $registry->addFieldResolver('User', 'id',
  1176. $builder->produce('entity_id')
  1177. ->map('entity', $builder->fromParent())
  1178. );
  1179. $registry->addFieldResolver('User', 'email',
  1180. $builder->produce('property_path')
  1181. ->map('type', $builder->fromValue('entity:user'))
  1182. ->map('value', $builder->fromParent())
  1183. ->map('path', $builder->fromValue('mail.value'))
  1184. );
  1185. $registry->addFieldResolver('User', 'username',
  1186. $builder->produce('property_path')
  1187. ->map('type', $builder->fromValue('entity:user'))
  1188. ->map('value', $builder->fromParent())
  1189. ->map('path', $builder->fromValue('name.value'))
  1190. );
  1191. $registry->addFieldResolver('User', 'roles',
  1192. $builder->callback(function ($parent, $args) {
  1193. return $roles_ids = $parent->getRoles();
  1194. // $entity_storage = \Drupal::entityTypeManager()->getStorage('user_role');
  1195. // $roles = $entity_storage->loadMultiple($roles_ids);
  1196. // return $roles;
  1197. })
  1198. );
  1199. // ROLE
  1200. // type Role {
  1201. // name: String!
  1202. // }
  1203. // $registry->addFieldResolver('Role', 'name',
  1204. // $builder->produce('entity_label')
  1205. // ->map('entity', $builder->fromParent())
  1206. // );
  1207. $registry->addFieldResolver('User', 'concernements',
  1208. $builder->compose(
  1209. $builder->callback(function($parent, $arg){
  1210. $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  1211. $query = $entity_storage->getQuery()
  1212. ->condition('type', ['concernement'], 'IN')
  1213. ->condition('uid', $parent->id())
  1214. ->accessCheck(TRUE);
  1215. $results = $query->execute();
  1216. return $results;
  1217. }),
  1218. $builder->produce('entity_load_multiple')
  1219. ->map('type', $builder->fromValue('node'))
  1220. ->map('ids', $builder->fromParent())
  1221. )
  1222. );
  1223. $registry->addFieldResolver('User', 'groups',
  1224. $builder->compose(
  1225. $builder->callback(function($parent, $arg){
  1226. $group_relationship_storage = \Drupal::entityTypeManager()->getStorage('group_relationship');
  1227. $query = $group_relationship_storage->getQuery()
  1228. ->condition('entity_id', $parent->id())
  1229. ->accessCheck(TRUE);
  1230. $group_relationship_ids = $query->execute();
  1231. $group_relationships = $group_relationship_storage->loadMultiple($group_relationship_ids);
  1232. $group_ids = [];
  1233. foreach ($group_relationships as $group_relationship) {
  1234. $group_ids[] = $group_relationship->getGroupId();
  1235. }
  1236. return $group_ids;
  1237. }),
  1238. $builder->produce('entity_load_multiple')
  1239. ->map('type', $builder->fromValue('group'))
  1240. ->map('ids', $builder->fromParent())
  1241. )
  1242. );
  1243. $registry->addFieldResolver('User', 'structure',
  1244. $builder->produce('entity_reference')
  1245. ->map('entity', $builder->fromParent())
  1246. ->map('field', $builder->fromValue('field_strucure'))
  1247. );
  1248. }
  1249. // ___ _
  1250. // | \ __ _| |_ ___
  1251. // | |) / _` | _/ -_)
  1252. // |___/\__,_|\__\___|
  1253. protected function addDate(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1254. $registry->addFieldResolver('Date', 'start',
  1255. $builder->callback(function ($parent, $args) {
  1256. return isset($parent[0]) ? $parent[0]['value'] : null;
  1257. })
  1258. );
  1259. $registry->addFieldResolver('Date', 'end',
  1260. $builder->callback(function ($parent, $args) {
  1261. return isset($parent[0]) ? $parent[0]['end_value'] : null;
  1262. })
  1263. );
  1264. }
  1265. // ___ _ _ __ _ _ _
  1266. // | __(_) |___ / _(_)___| |__| |
  1267. // | _|| | / -_) _| / -_) / _` |
  1268. // |_| |_|_\___|_| |_\___|_\__,_|
  1269. protected function addFilefield(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1270. $registry->addFieldResolver('Filefield', 'description',
  1271. $builder->callback(function ($parent, $args) {
  1272. if (is_array($parent) && isset($parent['description'])) {
  1273. return $parent['description'];
  1274. } else if (is_array($parent) && isset($parent[0]['description'])) {
  1275. return $parent[0]['description'];
  1276. } else{
  1277. return null;
  1278. }
  1279. })
  1280. );
  1281. $registry->addFieldResolver('Filefield', 'file',
  1282. $builder->callback(function ($parent, $args) {
  1283. if (is_array($parent) && isset($parent['target_id'])) {
  1284. return \Drupal\file\Entity\File::load($parent['target_id']);
  1285. } else if (is_array($parent) && isset($parent[0]['target_id'])) {
  1286. return \Drupal\file\Entity\File::load($parent[0]['target_id']);
  1287. } else{
  1288. return null;
  1289. }
  1290. })
  1291. );
  1292. }
  1293. // ___ _ _
  1294. // | __(_) |___
  1295. // | _|| | / -_)
  1296. // |_| |_|_\___|
  1297. protected function addFile(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1298. $registry->addFieldResolver('File', 'url',
  1299. $builder->callback(function ($parent, $args) {
  1300. return $parent->createFileUrl();
  1301. })
  1302. );
  1303. $registry->addFieldResolver('File', 'filesize',
  1304. $builder->callback(function ($parent, $args) {
  1305. return $parent->getSize();
  1306. })
  1307. );
  1308. $registry->addFieldResolver('File', 'filemime',
  1309. $builder->callback(function ($parent, $args) {
  1310. return $parent->getMimeType();
  1311. })
  1312. );
  1313. $registry->addFieldResolver('File', 'filename',
  1314. $builder->callback(function ($parent, $args) {
  1315. return $parent->getFilename();
  1316. })
  1317. );
  1318. $registry->addFieldResolver('File', 'fid',
  1319. $builder->callback(function ($parent, $args) {
  1320. return $parent->id();
  1321. })
  1322. );
  1323. $registry->addFieldResolver('File', 'uuid',
  1324. $builder->callback(function ($parent, $args) {
  1325. return $parent->uuid();
  1326. })
  1327. );
  1328. }
  1329. // ___
  1330. // |_ _|_ __ __ _ __ _ ___
  1331. // | || ' \/ _` / _` / -_)
  1332. // |___|_|_|_\__,_\__, \___|
  1333. // |___/
  1334. protected function addImage(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1335. $registry->addFieldResolver('Image', 'id',
  1336. $builder->produce('entity_id')
  1337. ->map('entity', $builder->fromParent())
  1338. );
  1339. $registry->addFieldResolver('Image', 'url',
  1340. $builder->produce('image_url')
  1341. ->map('entity', $builder->fromParent())
  1342. );
  1343. $registry->addFieldResolver('Image', 'alt',
  1344. $builder->produce('property_path')
  1345. ->map('type', $builder->fromValue('entity:node'))
  1346. ->map('value', $builder->fromParent())
  1347. ->map('path', $builder->fromValue('field_image.alt'))
  1348. );
  1349. $registry->addFieldResolver('Image', 'style_minicard',
  1350. $builder->produce('image_derivative')
  1351. ->map('entity', $builder->fromParent())
  1352. ->map('style', $builder->fromValue('card_medium_half'))
  1353. );
  1354. $registry->addFieldResolver('Image', 'style_minicard_url',
  1355. $builder->compose(
  1356. $builder->produce('image_derivative')
  1357. ->map('entity', $builder->fromParent())
  1358. ->map('style', $builder->fromValue('card_medium_half')),
  1359. $builder->callback(function($parent, $args){
  1360. return $parent['url'];
  1361. })
  1362. ));
  1363. }
  1364. // __ ___ _ _ _ _
  1365. // \ \ / (_)__| |___ ___| | (_)_ _ | |__
  1366. // \ V /| / _` / -_) _ \ |__| | ' \| / /
  1367. // \_/ |_\__,_\___\___/____|_|_||_|_\_\
  1368. protected function addVideolink(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1369. $registry->addFieldResolver('VideoLink', 'url',
  1370. $builder->produce('property_path')
  1371. ->map('type', $builder->fromValue('field_item:video_embed_field'))
  1372. ->map('value', $builder->fromParent())
  1373. ->map('path', $builder->fromValue('value'))
  1374. );
  1375. }
  1376. // _____
  1377. // |_ _|_ _ __ _
  1378. // | |/ _` / _` |
  1379. // |_|\__,_\__, |
  1380. // |___/
  1381. protected function addTaxoterm(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1382. // $registry->addFieldResolver('Query', 'alltags',
  1383. // $builder->compose(
  1384. // $builder->callback(function($parent, $arg){
  1385. // $entity_storage = \Drupal::entityTypeManager()->getStorage('taxonomy_term');
  1386. // $query = $entity_storage->getQuery()
  1387. // ->condition('vid', ['tag','tag_prod'], 'IN')
  1388. // ->accessCheck(TRUE);
  1389. // $results = $query->execute();
  1390. // return $results;
  1391. // }),
  1392. // $builder->produce('entity_load_multiple')
  1393. // ->map('type', $builder->fromValue('taxonomy_term'))
  1394. // ->map('ids', $builder->fromParent())
  1395. // )
  1396. // );
  1397. // $registry->addFieldResolver('Query', 'tag',
  1398. // $builder->produce('entity_load')
  1399. // ->map('type', $builder->fromValue('taxonomy_term'))
  1400. // ->map('bundles', $builder->fromValue(['tag']))
  1401. // ->map('id', $builder->fromArgument('id'))
  1402. // );
  1403. // $registry->addFieldResolver('Query', 'famille',
  1404. // $builder->produce('entity_load')
  1405. // ->map('type', $builder->fromValue('taxonomy_term'))
  1406. // ->map('bundles', $builder->fromValue(['famille']))
  1407. // ->map('id', $builder->fromArgument('id'))
  1408. // );
  1409. // $registry->addFieldResolver('Query', 'tagprod',
  1410. // $builder->produce('entity_load')
  1411. // ->map('type', $builder->fromValue('taxonomy_term'))
  1412. // ->map('bundles', $builder->fromValue(['tag_prod']))
  1413. // ->map('id', $builder->fromArgument('id'))
  1414. // );
  1415. // get all tags for a given familly
  1416. // $registry->addFieldResolver('Query', 'famillytags',
  1417. // $builder->compose(
  1418. // $builder->callback(function($parent, $arg){
  1419. // $entity_storage = \Drupal::entityTypeManager()->getStorage('node');
  1420. // $query = $entity_storage->getQuery()
  1421. // ->condition('type', ['texte', 'texte_prod'], 'IN')
  1422. // ->condition('field_famille', $arg->famillyid)
  1423. // ->accessCheck(TRUE);
  1424. // $results = $query->execute();
  1425. // return $results;
  1426. // }),
  1427. // $builder->produce('entity_load_multiple')
  1428. // ->map('type', $builder->fromValue('node'))
  1429. // ->map('ids', $builder->fromParent())
  1430. // // $builder->produce('entity_load_multiple')
  1431. // // ->map('type', $builder->fromValue('taxonomy_term'))
  1432. // // ->map('ids', $builder->fromParent())
  1433. // )
  1434. // );
  1435. $registry->addFieldResolver('Taxoterm', 'id',
  1436. $builder->produce('entity_id')
  1437. ->map('entity', $builder->fromParent())
  1438. );
  1439. $registry->addFieldResolver('Taxoterm', 'uuid',
  1440. $builder->produce('entity_uuid')
  1441. ->map('entity', $builder->fromParent())
  1442. );
  1443. $registry->addFieldResolver('Taxoterm', 'name',
  1444. $builder->produce('entity_label')
  1445. ->map('entity', $builder->fromParent())
  1446. );
  1447. $registry->addFieldResolver('Taxoterm', 'vocabulary',
  1448. $builder->produce('entity_bundle')
  1449. ->map('entity', $builder->fromParent())
  1450. );
  1451. }
  1452. // _ _ _
  1453. // | | (_)_ _ | |__
  1454. // | |__| | ' \| / /
  1455. // |____|_|_||_|_\_\
  1456. protected function addLink(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1457. $registry->addFieldResolver('Link', 'url',
  1458. $builder->callback(function ($parent, $args) {
  1459. // return isset($parent[0]) ? $parent[0]['uri'] : null;
  1460. return $parent['uri'];
  1461. })
  1462. );
  1463. $registry->addFieldResolver('Link', 'title',
  1464. $builder->callback(function ($parent, $args) {
  1465. // return isset($parent[0]) ? $parent[0]['title'] : null;
  1466. return $parent['title'];
  1467. })
  1468. );
  1469. }
  1470. // _____ _ _ _ ____ __ _ _ _ _
  1471. // | ____|_ __ | |_(_) |_ _ _ | _ \ ___ / _(_)_ __ (_) |_(_) ___ _ __
  1472. // | _| | '_ \| __| | __| | | | | | | |/ _ \ |_| | '_ \| | __| |/ _ \| '_ \
  1473. // | |___| | | | |_| | |_| |_| | | |_| | __/ _| | | | | | |_| | (_) | | | |
  1474. // |_____|_| |_|\__|_|\__|\__, | |____/ \___|_| |_|_| |_|_|\__|_|\___/|_| |_|
  1475. // |___/
  1476. protected function addEntityDefinition(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1477. $registry->addFieldResolver('Query', 'entitydef',
  1478. $builder->compose(
  1479. $builder->callback(function($parent, $arg){
  1480. // $entity_object = NodeType::load($builder->fromArgument('bundle'));
  1481. $field_defintions = \Drupal::service('entity_field.manager')->getFieldDefinitions($arg['type'], $arg['bundle']);
  1482. return $field_defintions;
  1483. })
  1484. )
  1485. );
  1486. $registry->addFieldResolver('EntityDefinition', 'fields',
  1487. $builder->callback(function ($parent, $args) {
  1488. return $parent;
  1489. })
  1490. );
  1491. }
  1492. // _____ _ _ _ ____ __
  1493. // | ___(_) ___| | __| | | _ \ ___ / _|
  1494. // | |_ | |/ _ \ |/ _` | | | | |/ _ \ |_
  1495. // | _| | | __/ | (_| | | |_| | __/ _|
  1496. // |_| |_|\___|_|\__,_| |____/ \___|_|
  1497. protected function addFieldDef(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  1498. $registry->addFieldResolver('FieldDef', 'type',
  1499. $builder->callback(function ($parent, $args) {
  1500. return $parent->getType();
  1501. })
  1502. );
  1503. $registry->addFieldResolver('FieldDef', 'field_name',
  1504. $builder->callback(function ($parent, $args) {
  1505. return $parent->getName();
  1506. })
  1507. );
  1508. $registry->addFieldResolver('FieldDef', 'label',
  1509. $builder->callback(function ($parent, $args) {
  1510. $label = $parent->getLabel();
  1511. $vartype = gettype($label);
  1512. switch ($vartype) {
  1513. case 'string':
  1514. return $label;
  1515. break;
  1516. case 'object':
  1517. switch (get_class($label)) {
  1518. case 'TranslatableMarkup':
  1519. return $label->render();
  1520. break;
  1521. }
  1522. break;
  1523. }
  1524. return "";
  1525. })
  1526. );
  1527. $registry->addFieldResolver('FieldDef', 'description',
  1528. $builder->callback(function ($parent, $args) {
  1529. $description = $parent->getDescription();
  1530. $vartype = gettype($description);
  1531. switch ($vartype) {
  1532. case 'string':
  1533. return $description;
  1534. break;
  1535. case 'object':
  1536. switch (get_class($description)) {
  1537. case 'TranslatableMarkup':
  1538. return $description->render();
  1539. break;
  1540. }
  1541. break;
  1542. }
  1543. return "";
  1544. })
  1545. );
  1546. }
  1547. }