Merge pull request 'send-blogpost-notification' (#681) from send-blogpost-notification into staging
Reviewed-on: #681
This commit is contained in:
commit
f55f45d960
@ -179,6 +179,13 @@ ORDER BY read_at DESC, created_at DESC;
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
pub(crate) async fn delete_by_link(db: &sqlx::Pool<Sqlite>, link: &str) {
|
||||
sqlx::query!("DELETE FROM notification WHERE link=?", link)
|
||||
.execute(db)
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -148,6 +148,26 @@ async fn new_blogpost(
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(FromForm, Debug)]
|
||||
struct BlogpostUnpublishedForm<'r> {
|
||||
article_url: &'r str,
|
||||
pw: &'r str,
|
||||
}
|
||||
|
||||
#[post("/", data = "<blogpost>")]
|
||||
async fn blogpost_unpublished(
|
||||
db: &State<SqlitePool>,
|
||||
blogpost: Form<BlogpostUnpublishedForm<'_>>,
|
||||
config: &State<Config>,
|
||||
) -> String {
|
||||
if blogpost.pw == &config.wordpress_key {
|
||||
Notification::delete_by_link(&db, blogpost.article_url).await;
|
||||
"ACK".into()
|
||||
} else {
|
||||
"WRONG pw".into()
|
||||
}
|
||||
}
|
||||
|
||||
#[catch(403)] //forbidden
|
||||
fn forbidden_error() -> Flash<Redirect> {
|
||||
Flash::error(Redirect::to("/"), "Keine Berechtigung für diese Aktion. Wenn du der Meinung bist, dass du das machen darfst, melde dich bitte bei it@rudernlinz.at.")
|
||||
@ -226,6 +246,7 @@ pub fn config(rocket: Rocket<Build>) -> Rocket<Build> {
|
||||
.mount("/auth", auth::routes())
|
||||
.mount("/wikiauth", routes![wikiauth])
|
||||
.mount("/new-blogpost", routes![new_blogpost])
|
||||
.mount("/blogpost-unpublished", routes![blogpost_unpublished])
|
||||
.mount("/log", log::routes())
|
||||
.mount("/planned", planned::routes())
|
||||
.mount("/ergo", ergo::routes())
|
||||
|
@ -78,7 +78,6 @@ add_filter( 'authenticate', 'rot_auth', 10, 3 );
|
||||
Add the following code to `wp-content/themes/bravada/functions.php`:
|
||||
|
||||
```
|
||||
|
||||
function send_article_url_on_publish($new_status, $old_status, $post) {
|
||||
// Check if the post is transitioning to 'publish' status
|
||||
if ($new_status == 'publish' && $old_status != 'publish' && $post->post_type == 'post') {
|
||||
@ -93,7 +92,7 @@ function send_article_url_on_publish($new_status, $old_status, $post) {
|
||||
$body = array(
|
||||
'article_url' => $article_url,
|
||||
'article_title' => $article_title,
|
||||
'pw' => "pw-as-specified-in-rockettoml"
|
||||
'pw' => "wordpress_key"
|
||||
);
|
||||
|
||||
// Prepare the arguments for wp_remote_post
|
||||
@ -117,6 +116,39 @@ function send_article_url_on_publish($new_status, $old_status, $post) {
|
||||
error_log('POST request sent successfully with article URL: ' . $article_url);
|
||||
}
|
||||
}
|
||||
if ($new_status != 'publish' && $old_status == 'publish' && $post->post_type == 'post') {
|
||||
$article_url = get_permalink($post->ID);
|
||||
// URL to send the POST request to
|
||||
$api_url = 'https://app.rudernlinz.at/blogpost-unpublished';
|
||||
|
||||
// Prepare the data for the POST request
|
||||
$body = array(
|
||||
'article_url' => $article_url,
|
||||
'pw' => "wordpress_key"
|
||||
);
|
||||
|
||||
// Prepare the arguments for wp_remote_post
|
||||
$args = array(
|
||||
'body' => $body,
|
||||
'timeout' => '5',
|
||||
'redirection' => '5',
|
||||
'httpversion' => '1.0',
|
||||
'blocking' => true,
|
||||
'headers' => array(),
|
||||
'cookies' => array()
|
||||
);
|
||||
|
||||
// Send the POST request
|
||||
$response = wp_remote_post($api_url, $args);
|
||||
|
||||
// Optional: Check if the request was successful
|
||||
if (is_wp_error($response)) {
|
||||
error_log('Failed to send POST request: ' . $response->get_error_message());
|
||||
} else {
|
||||
error_log('POST request sent successfully with article URL: ' . $article_url);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Hook the function to the 'transition_post_status' action
|
||||
|
Loading…
Reference in New Issue
Block a user