1
0
mirror of https://github.com/dstotijn/go-notion.git synced 2025-06-10 23:47:33 +02:00

Update status property type behavior (#40)

Ref: https://developers.notion.com/changelog/changes-for-august-15-28-2022
This commit is contained in:
David Stotijn 2022-09-03 21:52:15 +02:00 committed by GitHub
parent a543e3936b
commit e399b8957d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

View File

@ -37,6 +37,10 @@ type (
SelectMetadata struct {
Options []SelectOptions `json:"options"`
}
StatusMetadata struct {
Options []SelectOptions `json:"options"`
Groups []StatusGroup `json:"groups"`
}
FormulaMetadata struct {
Expression string `json:"expression"`
}
@ -92,6 +96,13 @@ type SelectOptions struct {
Color Color `json:"color,omitempty"`
}
type StatusGroup struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Color Color `json:"color,omitempty"`
OptionIDs []string `json:"option_ids,omitempty"`
}
type FormulaResult struct {
Type FormulaResultType `json:"type"`
@ -139,7 +150,6 @@ type DatabaseProperty struct {
URL *EmptyMetadata `json:"url,omitempty"`
Email *EmptyMetadata `json:"email,omitempty"`
PhoneNumber *EmptyMetadata `json:"phone_number,omitempty"`
Status *EmptyMetadata `json:"status,omitempty"`
CreatedTime *EmptyMetadata `json:"created_time,omitempty"`
CreatedBy *EmptyMetadata `json:"created_by,omitempty"`
LastEditedTime *EmptyMetadata `json:"last_edited_time,omitempty"`
@ -151,6 +161,7 @@ type DatabaseProperty struct {
Formula *FormulaMetadata `json:"formula,omitempty"`
Relation *RelationMetadata `json:"relation,omitempty"`
Rollup *RollupMetadata `json:"rollup,omitempty"`
Status *StatusMetadata `json:"status,omitempty"`
}
// DatabaseQuery is used for quering a database.
@ -195,6 +206,7 @@ type DatabaseQueryPropertyFilter struct {
Checkbox *CheckboxDatabaseQueryFilter `json:"checkbox,omitempty"`
Select *SelectDatabaseQueryFilter `json:"select,omitempty"`
MultiSelect *MultiSelectDatabaseQueryFilter `json:"multi_select,omitempty"`
Status *StatusDatabaseQueryFilter `json:"status,omitempty"`
People *PeopleDatabaseQueryFilter `json:"people,omitempty"`
Files *FilesDatabaseQueryFilter `json:"files,omitempty"`
Relation *RelationDatabaseQueryFilter `json:"relation,omitempty"`
@ -253,6 +265,13 @@ type MultiSelectDatabaseQueryFilter struct {
IsNotEmpty bool `json:"is_not_empty,omitempty"`
}
type StatusDatabaseQueryFilter struct {
Equals string `json:"equals,omitempty"`
DoesNotEqual string `json:"does_not_equal,omitempty"`
IsEmpty bool `json:"is_empty,omitempty"`
IsNotEmpty bool `json:"is_not_empty,omitempty"`
}
type DatePropertyFilter struct {
Equals *time.Time `json:"equals,omitempty"`
Before *time.Time `json:"before,omitempty"`
@ -343,6 +362,7 @@ const (
DBPropTypeURL DatabasePropertyType = "url"
DBPropTypeEmail DatabasePropertyType = "email"
DBPropTypePhoneNumber DatabasePropertyType = "phone_number"
DBPropTypeStatus DatabasePropertyType = "status"
DBPropTypeFormula DatabasePropertyType = "formula"
DBPropTypeRelation DatabasePropertyType = "relation"
DBPropTypeRollup DatabasePropertyType = "rollup"

View File

@ -169,6 +169,8 @@ func (prop DatabasePageProperty) Value() interface{} {
return prop.Email
case DBPropTypePhoneNumber:
return prop.PhoneNumber
case DBPropTypeStatus:
return prop.Status
case DBPropTypeFormula:
return prop.Formula
case DBPropTypeRelation: