use common::model::status_message::StatusMessage;
use common::remote::services;
use common::remote::{delete, get, post, put};
use hyper::HeaderMap;
use uuid::Uuid;
use crate::dto::subgroup_request::SubgroupRequest;
use crate::dto::subgroup_response::SubgroupResponse;
pub fn add_user_to_subgroups(
subgroups: Vec<Uuid>,
student: Uuid,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!("{}{}", "/subgroup/addUserToSubgroups/", student)),
headers,
subgroups,
)
}
pub fn clear_class(
class_id: Uuid,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!("{}{}", "/subgroup/clearClass/", class_id)),
headers,
"",
)
}
pub fn add_user_to_all_subgroups(
subgroups: Vec<Uuid>,
student: Uuid,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!("{}{}", "/subgroup/addUserToAllSubgroups/", student)),
headers,
subgroups,
)
}
pub fn transfer_student(
subgroups: Vec<Uuid>,
student: Uuid,
old_school_class: Uuid,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!(
"{}/{}/{}",
"/subgroup/transferStudent", student, old_school_class
)),
headers,
subgroups,
)
}
pub fn get_subgroups_for_my_org(headers: HeaderMap) -> Result<Vec<SubgroupResponse>, String> {
get::<Vec<SubgroupResponse>>(services::JOURNAL_API, format!("/subgroup"), headers)
}
pub fn set_schedule(
schedule_id: Uuid,
subgroup_id: Uuid,
headers: HeaderMap,
) -> Result<SubgroupResponse, String> {
put::<_, SubgroupResponse>(
services::JOURNAL_API,
format!(
"{}/{}/{}",
"/subgroup/setSchedule", schedule_id, subgroup_id
),
headers,
"",
)
}
pub fn create_subgroup(
sbgrp: SubgroupRequest,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!("{}", "/subgroup")),
headers,
sbgrp,
)
}
pub fn create_subgroup_list(
sbgrp: Vec<SubgroupRequest>,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
"/subgroup/createList".to_string(),
headers,
sbgrp,
)
}
pub fn delete_subgroup(subgroup: Uuid, headers: HeaderMap) -> Result<StatusMessage, String> {
delete::<StatusMessage>(
services::JOURNAL_API,
format!("{}{}", "/subgroup/", subgroup),
headers,
)
}
pub fn public_get_subgroup_by_list_id(
uuids: Vec<Uuid>,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post::<_, Vec<SubgroupResponse>>(
services::JOURNAL_API,
String::from(format!("{}", "/publicSubgroup")),
headers,
uuids,
)
}
pub fn get_subgroups_by_list_id(
uuids: Vec<Uuid>,
headers: HeaderMap,
) -> Result<Vec<SubgroupResponse>, String> {
post(
services::JOURNAL_API,
String::from(format!("{}", "/subgroup/byListIds")),
headers,
uuids,
)
}