WIP on document conversion

This commit is contained in:
2024-05-30 21:58:54 -04:00
parent cfa56ec44f
commit df20936af2
34 changed files with 674 additions and 204 deletions

View File

@@ -6,6 +6,12 @@
* This will display a button which will either add or remove a bookmark for a given item.
*/
use BitBadger\Documents\SQLite\Patch;
use FeedReaderCentral\Data;
use FeedReaderCentral\Domain\Table;
use FeedReaderCentral\Key;
use FeedReaderCentral\Security;
include '../start.php';
$db = Data::getConnection();
@@ -13,6 +19,7 @@ Security::verifyUser($db);
$id = $_GET['id'];
// TODO: adapt query once "by fields" is available
$existsQuery = $db->prepare(
'SELECT item.id FROM item INNER JOIN feed ON feed.id = item.feed_id WHERE item.id = :id AND feed.user_id = :user');
$existsQuery->bindValue(':id', $id);
@@ -29,10 +36,11 @@ if (key_exists('action', $_GET)) {
$flag = 0;
}
if (isset($flag)) {
$update = $db->prepare('UPDATE item SET is_bookmarked = :flag WHERE id = :id');
$update->bindValue(':id', $id);
$update->bindValue(':flag', $flag);
if (!$update->execute()) die(Data::error($db)['error']);
Patch::byId(Table::ITEM, $id, ['is_bookmarked' => $flag], $db);
// $update = $db->prepare('UPDATE item SET is_bookmarked = :flag WHERE id = :id');
// $update->bindValue(':id', $id);
// $update->bindValue(':flag', $flag);
// if (!$update->execute()) die(Data::error($db)['error']);
}
}

View File

@@ -1,4 +1,8 @@
<?php
use FeedReaderCentral\Data;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();

View File

@@ -1,4 +1,8 @@
<?php
use FeedReaderCentral\Data;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();

View File

@@ -1,4 +1,8 @@
<?php
use FeedReaderCentral\Data;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();

View File

@@ -1,4 +1,8 @@
<?php
use FeedReaderCentral\Data;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();

View File

@@ -1,4 +1,8 @@
<?php
use FeedReaderCentral\Data;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();

View File

@@ -5,6 +5,13 @@
* Allows users to add, edit, and delete feeds
*/
use BitBadger\Documents\Field;
use BitBadger\Documents\SQLite\Delete;
use FeedReaderCentral\Data;
use FeedReaderCentral\Domain\Table;
use FeedReaderCentral\Feed;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();
@@ -14,16 +21,18 @@ $feedId = $_GET['id'] ?? '';
if ($_SERVER['REQUEST_METHOD'] == 'DELETE') {
if (!($feed = Feed::retrieveById($feedId, $db))) not_found();
$itemDelete = $db->prepare('DELETE FROM item WHERE feed_id = :feed');
$itemDelete->bindValue(':feed', $feed['id']);
if (!$itemDelete->execute()) add_error(Data::error($db)['error']);
$feedDelete = $db->prepare('DELETE FROM feed WHERE id = :feed');
$feedDelete->bindValue(':feed', $feed['id']);
if ($feedDelete->execute()) {
Delete::byField(Table::ITEM, Field::EQ('feed_id', $feed->id), $db);
// $itemDelete = $db->prepare('DELETE FROM item WHERE feed_id = :feed');
// $itemDelete->bindValue(':feed', $feed['id']);
// if (!$itemDelete->execute()) add_error(Data::error($db)['error']);
Delete::byId(Table::FEED, $feed->id, $db);
// $feedDelete = $db->prepare('DELETE FROM feed WHERE id = :feed');
// $feedDelete->bindValue(':feed', $feed['id']);
// if ($feedDelete->execute()) {
add_info('Feed &ldquo;' . htmlentities($feed['title']) . '&rdquo; deleted successfully');
} else {
add_error(Data::error($db)['error']);
}
// } else {
// add_error(Data::error($db)['error']);
// }
frc_redirect('/feeds');
}

