OuattSchemaExtension.php 64 KB

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