use crate::dto::curriculum_log::CurriculumLog;
use common::model::status_message::StatusMessage;
use common::remote::{get, post, services};
use hyper::HeaderMap;
use uuid::Uuid;
use crate::dto::access_request_approve_request::AccessRequestApproveRequest;
use crate::dto::access_request_request::AccessRequestRequest;
use crate::dto::form_request_request::FormRequestRequest;
use crate::dto::invite_registration_for_event_request::InviteRegistrationForEvent;
use crate::dto::lesson_plan_log::LessonPlanLog;
use crate::dto::mailing_letters_request::MailingLettersRequest;
use crate::dto::medication_log::MedicationLog;
use crate::dto::meeting_request::MeetingRequest;
use crate::dto::notification_user_request::NotificationUserRequest;
use crate::dto::notify_approve_request::NotifyApproveRequest;
use crate::dto::notify_cancel_request::NotifyCancelRequest;
use crate::dto::send_behaviour_outcome::SendBehaviourOutcome;
use crate::dto::send_support_request::SendSupportRequest;
use crate::dto::send_verification_and_recovery_request::SendVerificationAndRecoveryRequest;
use crate::dto::task_log::TaskLog;
use crate::dto::test_log::TestLog;
use crate::dto::transaction_log::TransactionLog;
pub fn send_recovery_email(
headers: HeaderMap,
dto: SendVerificationAndRecoveryRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendRecovery"),
headers,
dto,
)
}
pub fn send_invitation(
headers: HeaderMap,
dto: SendVerificationAndRecoveryRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendInvitation"),
headers,
dto,
)
}
pub fn send_lesson_plan_log(
headers: HeaderMap,
dto: LessonPlanLog,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/lessonPlanLog"),
headers,
dto,
)
}
pub fn send_test_log(headers: HeaderMap, dto: TestLog) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/testLog"),
headers,
dto,
)
}
pub fn send_medication_log(
headers: HeaderMap,
dto: MedicationLog,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/medicationLog"),
headers,
dto,
)
}
pub fn send_behaviour_outcome(
headers: HeaderMap,
dto: SendBehaviourOutcome,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendBehaviourOutcome"),
headers,
dto,
)
}
pub fn send_curriculum_log(
headers: HeaderMap,
dto: CurriculumLog,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/curriculumLog"),
headers,
dto,
)
}
pub fn send_task_log(headers: HeaderMap, dto: TaskLog) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/taskLog"),
headers,
dto,
)
}
pub fn send_transaction_log(
headers: HeaderMap,
dto: TransactionLog,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/transactionLog"),
headers,
dto,
)
}
pub fn send_support(headers: HeaderMap, dto: SendSupportRequest) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendSupport"),
headers,
dto,
)
}
pub fn send_form_request(
headers: HeaderMap,
dto: FormRequestRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendFormRequest/false"),
headers,
dto,
)
}
pub fn revoke_form_request(
headers: HeaderMap,
dto: FormRequestRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendFormRequest/true"),
headers,
dto,
)
}
pub fn send_verification(
headers: HeaderMap,
dto: SendVerificationAndRecoveryRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendVerification"),
headers,
dto,
)
}
pub fn notification_user(
headers: HeaderMap,
dto: NotificationUserRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/notificationUser"),
headers,
dto,
)
}
pub fn access_request(
headers: HeaderMap,
dto: AccessRequestRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/accessRequest"),
headers,
dto,
)
}
pub fn access_request_approve(
headers: HeaderMap,
dto: AccessRequestApproveRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/accessRequestApprove"),
headers,
dto,
)
}
pub fn notification_user_bulk(
headers: HeaderMap,
dto: Vec<NotificationUserRequest>,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/notificationUserBulk"),
headers,
dto,
)
}
pub fn send_school_invitations(
headers: HeaderMap,
dto: Vec<SendVerificationAndRecoveryRequest>,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/sendSchoolInvitations"),
headers,
dto,
)
}
pub fn send_invitation_from_org(
headers: HeaderMap,
dto: SendVerificationAndRecoveryRequest,
org_id: Uuid,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
format!("/mail/sendInvitation/{}", org_id),
headers,
dto,
)
}
pub fn mailing_letters(
headers: HeaderMap,
dtos: Vec<MailingLettersRequest>,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/mailingLettersPostmaster"),
headers,
dtos,
)
}
pub fn meeting_invitation(
headers: HeaderMap,
dto: MeetingRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/meetingInvitation"),
headers,
dto,
)
}
pub fn notify_approve(
headers: HeaderMap,
dto: NotifyApproveRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/notifyApprove"),
headers,
dto,
)
}
pub fn notify_cancel(
headers: HeaderMap,
dto: NotifyCancelRequest,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/notifyCancel"),
headers,
dto,
)
}
pub fn send_invite_to_user(
headers: HeaderMap,
dto: InviteRegistrationForEvent,
) -> Result<StatusMessage, String> {
post::<_, StatusMessage>(
services::POSTMASTER_API,
String::from("/mail/inviteRegistrationForEvent"),
headers,
dto,
)
}
pub fn send_auth_code(
code: String,
email: String,
headers: HeaderMap,
) -> Result<StatusMessage, String> {
get::<StatusMessage>(
services::POSTMASTER_API,
format!("/mail/sendAuthCode/{}/{}", code, email),
headers,
)
}