Add handler.

This commit is contained in:
LukeMathWalker 2021-07-22 08:31:57 +01:00
parent 2e644faf9d
commit 16ba42dccf
4 changed files with 11 additions and 4 deletions

View file

@ -1,7 +1,9 @@
mod health_check; mod health_check;
mod newsletters;
mod subscriptions; mod subscriptions;
mod subscriptions_confirm; mod subscriptions_confirm;
pub use health_check::*; pub use health_check::*;
pub use newsletters::*;
pub use subscriptions::*; pub use subscriptions::*;
pub use subscriptions_confirm::*; pub use subscriptions_confirm::*;

View file

@ -0,0 +1,5 @@
use actix_web::HttpResponse;
pub async fn publish_newsletter() -> HttpResponse {
HttpResponse::Ok().finish()
}

View file

@ -1,6 +1,6 @@
use crate::configuration::{DatabaseSettings, Settings}; use crate::configuration::{DatabaseSettings, Settings};
use crate::email_client::EmailClient; use crate::email_client::EmailClient;
use crate::routes::{confirm, health_check, subscribe}; use crate::routes::{confirm, health_check, publish_newsletter, subscribe};
use actix_web::dev::Server; use actix_web::dev::Server;
use actix_web::web::Data; use actix_web::web::Data;
use actix_web::{web, App, HttpServer}; use actix_web::{web, App, HttpServer};
@ -79,6 +79,7 @@ fn run(
.route("/health_check", web::get().to(health_check)) .route("/health_check", web::get().to(health_check))
.route("/subscriptions", web::post().to(subscribe)) .route("/subscriptions", web::post().to(subscribe))
.route("/subscriptions/confirm", web::get().to(confirm)) .route("/subscriptions/confirm", web::get().to(confirm))
.route("/newsletters", web::post().to(publish_newsletter))
.app_data(db_pool.clone()) .app_data(db_pool.clone())
.app_data(email_client.clone()) .app_data(email_client.clone())
.app_data(base_url.clone()) .app_data(base_url.clone())

View file

@ -1,5 +1,5 @@
use crate::helpers::{spawn_app, ConfirmationLinks, TestApp}; use crate::helpers::{spawn_app, ConfirmationLinks, TestApp};
use wiremock::matchers::{method, path}; use wiremock::matchers::{method, path, any};
use wiremock::{Mock, ResponseTemplate}; use wiremock::{Mock, ResponseTemplate};
async fn create_unconfirmed_subscriber(app: &TestApp) -> ConfirmationLinks { async fn create_unconfirmed_subscriber(app: &TestApp) -> ConfirmationLinks {
@ -42,8 +42,7 @@ async fn newsletters_are_not_delivered_to_unconfirmed_subscribers() {
let app = spawn_app().await; let app = spawn_app().await;
create_unconfirmed_subscriber(&app).await; create_unconfirmed_subscriber(&app).await;
Mock::given(path("/email")) Mock::given(any())
.and(method("POST"))
.respond_with(ResponseTemplate::new(200)) .respond_with(ResponseTemplate::new(200))
.expect(0) .expect(0)
.mount(&app.email_server) .mount(&app.email_server)