headless_lms_server/controllers/course_material/
oembed.rs1use crate::prelude::*;
2
3use headless_lms_utils::url_to_oembed_endpoint::{
4    OEmbedRequest, OEmbedResponse, mentimeter_oembed_response_builder,
5};
6
7async fn get_mentimeter_oembed_data(
11    query_params: web::Query<OEmbedRequest>,
12    app_conf: web::Data<ApplicationConfiguration>,
13    user: AuthUser,
14    pool: web::Data<PgPool>,
15) -> ControllerResult<web::Json<OEmbedResponse>> {
16    let mut conn = pool.acquire().await?;
17    let url = query_params.url.to_string();
18    let response = mentimeter_oembed_response_builder(url, app_conf.base_url.to_string())?;
19    let token = authorize(&mut conn, Act::View, Some(user.id), Res::AnyCourse).await?;
20    token.authorized_ok(web::Json(response))
21}
22
23pub fn _add_routes(cfg: &mut ServiceConfig) {
31    cfg.route("/mentimeter", web::get().to(get_mentimeter_oembed_data));
32}