use axum::Router;
use std::sync::Arc;
use super::{
mail_activity_handler::create_mail_activity_routes,
mail_activity_type_handler::create_mail_activity_type_read_routes,
mail_activity_plan_handler::create_mail_activity_plan_routes,
mail_activity_plan_template_handler::create_mail_activity_plan_template_routes,
mail_alias_domain_handler::create_mail_alias_domain_routes,
mail_alias_handler::create_mail_alias_routes,
mail_attachment_handler::create_mail_attachment_routes,
mail_message_attachment_handler::create_mail_message_attachment_routes,
mail_message_star_handler::create_mail_message_star_routes,
mail_message_handler::create_mail_message_read_routes,
mail_handler::create_mail_read_routes,
mail_notification_handler::create_mail_notification_read_routes,
mail_message_subtype_handler::create_mail_message_subtype_routes,
mail_message_reaction_handler::create_mail_message_reaction_routes,
mail_followers_handler::create_mail_followers_routes,
mail_presence_handler::create_mail_presence_read_routes,
mail_blacklist_handler::create_mail_blacklist_routes,
mail_tracking_value_handler::create_mail_tracking_value_routes,
discuss_channel_handler::create_discuss_channel_read_routes,
discuss_channel_member_handler::create_discuss_channel_member_routes,
mail_guest_handler::create_mail_guest_routes,
mail_server_handler::create_mail_server_routes,
fetchmail_server_handler::create_fetchmail_server_read_routes,
mail_gateway_allowed_handler::create_mail_gateway_allowed_routes,
phone_blacklist_handler::create_phone_blacklist_routes,
mail_message_schedule_handler::create_mail_message_schedule_routes,
mail_scheduled_message_handler::create_mail_scheduled_message_routes,
sms_handler::create_sms_read_routes,
sms_template_handler::create_sms_template_routes,
sms_tracker_handler::create_sms_tracker_read_routes,
};
use crate::application::service::{
MailActivityService,
MailActivityTypeService,
MailActivityPlanService,
MailActivityPlanTemplateService,
MailAliasDomainService,
MailAliasService,
MailAttachmentService,
MailMessageAttachmentService,
MailMessageStarService,
MailMessageService,
MailService,
MailNotificationService,
MailMessageSubtypeService,
MailMessageReactionService,
MailFollowersService,
MailPresenceService,
MailBlacklistService,
MailTrackingValueService,
DiscussChannelService,
DiscussChannelMemberService,
MailGuestService,
MailServerService,
FetchmailServerService,
MailGatewayAllowedService,
PhoneBlacklistService,
MailMessageScheduleService,
MailScheduledMessageService,
SmsService,
SmsTemplateService,
SmsTrackerService,
};
pub struct HttpServices {
pub mail_activity: Arc<MailActivityService>,
pub mail_activity_type: Arc<MailActivityTypeService>,
pub mail_activity_plan: Arc<MailActivityPlanService>,
pub mail_activity_plan_template: Arc<MailActivityPlanTemplateService>,
pub mail_alias_domain: Arc<MailAliasDomainService>,
pub mail_alias: Arc<MailAliasService>,
pub mail_attachment: Arc<MailAttachmentService>,
pub mail_message_attachment: Arc<MailMessageAttachmentService>,
pub mail_message_star: Arc<MailMessageStarService>,
pub mail_message: Arc<MailMessageService>,
pub mail: Arc<MailService>,
pub mail_notification: Arc<MailNotificationService>,
pub mail_message_subtype: Arc<MailMessageSubtypeService>,
pub mail_message_reaction: Arc<MailMessageReactionService>,
pub mail_followers: Arc<MailFollowersService>,
pub mail_presence: Arc<MailPresenceService>,
pub mail_blacklist: Arc<MailBlacklistService>,
pub mail_tracking_value: Arc<MailTrackingValueService>,
pub discuss_channel: Arc<DiscussChannelService>,
pub discuss_channel_member: Arc<DiscussChannelMemberService>,
pub mail_guest: Arc<MailGuestService>,
pub mail_server: Arc<MailServerService>,
pub fetchmail_server: Arc<FetchmailServerService>,
pub mail_gateway_allowed: Arc<MailGatewayAllowedService>,
pub phone_blacklist: Arc<PhoneBlacklistService>,
pub mail_message_schedule: Arc<MailMessageScheduleService>,
pub mail_scheduled_message: Arc<MailScheduledMessageService>,
pub sms: Arc<SmsService>,
pub sms_template: Arc<SmsTemplateService>,
pub sms_tracker: Arc<SmsTrackerService>,
}
pub fn configure_routes(services: HttpServices) -> Router {
Router::new()
.merge(create_mail_activity_routes(services.mail_activity))
.merge(create_mail_activity_type_read_routes(services.mail_activity_type))
.merge(create_mail_activity_plan_routes(services.mail_activity_plan))
.merge(create_mail_activity_plan_template_routes(services.mail_activity_plan_template))
.merge(create_mail_alias_domain_routes(services.mail_alias_domain))
.merge(create_mail_alias_routes(services.mail_alias))
.merge(create_mail_attachment_routes(services.mail_attachment))
.merge(create_mail_message_attachment_routes(services.mail_message_attachment))
.merge(create_mail_message_star_routes(services.mail_message_star))
.merge(create_mail_message_read_routes(services.mail_message))
.merge(create_mail_read_routes(services.mail))
.merge(create_mail_notification_read_routes(services.mail_notification))
.merge(create_mail_message_subtype_routes(services.mail_message_subtype))
.merge(create_mail_message_reaction_routes(services.mail_message_reaction))
.merge(create_mail_followers_routes(services.mail_followers))
.merge(create_mail_presence_read_routes(services.mail_presence))
.merge(create_mail_blacklist_routes(services.mail_blacklist))
.merge(create_mail_tracking_value_routes(services.mail_tracking_value))
.merge(create_discuss_channel_read_routes(services.discuss_channel))
.merge(create_discuss_channel_member_routes(services.discuss_channel_member))
.merge(create_mail_guest_routes(services.mail_guest))
.merge(create_mail_server_routes(services.mail_server))
.merge(create_fetchmail_server_read_routes(services.fetchmail_server))
.merge(create_mail_gateway_allowed_routes(services.mail_gateway_allowed))
.merge(create_phone_blacklist_routes(services.phone_blacklist))
.merge(create_mail_message_schedule_routes(services.mail_message_schedule))
.merge(create_mail_scheduled_message_routes(services.mail_scheduled_message))
.merge(create_sms_read_routes(services.sms))
.merge(create_sms_template_routes(services.sms_template))
.merge(create_sms_tracker_read_routes(services.sms_tracker))
}
pub mod individual {
use super::*;
pub fn mail_activity_routes(service: Arc<MailActivityService>) -> Router {
create_mail_activity_routes(service)
}
pub fn mail_activity_type_routes(service: Arc<MailActivityTypeService>) -> Router {
create_mail_activity_type_read_routes(service)
}
pub fn mail_activity_plan_routes(service: Arc<MailActivityPlanService>) -> Router {
create_mail_activity_plan_routes(service)
}
pub fn mail_activity_plan_template_routes(service: Arc<MailActivityPlanTemplateService>) -> Router {
create_mail_activity_plan_template_routes(service)
}
pub fn mail_alias_domain_routes(service: Arc<MailAliasDomainService>) -> Router {
create_mail_alias_domain_routes(service)
}
pub fn mail_alias_routes(service: Arc<MailAliasService>) -> Router {
create_mail_alias_routes(service)
}
pub fn mail_attachment_routes(service: Arc<MailAttachmentService>) -> Router {
create_mail_attachment_routes(service)
}
pub fn mail_message_attachment_routes(service: Arc<MailMessageAttachmentService>) -> Router {
create_mail_message_attachment_routes(service)
}
pub fn mail_message_star_routes(service: Arc<MailMessageStarService>) -> Router {
create_mail_message_star_routes(service)
}
pub fn mail_message_routes(service: Arc<MailMessageService>) -> Router {
create_mail_message_read_routes(service)
}
pub fn mail_routes(service: Arc<MailService>) -> Router {
create_mail_read_routes(service)
}
pub fn mail_notification_routes(service: Arc<MailNotificationService>) -> Router {
create_mail_notification_read_routes(service)
}
pub fn mail_message_subtype_routes(service: Arc<MailMessageSubtypeService>) -> Router {
create_mail_message_subtype_routes(service)
}
pub fn mail_message_reaction_routes(service: Arc<MailMessageReactionService>) -> Router {
create_mail_message_reaction_routes(service)
}
pub fn mail_followers_routes(service: Arc<MailFollowersService>) -> Router {
create_mail_followers_routes(service)
}
pub fn mail_presence_routes(service: Arc<MailPresenceService>) -> Router {
create_mail_presence_read_routes(service)
}
pub fn mail_blacklist_routes(service: Arc<MailBlacklistService>) -> Router {
create_mail_blacklist_routes(service)
}
pub fn mail_tracking_value_routes(service: Arc<MailTrackingValueService>) -> Router {
create_mail_tracking_value_routes(service)
}
pub fn discuss_channel_routes(service: Arc<DiscussChannelService>) -> Router {
create_discuss_channel_read_routes(service)
}
pub fn discuss_channel_member_routes(service: Arc<DiscussChannelMemberService>) -> Router {
create_discuss_channel_member_routes(service)
}
pub fn mail_guest_routes(service: Arc<MailGuestService>) -> Router {
create_mail_guest_routes(service)
}
pub fn mail_server_routes(service: Arc<MailServerService>) -> Router {
create_mail_server_routes(service)
}
pub fn fetchmail_server_routes(service: Arc<FetchmailServerService>) -> Router {
create_fetchmail_server_read_routes(service)
}
pub fn mail_gateway_allowed_routes(service: Arc<MailGatewayAllowedService>) -> Router {
create_mail_gateway_allowed_routes(service)
}
pub fn phone_blacklist_routes(service: Arc<PhoneBlacklistService>) -> Router {
create_phone_blacklist_routes(service)
}
pub fn mail_message_schedule_routes(service: Arc<MailMessageScheduleService>) -> Router {
create_mail_message_schedule_routes(service)
}
pub fn mail_scheduled_message_routes(service: Arc<MailScheduledMessageService>) -> Router {
create_mail_scheduled_message_routes(service)
}
pub fn sms_routes(service: Arc<SmsService>) -> Router {
create_sms_read_routes(service)
}
pub fn sms_template_routes(service: Arc<SmsTemplateService>) -> Router {
create_sms_template_routes(service)
}
pub fn sms_tracker_routes(service: Arc<SmsTrackerService>) -> Router {
create_sms_tracker_read_routes(service)
}
}