Add editing of feed URL (#4)

- Move feed-specific database calls to Feed class
- Detect when feed items have been updated
- Add const keys for $_REQUEST values
This commit is contained in:
2024-04-11 22:01:36 -04:00
parent 7d294b9be8
commit da9a569e4a
7 changed files with 275 additions and 144 deletions

View File

@@ -9,20 +9,35 @@ include '../start.php';
Security::verifyUser();
$feedId = array_key_exists('id', $_GET) ? $_GET['id'] : '';
$db = Data::getConnection();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// TODO: get feed, add if new, reject if existing but not owned by this user, update otherwise
$result = Feed::add($_POST['url']);
if (array_key_exists('ok', $result)) {
add_message('INFO', 'Feed added successfully');
$isNew = $_POST['id'] == 'new';
if ($isNew) {
$result = Feed::add($_POST['url'], $db);
} else {
add_message('ERROR', $result['error']);
$toEdit = Data::retrieveFeedById($_POST['id'], $db);
$result = $toEdit ? Feed::update($toEdit, $_POST['url'], $db) : [ 'error' => "Feed {$_POST['id']} not found" ];
}
$feed = [ 'id' => $_POST['id'], 'url' => $_POST['url'] ];
$title = 'TODO';
} else {
// TODO: Retrieve feed by ID if not new
if (array_key_exists('ok', $result)) {
add_info('Feed saved successfully');
$feedId = $isNew ? $result['ok'] : $_POST['id'];
} else {
add_error($result['error']);
}
}
if ($feedId == 'new') {
$feed = [ 'id' => $_GET['id'], 'url' => '' ];
$title = 'Add RSS Feed';
} else {
$feed = Data::retrieveFeedById((int) $feedId, $db);
if (!$feed) {
http_response_code(404);
die();
}
$title = 'Edit RSS Feed';
}
page_head($title); ?>
@@ -38,3 +53,4 @@ page_head($title); ?>
</form>
</article><?php
page_foot();
$db->close();

View File

@@ -9,8 +9,6 @@ include '../start.php';
Security::verifyUser();
page_head('Welcome');
?>
<?php
page_head('Welcome'); ?>
<p>Unread items go here</p><?php
page_foot();