journallib/remote/
subgroup_remote.rs

1use common::model::status_message::StatusMessage;
2use common::remote::services;
3use common::remote::{delete, get, post, put};
4use hyper::HeaderMap;
5use uuid::Uuid;
6
7use crate::dto::subgroup_request::SubgroupRequest;
8use crate::dto::subgroup_response::SubgroupResponse;
9
10pub fn add_user_to_subgroups(
11    subgroups: Vec<Uuid>,
12    student: Uuid,
13    headers: HeaderMap,
14) -> Result<Vec<SubgroupResponse>, String> {
15    post::<_, Vec<SubgroupResponse>>(
16        services::JOURNAL_API,
17        String::from(format!("{}{}", "/subgroup/addUserToSubgroups/", student)),
18        headers,
19        subgroups,
20    )
21}
22
23pub fn clear_class(class_id: Uuid, headers: HeaderMap) -> Result<Vec<SubgroupResponse>, String> {
24    post::<_, Vec<SubgroupResponse>>(
25        services::JOURNAL_API,
26        String::from(format!("{}{}", "/subgroup/clearClass/", class_id)),
27        headers,
28        "",
29    )
30}
31
32pub fn add_user_to_all_subgroups(
33    subgroups: Vec<Uuid>,
34    student: Uuid,
35    headers: HeaderMap,
36) -> Result<Vec<SubgroupResponse>, String> {
37    post::<_, Vec<SubgroupResponse>>(
38        services::JOURNAL_API,
39        String::from(format!("{}{}", "/subgroup/addUserToAllSubgroups/", student)),
40        headers,
41        subgroups,
42    )
43}
44
45pub fn transfer_student(
46    subgroups: Vec<Uuid>,
47    student: Uuid,
48    old_school_class: Uuid,
49    headers: HeaderMap,
50) -> Result<Vec<SubgroupResponse>, String> {
51    post::<_, Vec<SubgroupResponse>>(
52        services::JOURNAL_API,
53        String::from(format!(
54            "{}/{}/{}",
55            "/subgroup/transferStudent", student, old_school_class
56        )),
57        headers,
58        subgroups,
59    )
60}
61
62pub fn get_subgroups_for_my_org(headers: HeaderMap) -> Result<Vec<SubgroupResponse>, String> {
63    get::<Vec<SubgroupResponse>>(services::JOURNAL_API, "/subgroup".to_string(), headers)
64}
65
66pub fn set_schedule(
67    schedule_id: Uuid,
68    subgroup_id: Uuid,
69    headers: HeaderMap,
70) -> Result<SubgroupResponse, String> {
71    put::<_, SubgroupResponse>(
72        services::JOURNAL_API,
73        format!(
74            "{}/{}/{}",
75            "/subgroup/setSchedule", schedule_id, subgroup_id
76        ),
77        headers,
78        "",
79    )
80}
81
82pub fn create_subgroup(
83    sbgrp: SubgroupRequest,
84    headers: HeaderMap,
85) -> Result<Vec<SubgroupResponse>, String> {
86    post::<_, Vec<SubgroupResponse>>(
87        services::JOURNAL_API,
88        String::from(format!("{}", "/subgroup")),
89        headers,
90        sbgrp,
91    )
92}
93
94pub fn create_subgroup_list(
95    sbgrp: Vec<SubgroupRequest>,
96    headers: HeaderMap,
97) -> Result<Vec<SubgroupResponse>, String> {
98    post::<_, Vec<SubgroupResponse>>(
99        services::JOURNAL_API,
100        "/subgroup/createList".to_string(),
101        headers,
102        sbgrp,
103    )
104}
105
106pub fn delete_subgroup(subgroup: Uuid, headers: HeaderMap) -> Result<StatusMessage, String> {
107    delete::<StatusMessage>(
108        services::JOURNAL_API,
109        format!("{}{}", "/subgroup/", subgroup),
110        headers,
111    )
112}
113
114pub fn public_get_subgroup_by_list_id(
115    uuids: Vec<Uuid>,
116    headers: HeaderMap,
117) -> Result<Vec<SubgroupResponse>, String> {
118    post::<_, Vec<SubgroupResponse>>(
119        services::JOURNAL_API,
120        String::from(format!("{}", "/publicSubgroup")),
121        headers,
122        uuids,
123    )
124}
125
126pub fn get_subgroups_by_list_id(
127    uuids: Vec<Uuid>,
128    headers: HeaderMap,
129) -> Result<Vec<SubgroupResponse>, String> {
130    post(
131        services::JOURNAL_API,
132        String::from(format!("{}", "/subgroup/byListIds")),
133        headers,
134        uuids,
135    )
136}