libellule 0.1.3

Unofficial implementation of the PRONOTE protocol
Documentation
use serde::Deserialize;

use crate::protocol::{Array, Date, Grade, Object};

#[derive(Debug, Deserialize)]
pub(crate) struct GradesData {
    #[serde(rename = "listeServices")]
    pub(crate) subjects: Array<GradeSubject>,

    #[serde(rename = "listeDevoirs")]
    pub(crate) assignments: Array<Assignment>,
}

#[derive(Deserialize, Debug)]
pub(crate) struct Assignment {
    #[serde(rename = "N")]
    pub(crate) id: String,

    #[serde(rename = "commentaire")]
    pub(crate) label: String,

    #[serde(rename = "note")]
    pub(crate) grade: Grade,

    #[serde(rename = "bareme")]
    pub(crate) scale: Grade,

    pub(crate) coefficient: f32,

    pub(crate) date: Date,

    #[serde(rename = "service")]
    pub(crate) subject: Object<GradeSubject>,

    #[serde(rename = "moyenne")]
    pub(crate) average: Grade,

    #[serde(rename = "noteMin")]
    pub(crate) min_grade: Grade,

    #[serde(rename = "noteMax")]
    pub(crate) max_grade: Grade,
}

#[derive(Debug, Deserialize)]
pub(crate) struct GradeSubject {
    #[serde(rename = "N")]
    pub(crate) id: String,

    #[serde(rename = "L")]
    pub(crate) name: String,
}