journallib/sync_remote/
subgroup_remote.rs

1use 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}