Skip to content

User object not being marshalled properly when trying to update a user in the People type DatabasePageProperty #54

@mikimichaeli

Description

@mikimichaeli

Hi, great client!

When trying to update a People column in a database page (row), it seems that the User object is not being marshalled to the proper JSON object per the api.

Example usage of updating a page:

user := notion.User{BaseUser:  notion.BaseUser{ID: "<user-id>"}}
newPageProperties := notion.DatabasePageProperties{}
newPageProperties["Contributors"] = notion.DatabasePageProperty{People: []notion.User{user}}
res, err := n.Client.UpdatePage(ctx, "<page-id>", notion.UpdatePageParams{
		DatabasePageProperties: *newPageProperties,
})
if err != nil {
    fmt.Println(err)
}

The output error shows:

notion: failed to update page properties: body failed validation. Fix one:
body.properties.Contributors.people[0].type should be not present, instead was `""`.
body.properties.Contributors.people[0].name should be not present, instead was `""`.
body.properties.Contributors.people[0].avatar_url should be not present, instead was `""`.
body.properties.Contributors.people[0].person should be not present or an object, instead was `null`.
body.properties.Contributors.people[0].bot should be not present or an object, instead was `null`. (code: validation_error, status: 400)

from looking at the source code, I suspect the problem might be that the struct don't have an omitempty tag on their respective JSON representation. I'm happy to contribute an MR if needed

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