View File

@@ -5,6 +5,11 @@
* Lists items in a given feed (all, unread, or bookmarked)
*/
use FeedReaderCentral\Data;
use FeedReaderCentral\Feed;
use FeedReaderCentral\ItemList;
use FeedReaderCentral\Security;
include '../../start.php';
$db = Data::getConnection();
@@ -13,9 +18,9 @@ Security::verifyUser($db);
if (!($feed = Feed::retrieveById($_GET['id'], $db))) not_found();
$list = match (true) {
key_exists('unread', $_GET) => ItemList::unreadForFeed($feed['id'], $db),
key_exists('bookmarked', $_GET) => ItemList::bookmarkedForFeed($feed['id'], $db),
default => ItemList::allForFeed($feed['id'], $db)
key_exists('unread', $_GET) => ItemList::unreadForFeed($feed->id, $db),
key_exists('bookmarked', $_GET) => ItemList::bookmarkedForFeed($feed->id, $db),
default => ItemList::allForFeed($feed->id, $db)
};
page_head(($list->itemType != '' ? "$list->itemType Items | " : '') . strip_tags($feed['title']));

View File

@@ -5,11 +5,16 @@
* List feeds and provide links for maintenance actions
*/
use FeedReaderCentral\Data;
use FeedReaderCentral\Key;
use FeedReaderCentral\Security;
include '../start.php';
$db = Data::getConnection();
Security::verifyUser($db);
// TODO: adapt query when document list is done
$feedQuery = $db->prepare('SELECT * FROM feed WHERE user_id = :user ORDER BY lower(title)');
$feedQuery->bindValue(':user', $_SESSION[Key::USER_ID]);
if (!($feedResult = $feedQuery->execute())) {

View File

@@ -5,6 +5,11 @@
* Displays a list of unread or bookmarked items for the current user
*/
use FeedReaderCentral\Data;
use FeedReaderCentral\Feed;
use FeedReaderCentral\ItemList;
use FeedReaderCentral\Security;
include '../start.php';
$db = Data::getConnection();

View File

@@ -6,6 +6,12 @@
* Retrieves and displays an item from a feed belonging to the current user
*/
use BitBadger\Documents\SQLite\Patch;
use FeedReaderCentral\Data;
use FeedReaderCentral\Domain\Table;
use FeedReaderCentral\Key;
use FeedReaderCentral\Security;
include '../start.php';
$db = Data::getConnection();
@@ -22,9 +28,10 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$isValidQuery->bindValue(':user', $_SESSION[Key::USER_ID]);
$isValidResult = $isValidQuery->execute();
if ($isValidResult && $isValidResult->fetchArray(SQLITE3_NUM)[0] == 1) {
$keepUnread = $db->prepare('UPDATE item SET is_read = 0 WHERE id = :id');
$keepUnread->bindValue(':id', $_POST['id']);
$keepUnread->execute();
Patch::byId(Table::ITEM, $_POST['id'], ['is_read' => 0], $db);
// $keepUnread = $db->prepare('UPDATE item SET is_read = 0 WHERE id = :id');
// $keepUnread->bindValue(':id', $_POST['id']);
// $keepUnread->execute();
}
$db->close();
frc_redirect($_POST['from']);

View File

@@ -6,6 +6,10 @@
* Search for items across all feeds
*/
use FeedReaderCentral\Data;
use FeedReaderCentral\ItemList;
use FeedReaderCentral\Security;
include '../start.php';
$db = Data::getConnection();

View File

@@ -5,6 +5,6 @@
include '../../start.php';
if (key_exists(Key::USER_ID, $_SESSION)) session_destroy();
if (key_exists(FeedReaderCentral\Key::USER_ID, $_SESSION)) session_destroy();
frc_redirect('/');

View File

@@ -1,6 +1,9 @@
<?php
include '../../start.php';
use FeedReaderCentral\Key;
use FeedReaderCentral\Security;
$db = Data::getConnection();
Security::verifyUser($db, redirectIfAnonymous: false);