模板
hanlder
/// 排行
pub async fn rank(Extension(state): Extension<AppState>) -> HandlerHtmlResult {
let handler_name = "rank";
let client = get_client(&state, handler_name).await?;
let result = db::rank(&client)
.await
.map_err(log_error(handler_name.to_string()))?;
let tmpl = RankTemplate {
urls: result,
short_url_domain: state.short_url_cfg.domain.clone(),
};
render(tmpl).map_err(log_error(handler_name.to_string()))
}
数据库操作
pub async fn rank(client: &Client) -> Result<Vec<Url>> {
let result = super::query(client, "SELECT id, url,email,visit,is_del FROM url WHERE is_del=false ORDER BY visit DESC LIMIT 100", &[]).await?;
Ok(result)
}