attempt at fixing confirmation emails by setting email headers, link for manual confirmation email and cut next release #29

Merged
ben merged 8 commits from ben/Jobboerse:main into main 2022-06-10 15:36:51 +02:00
4 changed files with 26 additions and 6 deletions
Showing only changes of commit 28f5caa548 - Show all commits

add a link for manually sending a confirmation email

Bennet Bleßmann 2022-06-10 15:23:51 +02:00 committed by Bennet Bleßmann
Signed by: ben
GPG key ID: 3BE1A1A3CBC3CF99

View file

@ -455,7 +455,7 @@ impl JobOffer<PathBuf> {
.collect::<Result<_, PresentationError>>()?;
let actions = if !is_preview && is_authenticated {
Some(JobOfferActions::new(req, id)?)
Some(JobOfferActions::new(req, id, self)?)
} else {
None
};

View file

@ -1,11 +1,15 @@
use crate::job_offers::{Attachment, JobOfferId, JobOfferStatus, Link};
use crate::job_offers::{
Attachment, ConfirmationStatus, JobOffer, JobOfferId, JobOfferStatus, Link,
};
use crate::route::{
JOBOFFER_DELETION_ROUTE, JOBOFFER_EDIT_ROUTE, JOBOFFER_PUBLISH_ROUTE, JOBOFFER_UNPUBLISH_ROUTE,
JOBOFFER_CONFIRM_ROUTE, JOBOFFER_DELETION_ROUTE, JOBOFFER_EDIT_ROUTE, JOBOFFER_PUBLISH_ROUTE,
JOBOFFER_UNPUBLISH_ROUTE,
};
use actix_web::error::UrlGenerationError;
use actix_web::HttpRequest;
use chrono::FixedOffset;
use lettre::Address;
use std::path::PathBuf;
use url::Url;
#[derive(serde::Serialize)]
@ -50,12 +54,14 @@ pub struct JobOfferActions {
unpublish_url: Url,
delete_url: Url,
edit_url: Url,
confirmation_link: Option<Url>,
}
impl JobOfferActions {
pub(super) fn new(
req: &HttpRequest,
id: &JobOfferId,
offer: &JobOffer<PathBuf>,
) -> actix_web::Result<Self, UrlGenerationError> {
let publish_url = req
.url_for(JOBOFFER_PUBLISH_ROUTE, &[id])
@ -73,11 +79,19 @@ impl JobOfferActions {
.url_for(JOBOFFER_EDIT_ROUTE, &[id])
.expect("generation of delete route urls should succeed");
let confirmation_url = match &offer.status.confirmation_status {
ConfirmationStatus::AwaitingConfirmation { token } => {
Some(req.url_for(JOBOFFER_CONFIRM_ROUTE, [id, token])?)
}
ConfirmationStatus::Confirmed => None,
};
Ok(Self {
publish_url,
unpublish_url,
delete_url,
edit_url,
confirmation_link: confirmation_url,
})
}
}

View file

@ -17,6 +17,7 @@ mod license;
pub(crate) use auth::{LOGIN_ROUTE, LOGOUT_ROUTE};
pub(crate) use job_offer::{
confirmation::JOBOFFER_CONFIRM_ROUTE,
create::JOBOFFER_CREATION_ROUTE,
delete::{JOBOFFER_BULK_DELETE_ROUTE, JOBOFFER_DELETE_EXPIRED_ROUTE, JOBOFFER_DELETION_ROUTE},
edit::JOBOFFER_EDIT_ROUTE,

View file

@ -68,6 +68,10 @@
<div>ID: {{job_offer.id}}</div>
<div>Review Status: <span class="{{#unless job_offer.reviewed}}unreviewed{{/unless}}">{{job_offer.status.review_status}}</span></div>
<div>Confirmation Status: <span class="{{#unless job_offer.confirmed}}unconfirmed{{/unless}}">{{job_offer.status.confirmation_status.type}}</span></div>
{{log job_offer.actions}}
{{#if job_offer.actions.confirmation_link}}
<div><a href="mailto:{{job_offer.contact_data}}?body=Confirmation%20Link:%20{{job_offer.actions.confirmation_link}}" >Manual Confirmation Mail</a></div>
{{/if}}
{{/unless}}
{{#if job_offer.actions }}
@ -100,11 +104,12 @@
{{#*inline "formaction"}}{{job_offer.actions.delete_url}}{{/inline}}
{{/confirm-modal}}
{{/if}}
{{#if job_offer.actions.edit_url }}
<a href="{{job_offer.actions.edit_url}}">Bearbeiten</a>
{{/if}}
{{/if}}
{{#if job_offer.actions.edit_url }}
<a href="{{job_offer.actions.edit_url}}">Bearbeiten</a>
{{/if}}
{{/if}}
</div>
</section>