1
0
mirror of https://github.com/dstotijn/go-notion.git synced 2025-06-15 00:05:04 +02:00

Add support for audio block type (#48)

Closes #47
This commit is contained in:
David Stotijn
2022-11-18 19:55:59 +01:00
committed by GitHub
parent de8cab86ca
commit 87a7d4c3cd
2 changed files with 34 additions and 0 deletions

View File

@ -46,6 +46,7 @@ type blockDTO struct {
Code *CodeBlock `json:"code,omitempty"`
Embed *EmbedBlock `json:"embed,omitempty"`
Image *ImageBlock `json:"image,omitempty"`
Audio *AudioBlock `json:"audio,omitempty"`
Video *VideoBlock `json:"video,omitempty"`
File *FileBlock `json:"file,omitempty"`
PDF *PDFBlock `json:"pdf,omitempty"`
@ -460,6 +461,29 @@ func (b ImageBlock) MarshalJSON() ([]byte, error) {
})
}
type AudioBlock struct {
baseBlock
Type FileType `json:"type"`
File *FileFile `json:"file,omitempty"`
External *FileExternal `json:"external,omitempty"`
Caption []RichText `json:"caption,omitempty"`
}
// MarshalJSON implements json.Marshaler.
func (b AudioBlock) MarshalJSON() ([]byte, error) {
type (
blockAlias ImageBlock
dto struct {
Audio blockAlias `json:"audio"`
}
)
return json.Marshal(dto{
Audio: blockAlias(b),
})
}
type VideoBlock struct {
baseBlock
@ -806,6 +830,7 @@ const (
BlockTypeCode BlockType = "code"
BlockTypeEmbed BlockType = "embed"
BlockTypeImage BlockType = "image"
BlockTypeAudio BlockType = "audio"
BlockTypeVideo BlockType = "video"
BlockTypeFile BlockType = "file"
BlockTypePDF BlockType = "pdf"
@ -937,6 +962,9 @@ func (dto blockDTO) Block() Block {
case BlockTypeImage:
dto.Image.baseBlock = baseBlock
return dto.Image
case BlockTypeAudio:
dto.Audio.baseBlock = baseBlock
return dto.Audio
case BlockTypeVideo:
dto.Video.baseBlock = baseBlock
return dto.Video

View File

@ -189,6 +189,12 @@ func main() {
URL: "https://picsum.photos/600/200.jpg",
},
},
notion.AudioBlock{
Type: notion.FileTypeExternal,
External: &notion.FileExternal{
URL: "https://download.samplelib.com/mp3/sample-3s.mp3",
},
},
notion.VideoBlock{
Type: notion.FileTypeExternal,
External: &notion.FileExternal{