attempt at fixing confirmation emails by setting email headers, link for manual confirmation email and cut next release #29
4 changed files with 26 additions and 6 deletions
add a link for manually sending a confirmation email
commit
28f5caa548
|
|
@ -455,7 +455,7 @@ impl JobOffer<PathBuf> {
|
||||||
.collect::<Result<_, PresentationError>>()?;
|
.collect::<Result<_, PresentationError>>()?;
|
||||||
|
|
||||||
let actions = if !is_preview && is_authenticated {
|
let actions = if !is_preview && is_authenticated {
|
||||||
Some(JobOfferActions::new(req, id)?)
|
Some(JobOfferActions::new(req, id, self)?)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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::{
|
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::error::UrlGenerationError;
|
||||||
use actix_web::HttpRequest;
|
use actix_web::HttpRequest;
|
||||||
use chrono::FixedOffset;
|
use chrono::FixedOffset;
|
||||||
use lettre::Address;
|
use lettre::Address;
|
||||||
|
use std::path::PathBuf;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
#[derive(serde::Serialize)]
|
#[derive(serde::Serialize)]
|
||||||
|
|
@ -50,12 +54,14 @@ pub struct JobOfferActions {
|
||||||
unpublish_url: Url,
|
unpublish_url: Url,
|
||||||
delete_url: Url,
|
delete_url: Url,
|
||||||
edit_url: Url,
|
edit_url: Url,
|
||||||
|
confirmation_link: Option<Url>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl JobOfferActions {
|
impl JobOfferActions {
|
||||||
pub(super) fn new(
|
pub(super) fn new(
|
||||||
req: &HttpRequest,
|
req: &HttpRequest,
|
||||||
id: &JobOfferId,
|
id: &JobOfferId,
|
||||||
|
offer: &JobOffer<PathBuf>,
|
||||||
) -> actix_web::Result<Self, UrlGenerationError> {
|
) -> actix_web::Result<Self, UrlGenerationError> {
|
||||||
let publish_url = req
|
let publish_url = req
|
||||||
.url_for(JOBOFFER_PUBLISH_ROUTE, &[id])
|
.url_for(JOBOFFER_PUBLISH_ROUTE, &[id])
|
||||||
|
|
@ -73,11 +79,19 @@ impl JobOfferActions {
|
||||||
.url_for(JOBOFFER_EDIT_ROUTE, &[id])
|
.url_for(JOBOFFER_EDIT_ROUTE, &[id])
|
||||||
.expect("generation of delete route urls should succeed");
|
.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 {
|
Ok(Self {
|
||||||
publish_url,
|
publish_url,
|
||||||
unpublish_url,
|
unpublish_url,
|
||||||
delete_url,
|
delete_url,
|
||||||
edit_url,
|
edit_url,
|
||||||
|
confirmation_link: confirmation_url,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ mod license;
|
||||||
|
|
||||||
pub(crate) use auth::{LOGIN_ROUTE, LOGOUT_ROUTE};
|
pub(crate) use auth::{LOGIN_ROUTE, LOGOUT_ROUTE};
|
||||||
pub(crate) use job_offer::{
|
pub(crate) use job_offer::{
|
||||||
|
confirmation::JOBOFFER_CONFIRM_ROUTE,
|
||||||
create::JOBOFFER_CREATION_ROUTE,
|
create::JOBOFFER_CREATION_ROUTE,
|
||||||
delete::{JOBOFFER_BULK_DELETE_ROUTE, JOBOFFER_DELETE_EXPIRED_ROUTE, JOBOFFER_DELETION_ROUTE},
|
delete::{JOBOFFER_BULK_DELETE_ROUTE, JOBOFFER_DELETE_EXPIRED_ROUTE, JOBOFFER_DELETION_ROUTE},
|
||||||
edit::JOBOFFER_EDIT_ROUTE,
|
edit::JOBOFFER_EDIT_ROUTE,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,10 @@
|
||||||
<div>ID: {{job_offer.id}}</div>
|
<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>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>
|
<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}}
|
{{/unless}}
|
||||||
|
|
||||||
{{#if job_offer.actions }}
|
{{#if job_offer.actions }}
|
||||||
|
|
@ -100,11 +104,12 @@
|
||||||
{{#*inline "formaction"}}{{job_offer.actions.delete_url}}{{/inline}}
|
{{#*inline "formaction"}}{{job_offer.actions.delete_url}}{{/inline}}
|
||||||
{{/confirm-modal}}
|
{{/confirm-modal}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if job_offer.actions.edit_url }}
|
||||||
|
<a href="{{job_offer.actions.edit_url}}">Bearbeiten</a>
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if job_offer.actions.edit_url }}
|
|
||||||
<a href="{{job_offer.actions.edit_url}}">Bearbeiten</a>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue