go-notion
go-notion copied to clipboard
User object not being marshalled properly when trying to update a user in the People type DatabasePageProperty
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
@dstotijn would appreciate your review 🙏🏼