From 657975324a08be0db7c544e4bce3f3530163dad7 Mon Sep 17 00:00:00 2001 From: Lewis Dale Date: Tue, 17 Sep 2024 21:52:08 +0100 Subject: [PATCH] Stuff --- .idea/{feacher.iml => baleen.iml} | 2 - .idea/modules.xml | 4 +- .idea/symfony2.xml | 6 +++ bin/doctrine | 1 + composer.json | 4 +- composer.lock | 29 +++++++------- src/Controllers/FeedController.php | 36 +++++++++++++++++ src/Models/Data/Feed.php | 27 +++++++++++++ src/Models/Data/FeedFilter.php | 39 +++++++++++++++++++ src/Models/Data/FilterTarget.php | 12 ++++++ src/Models/Data/FilterType.php | 12 ++++++ .../Repositories/FeedFilterRepository.php | 18 +++++++++ src/Models/Repositories/FeedRepository.php | 18 +++++++++ src/app.php | 3 ++ src/dependencies.php | 2 +- 15 files changed, 190 insertions(+), 23 deletions(-) rename .idea/{feacher.iml => baleen.iml} (97%) create mode 100644 .idea/symfony2.xml create mode 100644 src/Controllers/FeedController.php create mode 100644 src/Models/Data/Feed.php create mode 100644 src/Models/Data/FeedFilter.php create mode 100644 src/Models/Data/FilterTarget.php create mode 100644 src/Models/Data/FilterType.php create mode 100644 src/Models/Repositories/FeedFilterRepository.php create mode 100644 src/Models/Repositories/FeedRepository.php diff --git a/.idea/feacher.iml b/.idea/baleen.iml similarity index 97% rename from .idea/feacher.iml rename to .idea/baleen.iml index 78b5181..c7797a8 100644 --- a/.idea/feacher.iml +++ b/.idea/baleen.iml @@ -2,9 +2,7 @@ - - diff --git a/.idea/modules.xml b/.idea/modules.xml index 69ce907..7f796dd 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + - \ No newline at end of file + diff --git a/.idea/symfony2.xml b/.idea/symfony2.xml new file mode 100644 index 0000000..bd98e40 --- /dev/null +++ b/.idea/symfony2.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/bin/doctrine b/bin/doctrine index 863eac4..20ceb0e 100644 --- a/bin/doctrine +++ b/bin/doctrine @@ -8,6 +8,7 @@ use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider; $dotenv = Dotenv\Dotenv::createImmutable([__DIR__, __DIR__ . "/.."]); $dotenv->load(); + require_once __DIR__ . '/../src/dependencies.php'; global $container; diff --git a/composer.json b/composer.json index d9bcf8c..39f699f 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "lewisdale/app", + "name": "lewisdale/baleen", "type": "project", "require": { "slim/slim": "^4.11", @@ -15,7 +15,7 @@ "ext-pdo": "*", "ext-readline": "*", "slim/csrf": "^1.3", - "ramsey/uuid-doctrine": "^2.0", + "ramsey/uuid-doctrine": "^2.1", "ramsey/uuid": "^4.7", "symfony/dom-crawler": "^6.3", "symfony/css-selector": "^6.3", diff --git a/composer.lock b/composer.lock index fd0d24f..16d4086 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b316cfe896d61acbd6be631afe77733f", + "content-hash": "c8354494b2a7c54a846acc27471f1b8a", "packages": [ { "name": "brick/math", @@ -2288,26 +2288,26 @@ }, { "name": "ramsey/uuid-doctrine", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/ramsey/uuid-doctrine.git", - "reference": "b002676be0e5e342d857c47f1b68e24de6841d08" + "reference": "491e1bfa4d9d81e52a60470fa92c871f7eef919e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid-doctrine/zipball/b002676be0e5e342d857c47f1b68e24de6841d08", - "reference": "b002676be0e5e342d857c47f1b68e24de6841d08", + "url": "https://api.github.com/repos/ramsey/uuid-doctrine/zipball/491e1bfa4d9d81e52a60470fa92c871f7eef919e", + "reference": "491e1bfa4d9d81e52a60470fa92c871f7eef919e", "shasum": "" }, "require": { - "doctrine/dbal": "^2.8 || ^3.0", - "php": "^7.4 || ^8.0", + "doctrine/dbal": "^2.8 || ^3.0 || ^4.0", + "php": "^8.1", "ramsey/uuid": "^3.9.7 || ^4.0" }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "doctrine/orm": "^2.5", + "doctrine/orm": "^2.5 || ^3.0", "ergebnis/composer-normalize": "^2.28.3", "mockery/mockery": "^1.5", "php-parallel-lint/php-console-highlighter": "^1.0", @@ -2317,12 +2317,9 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18.4", + "phpunit/phpunit": "^10.5", "ramsey/coding-standard": "^2.0.3", - "ramsey/conventional-commits": "^1.3", - "vimeo/psalm": "^5.4" + "ramsey/conventional-commits": "^1.3" }, "type": "library", "extra": { @@ -2359,7 +2356,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid-doctrine/issues", - "source": "https://github.com/ramsey/uuid-doctrine/tree/2.0.0" + "source": "https://github.com/ramsey/uuid-doctrine/tree/2.1.0" }, "funding": [ { @@ -2371,7 +2368,7 @@ "type": "tidelift" } ], - "time": "2022-12-20T23:38:28+00:00" + "time": "2024-05-27T00:00:21+00:00" }, { "name": "slim/csrf", @@ -5909,5 +5906,5 @@ "ext-readline": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/src/Controllers/FeedController.php b/src/Controllers/FeedController.php new file mode 100644 index 0000000..628d6e1 --- /dev/null +++ b/src/Controllers/FeedController.php @@ -0,0 +1,36 @@ +logger->info("FeedController::get() called"); + $feeds = $this->feedRepository->findBy([], ['title' => 'ASC']); + return $this->view->render($response, 'index.twig.html', ['feeds' => $feeds]); + } + + public function create(ServerRequestInterface $request, ResponseInterface $response) + { + $this->logger->info("FeedController::create() called"); + $body = $request->getParsedBody(); + + return $this->view->render($response, 'create.twig.html'); + } +} \ No newline at end of file diff --git a/src/Models/Data/Feed.php b/src/Models/Data/Feed.php new file mode 100644 index 0000000..356d1a4 --- /dev/null +++ b/src/Models/Data/Feed.php @@ -0,0 +1,27 @@ +id; + } + + #[ORM\Column(type: 'string', enumType: FilterTarget::class)] + public FilterTarget $target; + + #[ORM\Column(type: 'string', enumType: FilterType::class)] + public FilterType $filter; + + #[ORM\Column(type: 'string')] + public string $value; + + #[ORM\ManyToOne(targetEntity: Feed::class)] + #[ORM\JoinColumn(name: 'feed_id', referencedColumnName: 'id')] + public Feed $feed; +} \ No newline at end of file diff --git a/src/Models/Data/FilterTarget.php b/src/Models/Data/FilterTarget.php new file mode 100644 index 0000000..67c6792 --- /dev/null +++ b/src/Models/Data/FilterTarget.php @@ -0,0 +1,12 @@ + */ +class FeedFilterRepository extends EntityRepository +{ + public function __construct(EntityManager $em) + { + parent::__construct($em, $em->getClassMetadata(FeedFilter::class)); + } +} \ No newline at end of file diff --git a/src/Models/Repositories/FeedRepository.php b/src/Models/Repositories/FeedRepository.php new file mode 100644 index 0000000..77cb529 --- /dev/null +++ b/src/Models/Repositories/FeedRepository.php @@ -0,0 +1,18 @@ + */ +class FeedRepository extends EntityRepository +{ + public function __construct(EntityManager $em) + { + parent::__construct($em, $em->getClassMetadata(Feed::class)); + } +} \ No newline at end of file diff --git a/src/app.php b/src/app.php index 505ba3c..c4cde4b 100644 --- a/src/app.php +++ b/src/app.php @@ -1,5 +1,6 @@ add('csrf'); $app->get("/", [SampleController::class, 'get']); +$app->get('/feed', [FeedController::class, 'get']); + $app->addErrorMiddleware(true, true, true); $app->run(); \ No newline at end of file diff --git a/src/dependencies.php b/src/dependencies.php index 7b66378..bc28fe6 100644 --- a/src/dependencies.php +++ b/src/dependencies.php @@ -48,7 +48,7 @@ $container->set(EntityManager::class, static function() { $connection = DriverManager::getConnection([ 'driver' => 'pdo_sqlite', - 'path' => __DIR__ . '/../' . $_ENV["SQLITE_DB_NAME"], + 'path' => __DIR__ . '/../' . getenv("SQLITE_DB_NAME"), ], $config); return new EntityManager($connection, $config);