mirror of
https://github.com/dstotijn/go-notion.git
synced 2024-12-10 10:40:09 +02:00
a0926892c2
* Add support for Page's Icon retrieval and updates * Add support for creating a page with an icon * Fix tests, add icon validation * Remove unknown icon type `file` * Add icon support for "create database" endpoint Co-authored-by: David Stotijn <dstotijn@gmail.com>
39 lines
791 B
Go
39 lines
791 B
Go
package notion
|
|
|
|
import "errors"
|
|
|
|
type IconType string
|
|
|
|
const (
|
|
IconTypeEmoji IconType = "emoji"
|
|
IconTypeExternal IconType = "external"
|
|
)
|
|
|
|
// Icon has one non-nil Emoji or External field, denoted by the corresponding
|
|
// IconType.
|
|
type Icon struct {
|
|
Type IconType `json:"type"`
|
|
|
|
Emoji *string `json:"emoji,omitempty"`
|
|
External *IconExternal `json:"external,omitempty"`
|
|
}
|
|
|
|
type IconExternal struct {
|
|
URL string `json:"url"`
|
|
}
|
|
|
|
func (icon Icon) Validate() error {
|
|
if icon.Type == "" {
|
|
return errors.New("icon type cannot be empty")
|
|
}
|
|
|
|
if icon.Type == IconTypeEmoji && icon.Emoji == nil {
|
|
return errors.New("icon emoji cannot be empty")
|
|
}
|
|
if icon.Type == IconTypeExternal && icon.External == nil {
|
|
return errors.New("icon external cannot be empty")
|
|
}
|
|
|
|
return nil
|
|
}
|