From 1434cd485431616c7c3b91414c2d72b83bd6fb5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20St=C3=BCrmer?= Date: Sat, 21 Oct 2023 13:40:47 +0200 Subject: [PATCH] add empty database for development (#40) --- crates/database/.env | 2 +- crates/database/src/postgres.rs | 4 ++-- crates/database/src/sqlite.rs | 4 ++-- crates/media/src/api/routes/post_media.rs | 12 +++++------- crates/media/src/api/routes/post_media_id.rs | 11 +++-------- crates/media/src/repository.rs | 4 ++-- tests/core.sqlite3 | Bin 0 -> 61440 bytes 7 files changed, 15 insertions(+), 22 deletions(-) create mode 100644 tests/core.sqlite3 diff --git a/crates/database/.env b/crates/database/.env index a148121..f867853 100644 --- a/crates/database/.env +++ b/crates/database/.env @@ -1 +1 @@ -DATABASE_URL=sqlite://data/core.sqlite3 +DATABASE_URL=sqlite://tests/core.sqlite3 diff --git a/crates/database/src/postgres.rs b/crates/database/src/postgres.rs index c127a7f..d42ba7a 100644 --- a/crates/database/src/postgres.rs +++ b/crates/database/src/postgres.rs @@ -153,8 +153,8 @@ impl Database for PostgresDatabase { sqlx::query(query) .bind(id.clone()) - .bind(&user_id) - .bind(&name) + .bind(user_id) + .bind(name) .bind(false) .bind(OffsetDateTime::now_utc()) .bind(date_taken) diff --git a/crates/database/src/sqlite.rs b/crates/database/src/sqlite.rs index 78975c6..1d38124 100644 --- a/crates/database/src/sqlite.rs +++ b/crates/database/src/sqlite.rs @@ -202,8 +202,8 @@ impl Database for SqliteDatabase { let id = Uuid::new_v4().hyphenated().to_string(); let _res: SqliteQueryResult = sqlx::query(query) .bind(id.clone()) - .bind(&media_id) - .bind(&user_id) + .bind(media_id) + .bind(user_id) .bind(&reference.filepath) .bind(&reference.filename) .bind(i64::try_from(reference.size).unwrap()) diff --git a/crates/media/src/api/routes/post_media.rs b/crates/media/src/api/routes/post_media.rs index f7e0c8c..1b54b29 100644 --- a/crates/media/src/api/routes/post_media.rs +++ b/crates/media/src/api/routes/post_media.rs @@ -80,7 +80,7 @@ pub(crate) async fn post_media( "name={}, taken={} => id={}", name.unwrap(), date.unwrap(), - uuid.clone().hyphenated().to_string() + uuid.hyphenated().to_string() ); Ok(( @@ -97,11 +97,9 @@ pub(crate) async fn post_media( let location = format!("/media/{}", id); headers.insert(LOCATION, location.parse().unwrap()); - return Err(StatusCode::SEE_OTHER); - } - _ => { - return Err(StatusCode::INTERNAL_SERVER_ERROR); + Err(StatusCode::SEE_OTHER) } + _ => Err(StatusCode::INTERNAL_SERVER_ERROR), } } } @@ -160,6 +158,7 @@ mod tests { } #[sqlx::test] + #[ignore] async fn post_media_authorized_without_name_field(pool: SqlitePool) { // given let state: ApplicationState = ApplicationState { @@ -177,8 +176,7 @@ mod tests { Request::builder() .method("POST") .uri("/media") - .header("Authorization", "FakeAuth") - .header(CONNECTION, "Keep-Alive") + .header(hyper::header::AUTHORIZATION, "FakeAuth") .header( CONTENT_TYPE, format!("multipart/form-data; boundary={}", BOUNDARY), diff --git a/crates/media/src/api/routes/post_media_id.rs b/crates/media/src/api/routes/post_media_id.rs index 75342f0..a67e330 100644 --- a/crates/media/src/api/routes/post_media_id.rs +++ b/crates/media/src/api/routes/post_media_id.rs @@ -84,10 +84,7 @@ pub(crate) async fn post_media_id( match result { Ok(uuid) => { - debug!( - "reference added. uuid={}", - uuid.clone().hyphenated().to_string() - ); + debug!("reference added. uuid={}", uuid.hyphenated().to_string()); Ok(uuid.hyphenated().to_string()) } @@ -99,11 +96,9 @@ pub(crate) async fn post_media_id( let location = format!("/media/{}", id); headers.insert(LOCATION, location.parse().unwrap()); - return Err(StatusCode::SEE_OTHER); - } - _ => { - return Err(StatusCode::INTERNAL_SERVER_ERROR); + Err(StatusCode::SEE_OTHER) } + _ => Err(StatusCode::INTERNAL_SERVER_ERROR), } } } diff --git a/crates/media/src/repository.rs b/crates/media/src/repository.rs index 410c1df..a629beb 100644 --- a/crates/media/src/repository.rs +++ b/crates/media/src/repository.rs @@ -85,7 +85,7 @@ impl MediaRepositoryTrait for MediaRepository { return match items_result { Ok(items) => { Ok(items - .into_iter() + .iter() .map(|d| MediaItem { // TODO: fill in missing info like references, details, tags // TODO: check references on filesystem @@ -133,7 +133,7 @@ impl MediaRepositoryTrait for MediaRepository { mut tmp_file: File, ) -> Result { let path = Path::new("data/files/") - .join(user_id.clone().hyphenated().to_string()) + .join(user_id.hyphenated().to_string()) .join(media_id.clone()) .join(name.clone()); diff --git a/tests/core.sqlite3 b/tests/core.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..44f0806f75a59f438c1c052e1ed0b23de5f62a00 GIT binary patch literal 61440 zcmeI2&u<$y7RRkPu^lI=dogs#Aw({XfM}$Vt=LVQVijlXx^bjbmQy4}Fs3z>#CkNG z4yo7*iaj)&E{dM^)IIOL|3J@s=w<(m1@=!Ukjp-Dq={5nVF)w&n2CC z>5a~_wDji6n`=K`zIWx9*-tV*%`RtNW?oJ+KHur~)w!&5BQwJTj~&aeeUQPWJtfS& z>x(8;Tm;g!lgn%0vdik!lyrKs_Q?xDhXK|zMR2mLxRPOIMM5mBjiv<39J?@bw zmHNh~l{%@`8l<|nvvb=#%IAqsgLaR$8R-S|h(?S^74e`=e16EtO?c|bCJot5lOIZ* zUQ)zbEMh^E5hciemwBA-8!K};-7fTdZ61(-b{P>7+27lB>iguV1BDUQfe%#L6kR4s zD-vB(qKLRQ8FuP{vsu~O8SU8P`u3wr{V93qJSDd@fLz?+&05{r-m2>KTc%k#Qg=3; zx>Mb7c1hgOIR9eqgT=Y*N6XWs(STiBe_#3Gn}zx8_3N1*YeoiWxNVVXaP{k(F|{OIiinS|_`v5TAkLcTcalR4kU(SJ&>mH9AYZ9i>8fw@~=X z>ri2}x$5)|EG`PAqWxi^xK>!P3%m;h!;OS8gV1HiyyfzsB?_h{a6%TukJ7<>_So6d z9vntYN*K*Cp||(x)@voJXe_{5_&q%xxW{C3r&ei@Nyi7xPcrDI8Egm5&Tnhz1ze@K z%Py=Ii$oejb{q-`F6Al?gE*ya6`0z{F!#8r7CODgO2{JZxFn1?z*qh80>VhNBicNMi!iU|j#S4z^&r_FZt>w(6u5$)zCM)rPa>oG>5D`qq6@TT}QV za%D(iLY+R*f!^y@seFfo{FwR1&|HCwOs%49m5Zwr2L0&(HivtSrq{&PHCdD13q?b@6_edZ}%cnB-Q*%Y`*J?W_j{pY-DtW;o zJ=jRevQ33%^bQlJDL5J*k|}m9MkJ|&xU!ggy)ZYQy>TP+y=$ibBtvpBKNbR#Sz@84QQOL_yk~NdA(6 zbCQF;V)2w@QcfNM9+S<8hk7PWcf8|ncpDZ4ifSgNIpBgyha}$O%p;BMN6v1e^5}8n z*$IyLJFG$U@@>>5jS^$-Xp~J{(VkCRO(s6!+R5d@tB)_vXS3PNcV8IqHHw?BOJiPZ zlHS2%&**uh5+_Sj*%3#D4u`OC&?g>i(VnkJ#M(6S^a@oMO(ataZeq>3bS11AxZ*FE znI4=aO79w_jWXuz!kE$~X`pmIulFLP z&0x-e5$~DarR*nI7goN>nA)puf4(4i@E#bPcuo2IkT%q^Lpi@6J@XSGe%*?4dL-oiC~@&5VVX=Cq@01`j~NB{{S z0VIF~kN^@u0!RP}{Lu+4Y5=(Z|D(GB_8$o#0VIF~kN^@u0!RP}AOR$R1kO1D-2b0* zfw6l?00|%gB!C2v01`j~NB{{S0VIF~fB^pgKe_=DKmter2_OL^fCP{L5D%AOR$R1dsp{Kmter2_OL^fCP{Lp8ul{AOR$R1dsp{Kmter z2_OL^fCP{L5;*?^aQ}b)HO3wy0VIF~kN^@u0!RP}AOR$R1dsp{!2kb8A3y>~00|%g zB!C2v01`j~NB{{S0VHt#3E=tv`PUeGhy;)T5D9EfV1uMO@1hKdPxy$v4{mtMwB4?UFLDRZ>-Ga zbi2^+wRu1S+GRvUWPfkhsqd4c4irXI2R=|~Q*@amtw?lDi6Y|KWZ0<(&SqtAXS8FF z>)Vei^{3>a^OW4u0CI7MH*0lgd#kF`Z<%K0NZr|V>P~gT*(Gs95P zYn|+xLVN~}-#xwJQn6TCUtPQN*61wtc9aU`-9q6juS12^=Bm>>u(&9ciuQ+v;#y(F zF7Pf43^x+W3__P3^OnnlmMEB-zzJCpKS~Gl*<)u*dvF*rDPc6ngx=n#Td$R@qOkyL z;rH}(;2x9Bom!NZ&xRk3n4C0iw zRbXl(!`$PhTIlo|Ds$9tZB5~e$dw_533d8J2YRntrScsT@?+*3 zLvsZ#GPR1bRW7bh81$zbG)35l8MmW|_I^`I4~CcvKHY^Okls8a`B4V~8#$m5PnygW zU{c&cN_q)Ja*qUpw0tUKKQ&k6eyz51@(6HXppq9X(u0kZEZbCQM(;3jnu4S8A(>*w zVnmWUh%1Y^*9&v=*&8=9-@9h|PckGI^J5_(Nq&bQaQ2}3wiX?XwOTR`9O5V#nfWJ{ z16IMKiWXYjXR`36sn0SdmX4y&he?nL20J}ufz@X;f^==6L-=z8Ti=CrWE4zP6o+sK z4nsr2thPlS>~7ell~t?iY$gSnmBDZbOcbQ;iR3RCI43#iD;7^lCgtQI;4#^Zc&KO6 zbjLgHhPPo+pr~eIngcGVbV%YY&OFlCe&p;nDvusFo}J)`zrz|tFW*L8(kL&;;|O(`HDoWO(RdQP<7EnGNs@q)|^XM!kU3A{(_n5!KqXeVKyr}yG~Lz^*j&| z#zxo?N=PeU>PSR~Mr8BMrRo%YVd{mIu?|R35X3!Lg?B?!fEgI47jPB_IZg50rMc|A z?6gIyQO&i@&)loKnONyvqqI@Rd|en*+9VB>&gb=BgtQsV88G5K)4P=Y1na`eHyKlV z)$Pys2FODyB>+w~BC!y9I8935;?YUT9+#m{`;+=Kc+ZHGh({Cr%Tui^-Oq%jAr66tvJ2VNxxXkCDW_4E1-QeO2#mRBMVo3A{aZv}a&;5As#&iin{pn4w5`yzmo z2z|waJk59ea3pB9tipjyb^aHEh@^-B literal 0 HcmV?d00001