Encountered error while updating pages in a database with Notion API

Viewed 888

I recently made an integration between Todoist and Notion. The main idea is that every time I do something with a task on Todoist, the changes are reflected on Notion. I'm encountering a problem with the notion.pages.update() function: every time I modify a task, it returns this error: body failed validation. Fix one: body.properties.body.id should be defined, instead was undefined. body.properties.body.name should be defined, instead was undefined. body.properties.body.start should be defined, instead was undefined. I don't even have a body property in my database.

Here's my update function, keep in mind that this is a function inside a module I made:

    my.updateTask = async function(notion_page_id, name, todoist_project_id, do_date, priority, in_discord) {
        var req_body = {
            page_id: notion_page_id,
            properties: {
                Name: {
                    type: "title",
                    title: [
                        {
                            type: "rich_text",
                            rich_text: {
                                content: name
                            }
                        }
                    ],
                },
                Project: {
                    type: "relation",
                    relation: [
                        {
                            database_id: my.getProject("todoist_id", todoist_project_id).notion_id
                        }
                    ]
                },
                Priority: {
                    number: priority
                },
                isOnDiscord: {
                    checkbox: in_discord
                }
            }
        }
        if(typeof do_date !== 'undefined' && do_date !== null) {
            start_dt = new Date(do_date.date);
            end_dt = new Date(do_date.date);
            end_dt.setHours(end_dt.getHours() + 24);
            req_body.properties.DoDate = {
                date: {
                    start: start_dt.toISOString().replace(/Z$/, '+02:00'),
                    end: end_dt.toISOString().replace(/Z$/, '+02:00')
                }
            }
        }
        const response = await my.api.pages.update(req_body);
        return response !== {};
    }

Any help is highly appreciated!

2 Answers

I solved it, the problem was actually in another function (the getProject function)

Related