This commit is contained in:
Felix Ableitner 2024-03-26 14:58:48 +01:00
parent 25e83c466e
commit 160d558dd9
3 changed files with 6 additions and 13 deletions

View file

@ -11,7 +11,7 @@ killall -s1 lemmy_server || true
popd popd
pnpm i pnpm i
pnpm api-test-user || true pnpm api-test || true
killall -s1 lemmy_server || true killall -s1 lemmy_server || true
killall -s1 pict-rs || true killall -s1 pict-rs || true

View file

@ -141,7 +141,7 @@ test("Create user with Arabic name", async () => {
expect(alphaPerson).toBeDefined(); expect(alphaPerson).toBeDefined();
}); });
test.only("Set a new avatar, old avatar is deleted", async () => { test("Set a new avatar, old avatar is deleted", async () => {
const listMediaRes = await alphaImage.listMedia(); const listMediaRes = await alphaImage.listMedia();
expect(listMediaRes.images.length).toBe(0); expect(listMediaRes.images.length).toBe(0);
const upload_form1: UploadImage = { const upload_form1: UploadImage = {
@ -149,15 +149,13 @@ test.only("Set a new avatar, old avatar is deleted", async () => {
}; };
const upload1 = await alphaImage.uploadImage(upload_form1); const upload1 = await alphaImage.uploadImage(upload_form1);
expect(upload1.url).toBeDefined(); expect(upload1.url).toBeDefined();
console.log(upload1);
let form1 = { let form1 = {
avatar: upload1.url avatar: upload1.url,
}; };
await saveUserSettings(alpha, form1); await saveUserSettings(alpha, form1);
const listMediaRes1 = await alphaImage.listMedia(); const listMediaRes1 = await alphaImage.listMedia();
expect(listMediaRes1.images.length).toBe(1); expect(listMediaRes1.images.length).toBe(1);
console.log(listMediaRes1);
const upload_form2: UploadImage = { const upload_form2: UploadImage = {
image: Buffer.from("test2"), image: Buffer.from("test2"),
@ -166,7 +164,7 @@ test.only("Set a new avatar, old avatar is deleted", async () => {
expect(upload2.url).toBeDefined(); expect(upload2.url).toBeDefined();
let form2 = { let form2 = {
avatar: upload1.url avatar: upload1.url,
}; };
await saveUserSettings(alpha, form2); await saveUserSettings(alpha, form2);
// make sure only the new avatar is kept // make sure only the new avatar is kept

View file

@ -14,8 +14,6 @@ use diesel::{
QueryDsl, QueryDsl,
}; };
use diesel_async::RunQueryDsl; use diesel_async::RunQueryDsl;
use once_cell::sync::Lazy;
use regex::Regex;
use url::Url; use url::Url;
impl LocalImage { impl LocalImage {
@ -85,10 +83,7 @@ impl LocalImage {
pub async fn delete_by_url(pool: &mut DbPool<'_>, url: &DbUrl) -> Result<Self, Error> { pub async fn delete_by_url(pool: &mut DbPool<'_>, url: &DbUrl) -> Result<Self, Error> {
let conn = &mut get_conn(pool).await?; let conn = &mut get_conn(pool).await?;
static IMAGE_REGEX: Lazy<Regex> = let alias = url.as_str().split('/').last().ok_or(NotFound)?;
Lazy::new(|| Regex::new(r"^.*/pictrs/image/([a-z0-9-]+\.[a-z]+)$").expect("compile regex"));
let captures = IMAGE_REGEX.captures(url.as_str()).unwrap();
let alias = &captures[1];
diesel::delete(local_image::table.filter(local_image::pictrs_alias.eq(alias))) diesel::delete(local_image::table.filter(local_image::pictrs_alias.eq(alias)))
.get_result(conn) .get_result(conn)
.await .await