OuattSchemaExtension.php 65 KB

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