Skip to content

Commit 6f716d4

Browse files
committed
remove unnecessary arguments to streak query
The streak query used to support fetching the streak of a member given their id, roll_no or discord_id. Since only home uses this query and it uses id exclusively, this commit removes the unused code. Signed-off-by: Ivin Joel Abraham <[email protected]>
1 parent 5b829ae commit 6f716d4

File tree

1 file changed

+7
-49
lines changed

1 file changed

+7
-49
lines changed

src/graphql/queries/streak_queries.rs

+7-49
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::sync::Arc;
22

3-
use crate::models::{member::Member, status_update_streak::StatusUpdateStreak as Streak};
3+
use crate::models::status_update_streak::StatusUpdateStreak as Streak;
44
use async_graphql::{Context, Object, Result};
55
use sqlx::PgPool;
66

@@ -9,58 +9,16 @@ pub struct StreakQueries;
99

1010
#[Object]
1111
impl StreakQueries {
12-
async fn streak(
13-
&self,
14-
ctx: &Context<'_>,
15-
member_id: Option<i32>,
16-
roll_no: Option<String>,
17-
discord_id: Option<String>,
18-
) -> Result<Streak> {
12+
async fn streak(&self, ctx: &Context<'_>, member_id: i32) -> Result<Streak> {
1913
let pool = ctx.data::<Arc<PgPool>>().expect("Pool must be in context.");
2014

21-
if let Some(id) = member_id {
22-
let streak_query = sqlx::query_as::<_, Streak>(
23-
"SELECT current_streak, max_streak FROM StatusUpdateStreak WHERE member_id = $1",
24-
)
25-
.bind(id)
26-
.fetch_one(pool.as_ref())
27-
.await?;
28-
29-
return Ok(streak_query);
30-
}
31-
32-
let member_query = if let Some(roll) = roll_no {
33-
sqlx::query_as::<_, Member>("SELECT * FROM Member WHERE roll_no = $1")
34-
.bind(roll)
35-
.fetch_one(pool.as_ref())
36-
.await
37-
} else if let Some(discord) = discord_id {
38-
sqlx::query_as::<_, Member>("SELECT * FROM Member WHERE discord_id = $1")
39-
.bind(discord)
40-
.fetch_one(pool.as_ref())
41-
.await
42-
} else {
43-
return Err(async_graphql::Error::new(
44-
"At least one key (member_id, roll_no, discord_id) must be specified.",
45-
));
46-
};
47-
48-
let member = match member_query {
49-
Ok(member) => member,
50-
Err(_) => {
51-
return Err(async_graphql::Error::new(
52-
"No member found with the given criteria.",
53-
))
54-
}
55-
};
56-
57-
let streak_query = sqlx::query_as::<_, Streak>(
58-
"SELECT current_streak, max_streak FROM Streak WHERE member_id = $1",
15+
Ok(sqlx::query_as::<_, Streak>(
16+
"SELECT current_streak, max_streak FROM StatusUpdateStreak WHERE member_id = $1",
5917
)
60-
.bind(member.member_id)
18+
.bind(member_id)
6119
.fetch_one(pool.as_ref())
62-
.await?;
20+
.await?)
21+
}
6322

64-
Ok(streak_query)
6523
}
6624
}

0 commit comments

Comments
 (0)