1 use actix_web::web::Data;
2 use lemmy_api_common::context::LemmyContext;
3 use lemmy_db_schema::source::local_site::LocalSite;
4 use lemmy_utils::{error::LemmyError, ConnectionId};
13 #[async_trait::async_trait(?Send)]
14 pub trait PerformCrud {
15 type Response: serde::ser::Serialize + Send;
19 context: &Data<LemmyContext>,
20 websocket_id: Option<ConnectionId>,
21 ) -> Result<Self::Response, LemmyError>;
24 /// Make sure if applications are required, that there is an application questionnaire
25 pub fn check_application_question(
26 application_question: &Option<Option<String>>,
27 local_site: &LocalSite,
28 require_application: &Option<bool>,
29 ) -> Result<(), LemmyError> {
30 if require_application.unwrap_or(false)
31 && (application_question == &Some(None)
32 || (application_question.is_none() && local_site.application_question.is_none()))
34 return Err(LemmyError::from_message("application_question_required"));