6f5c045284
Big restructuring and initial work on activitypub
102 lines
2.6 KiB
Go
102 lines
2.6 KiB
Go
/*
|
|
GoToSocial
|
|
Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package typeutils
|
|
|
|
import "github.com/go-fed/activity/streams/vocab"
|
|
|
|
// Accountable represents the minimum activitypub interface for representing an 'account'.
|
|
// This interface is fulfilled by: Person, Application, Organization, Service, and Group
|
|
type Accountable interface {
|
|
withJSONLDId
|
|
withGetTypeName
|
|
withPreferredUsername
|
|
withIcon
|
|
withDisplayName
|
|
withImage
|
|
withSummary
|
|
withDiscoverable
|
|
withURL
|
|
withPublicKey
|
|
withInbox
|
|
withOutbox
|
|
withFollowing
|
|
withFollowers
|
|
withFeatured
|
|
}
|
|
|
|
type withJSONLDId interface {
|
|
GetJSONLDId() vocab.JSONLDIdProperty
|
|
}
|
|
|
|
type withGetTypeName interface {
|
|
GetTypeName() string
|
|
}
|
|
|
|
type withPreferredUsername interface {
|
|
GetActivityStreamsPreferredUsername() vocab.ActivityStreamsPreferredUsernameProperty
|
|
}
|
|
|
|
type withIcon interface {
|
|
GetActivityStreamsIcon() vocab.ActivityStreamsIconProperty
|
|
}
|
|
|
|
type withDisplayName interface {
|
|
GetActivityStreamsName() vocab.ActivityStreamsNameProperty
|
|
}
|
|
|
|
type withImage interface {
|
|
GetActivityStreamsImage() vocab.ActivityStreamsImageProperty
|
|
}
|
|
|
|
type withSummary interface {
|
|
GetActivityStreamsSummary() vocab.ActivityStreamsSummaryProperty
|
|
}
|
|
|
|
type withDiscoverable interface {
|
|
GetTootDiscoverable() vocab.TootDiscoverableProperty
|
|
}
|
|
|
|
type withURL interface {
|
|
GetActivityStreamsUrl() vocab.ActivityStreamsUrlProperty
|
|
}
|
|
|
|
type withPublicKey interface {
|
|
GetW3IDSecurityV1PublicKey() vocab.W3IDSecurityV1PublicKeyProperty
|
|
}
|
|
|
|
type withInbox interface {
|
|
GetActivityStreamsInbox() vocab.ActivityStreamsInboxProperty
|
|
}
|
|
|
|
type withOutbox interface {
|
|
GetActivityStreamsOutbox() vocab.ActivityStreamsOutboxProperty
|
|
}
|
|
|
|
type withFollowing interface {
|
|
GetActivityStreamsFollowing() vocab.ActivityStreamsFollowingProperty
|
|
}
|
|
|
|
type withFollowers interface {
|
|
GetActivityStreamsFollowers() vocab.ActivityStreamsFollowersProperty
|
|
}
|
|
|
|
type withFeatured interface {
|
|
GetTootFeatured() vocab.TootFeaturedProperty
|
|
}
|