edlearn_client/
membership.rs1use serde::Deserialize;
2
3use crate::{course::Course, Client, Result};
4
5#[derive(Debug, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct UserMembership {
9 pub id: String,
10 pub user_id: String,
11 pub course_id: String,
12 pub course: Course,
13}
14
15#[derive(Deserialize)]
16struct UserMembershipResp {
17 results: Vec<UserMembership>,
18}
19
20impl Client {
21 pub fn user_memberships(&self, user_id: &str) -> Result<Vec<UserMembership>> {
22 self.get::<UserMembershipResp>(&format!(
23 "learn/api/public/v1/users/{}/courses?expand=course",
24 user_id
25 ))
26 .map(|r| r.results)
27 }
28}