Skip to content

Commit aeef41a

Browse files
committed
change: progress reset with actix-web
1 parent f4630d2 commit aeef41a

File tree

1 file changed

+42
-40
lines changed

1 file changed

+42
-40
lines changed
Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,55 @@
1-
use crate::server::utils::RequestUnpack;
1+
use crate::server::utils::GetAuthId;
22
use crate::server::{AppData, Authentication, CommonResponse};
33
use serde::Deserialize;
44
use sql_client::internal::progress_reset_manager::ProgressResetManager;
5-
use tide::{Request, Response, Result};
5+
use actix_web::{web, error, HttpResponse, HttpRequest, Result};
66

7-
pub(crate) async fn get_progress_reset_list<A>(request: Request<AppData<A>>) -> Result<Response>
8-
where
9-
A: Authentication + Clone + Send + Sync + 'static,
10-
{
11-
let user_id = request.get_authorized_id().await?;
12-
let pool = request.state().pg_pool.clone();
13-
let list = pool.get_progress_reset_list(&user_id).await?;
14-
let response = Response::json(&list)?;
7+
pub(crate) async fn get_progress_reset_list<A: Authentication + Clone + Send + Sync + 'static>(
8+
request: HttpRequest,
9+
data: web::Data<AppData<A>>,
10+
) -> Result<HttpResponse> {
11+
let user_id = data.get_authorized_id(request.cookie("token")).await?;
12+
let conn = data.pg_pool.clone();
13+
let list = conn.get_progress_reset_list(&user_id).await.map_err(error::ErrorInternalServerError)?;
14+
let response = HttpResponse::json(&list)?;
1515
Ok(response)
1616
}
1717

18-
pub(crate) async fn add_progress_reset_item<A>(request: Request<AppData<A>>) -> Result<Response>
19-
where
20-
A: Authentication + Clone + Send + Sync + 'static,
21-
{
22-
#[derive(Deserialize)]
23-
struct Query {
24-
problem_id: String,
25-
reset_epoch_second: i64,
26-
}
27-
let internal_user_id = request.get_authorized_id().await?;
28-
let pool = request.state().pg_pool.clone();
29-
let query = request.parse_body::<Query>().await?;
30-
pool.add_item(
31-
&internal_user_id,
18+
#[derive(Deserialize)]
19+
struct AddItemQuery {
20+
problem_id: String,
21+
reset_epoch_second: i64,
22+
}
23+
24+
pub(crate) async fn add_progress_reset_item<A: Authentication + Clone + Send + Sync + 'static>(
25+
request: HttpRequest,
26+
data: web::Data<AppData<A>>,
27+
query: web::Json<AddItemQuery>
28+
) -> Result<HttpResponse> {
29+
let user_id = data.get_authorized_id(request.cookie("token")).await?;
30+
let conn = data.pg_pool.clone();
31+
conn.add_item(
32+
&user_id,
3233
&query.problem_id,
3334
query.reset_epoch_second,
3435
)
35-
.await?;
36-
Ok(Response::ok())
36+
.await.map_err(error::ErrorInternalServerError)?;
37+
Ok(HttpResponse::Ok().finish())
38+
}
39+
40+
#[derive(Deserialize)]
41+
struct DeleteItemQuery {
42+
problem_id: String,
3743
}
3844

39-
pub(crate) async fn delete_progress_reset_item<A>(request: Request<AppData<A>>) -> Result<Response>
40-
where
41-
A: Authentication + Clone + Send + Sync + 'static,
42-
{
43-
#[derive(Deserialize)]
44-
struct Query {
45-
problem_id: String,
46-
}
47-
let internal_user_id = request.get_authorized_id().await?;
48-
let pool = request.state().pg_pool.clone();
49-
let query = request.parse_body::<Query>().await?;
50-
pool.remove_item(&internal_user_id, &query.problem_id)
51-
.await?;
52-
Ok(Response::ok())
45+
pub(crate) async fn delete_progress_reset_item<A: Authentication + Clone + Send + Sync + 'static>(
46+
request: HttpRequest,
47+
data: web::Data<AppData<A>>,
48+
query: web::Json<DeleteItemQuery>
49+
) -> Result<HttpResponse> {
50+
let user_id = data.get_authorized_id(request.cookie("token")).await?;
51+
let conn = data.pg_pool.clone();
52+
conn.remove_item(&user_id, &query.problem_id)
53+
.await.map_err(error::ErrorInternalServerError)?;
54+
Ok(HttpResponse::Ok().finish())
5355
}

0 commit comments

Comments
 (0)