Open GoDUsopp2005 opened 6 months ago
Do elaborate which section or function you need and help us understand which is it in specific is the issue: Though I get you have issues with the "updatePost" here is mine; and compare it:
export async function updatePost(post: IUpdatePost) {
const hasFileToUpdate = post.file.length > 0;
try {
let image = {
imageUrl: post.imageUrl,
imageId: post.imageId,
};
if (hasFileToUpdate) {
// Upload new file to appwrite storage
const uploadedFile = await uploadFile(post.file[0]);
if (!uploadedFile) throw Error;
// Get new file url
const fileUrl = getFilePreview(uploadedFile.$id);
console.log({ fileUrl})
if (!fileUrl) {
deleteFile(uploadedFile.$id);
throw Error;
}
image = { ...image, imageUrl: fileUrl, imageId: uploadedFile.$id };
}
// Convert tags into array
const tags = post.tags?.replace(/ /g,"").split(",") || [];
// Update post
const updatedPost = await databases.updateDocument(
appwriteConfig.databaseId,
appwriteConfig.postCollectionId,
post.postId,
{
caption: post.caption,
imageUrl: image.imageUrl,
imageId: image.imageId,
location: post.location,
tags: tags,
}
);
if(!updatedPost) {
await deleteFile(post.imageId);
throw Error;
}
/*
// Failed to update
if (!updatedPost) {
// Delete new file that has been recently uploaded
if (hasFileToUpdate) {
await deleteFile(image.imageId);
}
// If no new file uploaded, just throw error
throw Error;
}
// Safely delete old file after successful update
if (hasFileToUpdate) {
await deleteFile(post.imageId);
}
*/
return updatedPost;
} catch (error) {
console.log(error);
}
}