44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package owl
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type WebmentionIn struct {
|
|
Source string `yaml:"source"`
|
|
Title string `yaml:"title"`
|
|
ApprovalStatus string `yaml:"approval_status"`
|
|
RetrievedAt time.Time `yaml:"retrieved_at"`
|
|
}
|
|
|
|
func (webmention *WebmentionIn) UpdateWith(update WebmentionIn) {
|
|
if update.Title != "" {
|
|
webmention.Title = update.Title
|
|
}
|
|
if update.ApprovalStatus != "" {
|
|
webmention.ApprovalStatus = update.ApprovalStatus
|
|
}
|
|
if !update.RetrievedAt.IsZero() {
|
|
webmention.RetrievedAt = update.RetrievedAt
|
|
}
|
|
}
|
|
|
|
type WebmentionOut struct {
|
|
Target string `yaml:"target"`
|
|
Supported bool `yaml:"supported"`
|
|
ScannedAt time.Time `yaml:"scanned_at"`
|
|
LastSentAt time.Time `yaml:"last_sent_at"`
|
|
}
|
|
|
|
func (webmention *WebmentionOut) UpdateWith(update WebmentionOut) {
|
|
if update.Supported {
|
|
webmention.Supported = update.Supported
|
|
}
|
|
if !update.ScannedAt.IsZero() {
|
|
webmention.ScannedAt = update.ScannedAt
|
|
}
|
|
if !update.LastSentAt.IsZero() {
|
|
webmention.LastSentAt = update.LastSentAt
|
|
}
|
|
}
|