coyotte508's picture
coyotte508 HF staff
✨ Products listing in admin
de10f77
raw
history blame
No virus
1.22 kB
import type { Picture } from '$lib/types/Picture';
import { client, collections } from '$lib/server/db';
import { error, redirect } from '@sveltejs/kit';
import type { PageServerLoad, Actions } from './$types';
export const load: PageServerLoad = async ({ params }) => {
const picture = await collections.pictures.findOne({ _id: params.id });
if (!picture) {
throw error(404, 'Photo non trouvée');
}
return {
photo: picture
};
};
export const actions: Actions = {
update: async function (input) {
const name = String((await input.request.formData()).get('name'));
await collections.pictures.updateOne(
{ _id: input.params.id },
{
$set: {
name,
updatedAt: new Date()
}
}
);
return {};
},
delete: async function ({ params }) {
let picture: Picture | null = null;
await client.withSession(async (session) => {
picture = (await collections.pictures.findOneAndDelete({ _id: params.id }, { session }))
.value;
await collections.picturesFs.deleteMany({ picture: params.id }, { session });
});
if (!picture) {
throw error(404);
}
throw redirect(
303,
picture?.productId ? '/admin/produits/' + picture.productId : '/admin/photos'
);
}
};