Documentation
¶
Overview ¶
Package metadata is used for manipulating the cozyMetadata field of the documents.
Index ¶
Constants ¶
const MetadataVersion = 1
MetadataVersion represents the CozyMetadata version used.
Variables ¶
var ErrSlugEmpty = errors.New("Slug cannot be empty")
ErrSlugEmpty is returned when an UpdatedByApp entry is created with and empty slug
Functions ¶
This section is empty.
Types ¶
type CozyMetadata ¶
type CozyMetadata struct {
// Name or identifier for the version of the schema used by this document
DocTypeVersion string `json:"doctypeVersion"`
// Version of the cozyMetadata
MetadataVersion int `json:"metadataVersion"`
// Tell if the document if part of the favorites
Favorite bool `json:"favorite,omitempty"`
// Creation date of the cozy document
CreatedAt time.Time `json:"createdAt"`
// Slug of the app or konnector which created the document
CreatedByApp string `json:"createdByApp,omitempty"`
// Version identifier of the app
CreatedByAppVersion string `json:"createdByAppVersion,omitempty"`
// Last modification date of the cozy document
UpdatedAt time.Time `json:"updatedAt"`
// List of objects representing the applications which modified the cozy document
UpdatedByApps []*UpdatedByAppEntry `json:"updatedByApps,omitempty"`
// Identifier of the account in io.cozy.accounts (for konnectors)
SourceAccount string `json:"sourceAccount,omitempty"`
// Identifier unique to the account targeted by the connector (login most of the time)
SourceIdentifier string `json:"sourceAccountIdentifier,omitempty"`
}
CozyMetadata holds all the metadata of a document
func NewWithApp ¶
func NewWithApp(slug, version, doctypeVersion string) (*CozyMetadata, error)
NewWithApp initializes a CozyMetadata with a slug and a version Version is optional
func (*CozyMetadata) ChangeUpdatedAt ¶
func (cm *CozyMetadata) ChangeUpdatedAt()
ChangeUpdatedAt updates the UpdatedAt timestamp
func (*CozyMetadata) Clone ¶
func (cm *CozyMetadata) Clone() *CozyMetadata
Clone clones a CozyMetadata struct
func (*CozyMetadata) EnsureCreatedFields ¶
func (cm *CozyMetadata) EnsureCreatedFields(defaultMetadata *CozyMetadata)
EnsureCreatedFields ensures that empty fields are filled, otherwise use the default metadata values during the creation process
func (*CozyMetadata) UpdatedByApp ¶
func (cm *CozyMetadata) UpdatedByApp(slug, version string) error
UpdatedByApp updates an entry either by updating the struct if the slug/version already exists or by appending a new entry to the list
type UpdatedByAppEntry ¶
type UpdatedByAppEntry struct {
Slug string `json:"slug"` // Slug of the app
Date time.Time `json:"date"` // Date of the update
Version string `json:"version,omitempty"` // Version identifier of the app
Instance string `json:"instance,omitempty"` // URL of the instance
}
UpdatedByAppEntry represents a modification made by an application to the document