Source Controller
This commit is contained in:
		
							
								
								
									
										175
									
								
								src/Controller/ReferenceController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								src/Controller/ReferenceController.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\Controller; | ||||
|  | ||||
| use App\Entity\Bible; | ||||
| use App\Entity\Reference; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\Routing\Attribute\Route; | ||||
|  | ||||
| class ReferenceController extends AbstractController | ||||
| { | ||||
|     /** | ||||
|      * @var EntityManagerInterface | ||||
|      */ | ||||
|     public static EntityManagerInterface $emi; | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a Bible reference | ||||
|      * | ||||
|      * @param string $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveBible($ref): Reference | ||||
|     { | ||||
|         $book = Bible::findBook($ref); | ||||
|         $chapter = Bible::findChapter($ref); | ||||
|         $passage = Bible::findVerse($ref); | ||||
|         $bible = new Bible(); | ||||
|         $bible->setBook($book); | ||||
|         $bible->setChapter($chapter); | ||||
|         $label = null; | ||||
|  | ||||
|         if (is_array($passage)) { | ||||
|             $passage_start = $passage[0]; | ||||
|             $passage_end = $passage[1]; | ||||
|  | ||||
|             $bible = self::$emi->getRepository(Bible::class)->findRange($bible, [$passage_start, $passage_end]); | ||||
|             $passage = "{$passage_start}-{$passage_end}"; | ||||
|             $label = "{$bible[0]->getLabel()} {$bible[0]->getChapter()}:{$passage}"; | ||||
|         } elseif (is_int($passage)) { | ||||
|             $bible = self::$emi->getRepository(Bible::class)->findBy(['book' => $book, 'chapter' => $chapter, 'verse' => $passage]); | ||||
|             $label = "{$bible[0]->getLabel()} {$bible[0]->getChapter()}:{$passage}"; | ||||
|         } elseif ($passage === false) { | ||||
|             $bible = self::$emi->getRepository(Bible::class)->findBy(['book' => $book, 'chapter' => $chapter]); | ||||
|             $label = "{$bible[0]->getLabel()} {$bible[0]->getChapter()}"; | ||||
|  | ||||
|             $passage = null; | ||||
|         } | ||||
|  | ||||
|         if(is_array($bible)) { | ||||
|             $text = []; | ||||
|             foreach($bible as $b) { | ||||
|                 $text[] = "{$b->getVerse()}. {$b->getContent()}"; | ||||
|             } | ||||
|         } else { | ||||
|             $text[] = "{$bible->getVerse()}. {$bible->getContent()}"; | ||||
|         } | ||||
|  | ||||
|         $reference = "{$book} {$chapter}".($passage === null ? '' : ":{$passage}"); | ||||
|         $ref = new Reference(); | ||||
|         $ref->setType('bible'); | ||||
|         $ref->setName($reference); | ||||
|         $ref->setLabel($label); | ||||
|         $ref->setContent("# {$reference}\n\n".implode("\n", $text)); | ||||
|  | ||||
|         return $ref; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a creed | ||||
|      * | ||||
|      * @param string | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveCreed($ref): ?Reference | ||||
|     { | ||||
|         $ret = null; | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['label' => $ref]); | ||||
|         if ($r && count($r) > 0) { | ||||
|             $ret = $r[0]; | ||||
|         } | ||||
|         return $ret; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a Heidelberg Catechism reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveHC($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => 'hc', 'ndx' => $ref->getNdx()]); | ||||
|         if (!$r) { | ||||
|             return new Reference(); | ||||
|         } | ||||
|         return $r[0]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a Belgian Catechism reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveBC($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => 'belgic', 'ndx' => $ref->getNdx()]); | ||||
|         if(!$r) { | ||||
|             return new Reference(); | ||||
|         } | ||||
|         return $r[0]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve the Canon of Dort reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveCD($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => 'cd', 'ndx' => $ref->getNdx()]); | ||||
|         if (!$r) { | ||||
|             return new Reference(); | ||||
|         } | ||||
|         return $r[0]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a WSC reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveWSC($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => $ref->getType(), 'ndx' => $ref->getNdx()]); | ||||
|         return $r[0]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a WLC reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveWLC($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => $ref->getType(), 'ndx' => $ref->getNdx()]); | ||||
|         return $r[0]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method to retrieve a WCF reference | ||||
|      * | ||||
|      * @param Reference $ref | ||||
|      * | ||||
|      * @return Reference | ||||
|      */ | ||||
|     public static function retrieveWCF($ref): Reference | ||||
|     { | ||||
|         $r = self::$emi->getRepository(Reference::class)->findBy(['type' => $ref->getType(), 'ndx' => $ref->getNdx()]); | ||||
|         return $r[0]; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user