Skip to content

Commit c8a7e61

Browse files
committed
Finish import route
1 parent edd4a8e commit c8a7e61

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

src/routes.rs

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ pub(crate) struct Import {
7272

7373
#[tracing::instrument(skip_all)]
7474
pub(crate) async fn import(
75-
_pool: sqlx::SqlitePool,
75+
pool: sqlx::SqlitePool,
7676
import: Option<Json<Import>>,
7777
expected_key: String,
7878
) -> impl IntoResponse {
@@ -84,12 +84,46 @@ pub(crate) async fn import(
8484
return StatusCode::NOT_FOUND.into_response();
8585
}
8686

87-
format!(
88-
"Got {} pending, {} manual, {} members, {} extras",
87+
let (pending_got, manual_got, members_got, gaijin_got) = (
8988
db.pending.len(),
9089
db.manual.len(),
9190
db.members.len(),
92-
db.extras.len()
91+
db.extras.len(),
92+
);
93+
94+
let mut gaijin_added = 0;
95+
let mut member_added = 0;
96+
let mut manual_added = 0;
97+
let mut pending_added = 0;
98+
99+
for gaijin in db.extras {
100+
if db::insert_gaijin(&pool, gaijin).await.is_ok() {
101+
gaijin_added += 1;
102+
}
103+
}
104+
105+
for member in db.members {
106+
if db::insert_member(&pool, member).await.is_ok() {
107+
member_added += 1;
108+
}
109+
}
110+
111+
for manual in db.manual {
112+
if db::insert_manual(&pool, manual).await.is_ok() {
113+
manual_added += 1;
114+
}
115+
}
116+
117+
for pending in db.pending {
118+
if db::insert_pending(&pool, pending).await.is_ok() {
119+
pending_added += 1;
120+
}
121+
}
122+
123+
format!(
124+
"Got {pending_got} pending, {manual_got} manual, {members_got} members, \
125+
{gaijin_got} extras, added {gaijin_added} gaijin, {member_added} members, \
126+
{manual_added} manual, {pending_added} pending"
93127
)
94128
.into_response()
95129
}

0 commit comments

Comments
 (0)