headless_lms_server/controllers/tmc_server/
users_by_upstream_id.rs1use std::env;
8
9use crate::{
10 domain::authorization::{
11 authorize_access_to_tmc_server, get_user_from_moocfi_by_tmc_access_token_and_upstream_id,
12 },
13 prelude::*,
14};
15use models::users::User;
16
17#[instrument(skip(pool))]
23pub async fn get_user_by_upstream_id(
24 upstream_id: web::Path<i32>,
25 pool: web::Data<PgPool>,
26 request: HttpRequest,
27) -> ControllerResult<web::Json<User>> {
28 let mut conn = pool.acquire().await?;
29 let token = authorize_access_to_tmc_server(&request).await?;
30 let tmc_access_token = env::var("TMC_ACCESS_TOKEN").expect("TMC_ACCESS_TOKEN must be defined");
31 let user = get_user_from_moocfi_by_tmc_access_token_and_upstream_id(
32 &mut conn,
33 &tmc_access_token,
34 &upstream_id,
35 )
36 .await?;
37
38 token.authorized_ok(web::Json(user))
39}
40
41pub fn _add_routes(cfg: &mut ServiceConfig) {
42 cfg.route("/{user_id}", web::get().to(get_user_by_upstream_id));
43}