Skip to content

module '"node-appwrite"' has no exported member 'inputfile'. #13

Description

@iharshitjaiswal

'use server'

import { ID } from "node-appwrite";
import { createAdminClient } from "@/lib/appwrite"
import { appwriteConfig } from "../appwrite/config";
import { constructFileUrl, getFileType, parseStringify } from "../utils";
import { revalidatePath } from "next/cache";
import {InputFile} from "node-appwrite/dist/inputFile"

const handleError = (error: unknown, message: string) => {
console.log(error, message);
throw error;
};

export const uploadFile = async({file,ownerId,accountId,path}:UploadFileProps)=>{
const {storage,databases} = await createAdminClient();

try {
    const inputFile = InputFile.fromBuffer(file,file.name);

    const bucketFile = await storage.createFile(appwriteConfig.bucketId,ID.unique(),inputFile)
    
    const fileDocument = {
        type: getFileType(bucketFile.name).type,
        name:bucketFile.name,
         url:constructFileUrl(bucketFile.$id),
        extension: getFileType(bucketFile.name).extension,
        size:bucketFile.sizeOriginal,
        owner:ownerId,
        accountId,
        users:[],
        bucketFileId:bucketFile.$id,
    }

    const newFile = await databases.createDocument(
        appwriteConfig.databaseId,
        appwriteConfig.filesCollectionId,
        ID.unique(),
        fileDocument,
        )
        .catch(async(error:unknown)=>{
            await storage.deleteFile(appwriteConfig.bucketId,bucketFile.$id);
            handleError(error,"Failsed to create file document");
        });

    revalidatePath(path);
    return parseStringify(newFile);

} catch (error) {
    handleError(error,"Failed to upload file");
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions