journallib/sync_remote/
subgroup_remote.rs1use common::model::status_message::StatusMessage;
2use common::remote::{delete, get, post, put, services};
3use hyper::HeaderMap;
4use uuid::Uuid;
5
6use crate::dto::subgroup_request::SubgroupRequest;
7use crate::dto::subgroup_response::SubgroupResponse;
8
9pub fn add_user_to_subgroups(
10 subgroups: Vec<Uuid>,
11 student: Uuid,
12 headers: HeaderMap,
13) -> Result<Vec<SubgroupResponse>, String> {
14 post::<_, Vec<SubgroupResponse>>(
15 services::JOURNAL_API,
16 String::from(format!("{}{}", "/subgroup/addUserToSubgroups/", student)),
17 headers,
18 subgroups,
19 )
20}
21
22pub fn transfer_student(
23 subgroups: Vec<Uuid>,
24 student: Uuid,
25 old_school_class: Uuid,
26 headers: HeaderMap,
27) -> Result<Vec<SubgroupResponse>, String> {
28 post::<_, Vec<SubgroupResponse>>(
29 services::JOURNAL_API,
30 String::from(format!(
31 "{}/{}/{}",
32 "/subgroup/transferStudent", student, old_school_class
33 )),
34 headers,
35 subgroups,
36 )
37}
38
39pub fn get_subgroups_for_my_org(headers: HeaderMap) -> Result<Vec<SubgroupResponse>, String> {
40 get::<Vec<SubgroupResponse>>(services::JOURNAL_API, "/subgroup".to_string(), headers)
41}
42
43pub fn set_schedule(
44 schedule_id: Uuid,
45 subgroup_id: Uuid,
46 headers: HeaderMap,
47) -> Result<SubgroupResponse, String> {
48 put::<_, SubgroupResponse>(
49 services::JOURNAL_API,
50 format!(
51 "{}/{}/{}",
52 "/subgroup/setSchedule", schedule_id, subgroup_id
53 ),
54 headers,
55 "",
56 )
57}
58
59pub fn create_subgroup(
60 sbgrp: SubgroupRequest,
61 headers: HeaderMap,
62) -> Result<Vec<SubgroupResponse>, String> {
63 post::<_, Vec<SubgroupResponse>>(
64 services::JOURNAL_API,
65 String::from(format!("{}", "/subgroup")),
66 headers,
67 sbgrp,
68 )
69}
70
71pub fn delete_subgroup(subgroup: Uuid, headers: HeaderMap) -> Result<StatusMessage, String> {
72 delete::<StatusMessage>(
73 services::JOURNAL_API,
74 format!("{}{}", "/subgroup/", subgroup),
75 headers,
76 )
77}
78
79pub fn public_get_subgroup_by_list_id(
80 uuids: Vec<Uuid>,
81 headers: HeaderMap,
82) -> Result<Vec<SubgroupResponse>, String> {
83 post::<_, Vec<SubgroupResponse>>(
84 services::JOURNAL_API,
85 String::from(format!("{}", "/publicSubgroup")),
86 headers,
87 uuids,
88 )
89}