headless_lms_server/controllers/course_material/
oembed.rsuse crate::prelude::*;
use headless_lms_utils::url_to_oembed_endpoint::{
mentimeter_oembed_response_builder, OEmbedRequest, OEmbedResponse,
};
async fn get_mentimeter_oembed_data(
query_params: web::Query<OEmbedRequest>,
app_conf: web::Data<ApplicationConfiguration>,
user: AuthUser,
pool: web::Data<PgPool>,
) -> ControllerResult<web::Json<OEmbedResponse>> {
let mut conn = pool.acquire().await?;
let url = query_params.url.to_string();
let response = mentimeter_oembed_response_builder(url, app_conf.base_url.to_string())?;
let token = authorize(&mut conn, Act::View, Some(user.id), Res::AnyCourse).await?;
token.authorized_ok(web::Json(response))
}
pub fn _add_routes(cfg: &mut ServiceConfig) {
cfg.route("/mentimeter", web::get().to(get_mentimeter_oembed_data));
}