download-icon
INPUT VARIABLES
{
wpDomain
}
your-domain.com
{
wpApikey
}
Get your key from WP backend > User > Profile > Add New Application Password
{
wpUsername
}
Your usual WP login username
{
wpPostId
}
The ID of the post you want to delete
{
}
{
}
share-icon
OUTPUT VARIABLES
{
}
{
}
{
}
{
}
{
}
{
}
paths-icon
PATHS
{
success
}
Success
{
Error
}
{
}
{
}
{
}
{
}

Function Walkthrough

Function Code Snippet

 
export default async function main(args) {

    // Destructuring to get postId from input variables
    const { wpDomain, wpUsername, wpApikey, wpPostId } = args.inputVars;  

    // Custom function to encode a string to Base64
    function base64Encode(str) {
        const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        let encoded = '', i = 0;

        while (i < str.length) {
            const a = str.charCodeAt(i++);
            const b = i < str.length ? str.charCodeAt(i++) : 0;
            const c = i < str.length ? str.charCodeAt(i++) : 0;

            const b1 = (a >> 2) & 0x3F;
            const b2 = ((a & 0x03) << 4) | ((b >> 4) & 0x0F);
            const b3 = ((b & 0x0F) << 2) | ((c >> 6) & 0x03);
            const b4 = c & 0x3F;

            if (!i) {
                encoded += chars.charAt(b1) + chars.charAt(b2) + '==';
            } else if (i == str.length + 1) {
                encoded += chars.charAt(b1) + chars.charAt(b2) + chars.charAt(b3) + '=';
            } else {
                encoded += chars.charAt(b1) + chars.charAt(b2) + chars.charAt(b3) + chars.charAt(b4);
            }
        }

        return encoded;
    }

    const base64Credentials = base64Encode(`${wpUsername}:${wpApikey}`);
    const apiUrl = `https://${wpDomain}/wp-json/wp/v2/posts/${wpPostId}`;  // Append postId to the URL

    // Fetch API data with Basic Authentication to delete the post
    try {
        const response = await fetch(apiUrl, {
            method: 'DELETE',
            headers: {
                "Authorization": `Basic ${base64Credentials}`
            }
        });

        // Check if the response was ok (status 200)
        if (response.ok) {
            return {
                next: {
                    path: 'success'
                },
                trace: [
                    {
                        type: 'debug',
                        payload: {
                            message: `Post deleted successfully`
                        }
                    }
                ],
            };
        } else {
            const errorResponse = await response.json
            console.log('HTTP Error Status:', response.status);
            console.log('Error Response:', errorResponse);
            throw new Error('Failed to delete post');
        }
    } catch (error) {
        console.log('Error:', error);
        return {
            next: {
                path: 'error'
            },
            trace: [
                {
                    type: 'debug',
                    payload: {
                        message: `Error deleting post: ${error}`
                    }
                }
            ],
        };
    }
}
copy-icon

Have something to share?

Share your creation with over 250,000 other global Voiceflow users.

ghraphic
No items found.