Golint suggestions

This commit is contained in:
Marius Orcsik 2018-03-25 20:54:51 +02:00
parent d43c1e752f
commit 05c44839f3
No known key found for this signature in database
GPG key ID: C36D1EBE93A6EEAE
18 changed files with 137 additions and 13 deletions

View file

@ -227,147 +227,203 @@ type Question struct {
Closed bool `jsonld:"closed,omitempty"`
}
// AcceptNew initializes an Accept activity
func AcceptNew(id ObjectId, ob ObjectOrLink) *Accept {
a := ActivityNew(id, AcceptType, ob)
o := Accept(*a)
return &o
}
// AddNew initializes an Add activity
func AddNew(id ObjectId, ob ObjectOrLink) *Add {
a := ActivityNew(id, AddType, ob)
o := Add(*a)
return &o
}
// AnnounceNew initializes an Announce activity
func AnnounceNew(id ObjectId, ob ObjectOrLink) *Announce {
a := ActivityNew(id, AnnounceType, ob)
o := Announce(*a)
return &o
}
// ArriveNew initializes an Arrive activity
func ArriveNew(id ObjectId) *Arrive {
a := IntransitiveActivityNew(id, ArriveType)
o := Arrive(*a)
return &o
}
// BlockNew initializes a Block activity
func BlockNew(id ObjectId, ob ObjectOrLink) *Block {
a := ActivityNew(id, BlockType, ob)
o := Block(*a)
return &o
}
// CreateNew initializes a Create activity
func CreateNew(id ObjectId, ob ObjectOrLink) *Create {
a := ActivityNew(id, CreateType, ob)
o := Create(*a)
return &o
}
// DeleteNew initializes a Delete activity
func DeleteNew(id ObjectId, ob ObjectOrLink) *Delete {
a := ActivityNew(id, DeleteType, ob)
o := Delete(*a)
return &o
}
// DislikeNew initializes a Dislike activity
func DislikeNew(id ObjectId, ob ObjectOrLink) *Dislike {
a := ActivityNew(id, DislikeType, ob)
o := Dislike(*a)
return &o
}
// FlagNew initializes a Flag activity
func FlagNew(id ObjectId, ob ObjectOrLink) *Flag {
a := ActivityNew(id, FlagType, ob)
o := Flag(*a)
return &o
}
// FollowNew initializes a Follow activity
func FollowNew(id ObjectId, ob ObjectOrLink) *Follow {
a := ActivityNew(id, FollowType, ob)
o := Follow(*a)
return &o
}
// IgnoreNew initializes an Ignore activity
func IgnoreNew(id ObjectId, ob ObjectOrLink) *Ignore {
a := ActivityNew(id, IgnoreType, ob)
o := Ignore(*a)
return &o
}
// InviteNew initializes an Invite activity
func InviteNew(id ObjectId, ob ObjectOrLink) *Invite {
a := ActivityNew(id, InviteType, ob)
o := Invite(*a)
return &o
}
// JoinNew initializes a Join activity
func JoinNew(id ObjectId, ob ObjectOrLink) *Join {
a := ActivityNew(id, JoinType, ob)
o := Join(*a)
return &o
}
// LeaveNew initializes a Leave activity
func LeaveNew(id ObjectId, ob ObjectOrLink) *Leave {
a := ActivityNew(id, LeaveType, ob)
o := Leave(*a)
return &o
}
// LikeNew initializes a Like activity
func LikeNew(id ObjectId, ob ObjectOrLink) *Like {
a := ActivityNew(id, LikeType, ob)
o := Like(*a)
return &o
}
// ListenNew initializes a Listen activity
func ListenNew(id ObjectId, ob ObjectOrLink) *Listen {
a := ActivityNew(id, ListenType, ob)
o := Listen(*a)
return &o
}
// MoveNew initializes a Move activity
func MoveNew(id ObjectId, ob ObjectOrLink) *Move {
a := ActivityNew(id, MoveType, ob)
o := Move(*a)
return &o
}
// OfferNew initializes an Offer activity
func OfferNew(id ObjectId, ob ObjectOrLink) *Offer {
a := ActivityNew(id, OfferType, ob)
o := Offer(*a)
return &o
}
// RejectNew initializes a Reject activity
func RejectNew(id ObjectId, ob ObjectOrLink) *Reject {
a := ActivityNew(id, RejectType, ob)
o := Reject(*a)
return &o
}
// ReadNew initializes a Read activity
func ReadNew(id ObjectId, ob ObjectOrLink) *Read {
a := ActivityNew(id, ReadType, ob)
o := Read(*a)
return &o
}
// RemoveNew initializes a Remove activity
func RemoveNew(id ObjectId, ob ObjectOrLink) *Remove {
a := ActivityNew(id, RemoveType, ob)
o := Remove(*a)
return &o
}
// TentativeRejectNew initializes a TentativeReject activity
func TentativeRejectNew(id ObjectId, ob ObjectOrLink) *TentativeReject {
a := ActivityNew(id, TentativeRejectType, ob)
o := TentativeReject(*a)
return &o
}
// TentativeAcceptNew initializes a TentativeAccept activity
func TentativeAcceptNew(id ObjectId, ob ObjectOrLink) *TentativeAccept {
a := ActivityNew(id, TentativeAcceptType, ob)
o := TentativeAccept(*a)
return &o
}
// TravelNew initializes a Travel activity
func TravelNew(id ObjectId) *Travel {
a := IntransitiveActivityNew(id, TravelType)
o := Travel(*a)
return &o
}
// UndoNew initializes an Undo activity
func UndoNew(id ObjectId, ob ObjectOrLink) *Undo {
a := ActivityNew(id, UndoType, ob)
o := Undo(*a)
return &o
}
// UpdateNew initializes an Update activity
func UpdateNew(id ObjectId, ob ObjectOrLink) *Accept {
a := ActivityNew(id, UpdateType, ob)
o := Accept(*a)
return &o
}
// ViewNew initializes a View activity
func ViewNew(id ObjectId, ob ObjectOrLink) *View {
a := ActivityNew(id, ViewType, ob)
o := View(*a)
return &o
}
// QuestionNew initializes a Question activity
func QuestionNew(id ObjectId) *Question {
a := IntransitiveActivityNew(id, QuestionType)
o := Question{IntransitiveActivity: a}
return &o
}
// ValidActivityType is a validation function for Activity objects
func ValidActivityType(_type ActivityVocabularyType) bool {
for _, v := range validActivityTypes {
if v == _type {
@ -377,6 +433,7 @@ func ValidActivityType(_type ActivityVocabularyType) bool {
return false
}
// ActivityNew initializes a basic activity
func ActivityNew(id ObjectId, _type ActivityVocabularyType, ob ObjectOrLink) *Activity {
if !ValidActivityType(_type) {
_type = ActivityType
@ -390,6 +447,7 @@ func ActivityNew(id ObjectId, _type ActivityVocabularyType, ob ObjectOrLink) *Ac
return &a
}
// IntransitiveActivityNew initializes a intransitive activity
func IntransitiveActivityNew(id ObjectId, _type ActivityVocabularyType) *IntransitiveActivity {
if !ValidActivityType(_type) {
_type = IntransitiveActivityType

View file

@ -87,6 +87,7 @@ type (
Service Actor
)
// ValidActorType validates the passed type against the valid actor types
func ValidActorType(_type ActivityVocabularyType) bool {
for _, v := range validActorTypes {
if v == _type {
@ -96,6 +97,7 @@ func ValidActorType(_type ActivityVocabularyType) bool {
return false
}
// ActorNew initializes an Actor type actor
func ActorNew(id ObjectId, _type ActivityVocabularyType) *Actor {
if !ValidActorType(_type) {
_type = ActorType
@ -106,30 +108,35 @@ func ActorNew(id ObjectId, _type ActivityVocabularyType) *Actor {
return &a
}
// ApplicationNew initializes an Application type actor
func ApplicationNew(id ObjectId) *Application {
a := ActorNew(id, ApplicationType)
o := Application(*a)
return &o
}
// GroupNew initializes a Group type actor
func GroupNew(id ObjectId) *Group {
a := ActorNew(id, GroupType)
o := Group(*a)
return &o
}
// OrganizationNew initializes an Organization type actor
func OrganizationNew(id ObjectId) *Organization {
a := ActorNew(id, OrganizationType)
o := Organization(*a)
return &o
}
// PersonNew initializes a Person type actor
func PersonNew(id ObjectId) *Person {
a := ActorNew(id, PersonType)
o := Person(*a)
return &o
}
// ServiceNew initializes a Service type actor
func ServiceNew(id ObjectId) *Service {
a := ActorNew(id, ServiceType)
o := Service(*a)

View file

@ -2,8 +2,10 @@ package activitypub
var validCollectionTypes = [...]ActivityVocabularyType{CollectionType, OrderedCollectionType}
// Page
type Page ObjectOrLink
// Collection
type Collection struct {
*APObject
// A non-negative integer specifying the total number of objects contained by the logical view of the collection.
@ -13,6 +15,7 @@ type Collection struct {
Items ItemCollection `jsonld:"items,omitempty"`
}
// OrderedCollection
type OrderedCollection struct {
*APObject
// A non-negative integer specifying the total number of objects contained by the logical view of the collection.
@ -22,6 +25,7 @@ type OrderedCollection struct {
OrderedItems ItemCollection `jsonld:"orderedItems,omitempty"`
}
// CollectionPage
type CollectionPage struct {
PartOf *Collection
// In a paged Collection, indicates the page that contains the most recently updated member items.
@ -36,6 +40,7 @@ type CollectionPage struct {
Prev Page `jsonld:"prev,omitempty"`
}
// OrderedCollectionPage
type OrderedCollectionPage struct {
PartOf *OrderedCollection
// In a paged Collection, indicates the page that contains the most recently updated member items.
@ -52,6 +57,7 @@ type OrderedCollectionPage struct {
StartIndex uint `jsonld:"startIndex,omitempty"`
}
// ValidCollectionType validates against the valid collection types
func ValidCollectionType(_type ActivityVocabularyType) bool {
for _, v := range validCollectionTypes {
if v == _type {
@ -61,22 +67,26 @@ func ValidCollectionType(_type ActivityVocabularyType) bool {
return false
}
// CollectionNew initializes a new Collection
func CollectionNew(id ObjectId) *Collection {
o := ObjectNew(id, CollectionType)
return &Collection{APObject: o}
}
// CollectionNew initializes a new Collection
func OrderedCollectionNew(id ObjectId) *OrderedCollection {
o := ObjectNew(id, OrderedCollectionType)
return &OrderedCollection{APObject: o}
}
// CollectionNew initializes a new Collection
func CollectionPageNew(parent *Collection) *CollectionPage {
return &CollectionPage{PartOf: parent}
}
// CollectionNew initializes a new Collection
func OrderedCollectionPageNew(parent *OrderedCollection) *OrderedCollectionPage {
return &OrderedCollectionPage{PartOf: parent}
}

View file

@ -2,6 +2,7 @@ package activitypub
import "time"
// CreateActivity is the type for a create activity message
type CreateActivity struct {
Activity *Create
Published time.Time
@ -9,6 +10,7 @@ type CreateActivity struct {
CC *Actor
}
// CreateActivityNew initializes a new CreateActivity message
func CreateActivityNew(id ObjectId, o ObjectOrLink) *CreateActivity {
c := CreateActivity{
Activity: CreateNew(id, o),

View file

@ -1,7 +1,9 @@
package activitypub
type (
// FollowersCollection is a collection of followers
FollowersCollection Followers
// Followers is a Collection type
Followers Collection
)

View file

@ -1,7 +1,9 @@
package activitypub
type (
// FollowingCollection
FollowingCollection Following
// Following
Following Collection
)

View file

@ -1,7 +1,9 @@
package activitypub
type (
// InboxStream
InboxStream Inbox
// Inbox
Inbox OrderedCollection
)

View file

@ -1,6 +1,7 @@
package activitypub
// ItemCollection is an array of items
type ItemCollection []Item
type Item struct {
}
// Item struct
type Item struct{}

View file

@ -1,7 +1,9 @@
package activitypub
type (
// LikedCollection
LikedCollection Liked
// Liked
Liked OrderedCollection
)

View file

@ -1,7 +1,9 @@
package activitypub
type (
// LikesCollection
LikesCollection Likes
// Likes
Likes OrderedCollection
)

View file

@ -40,8 +40,10 @@ type Link struct {
HrefLang LangRef `jsonld:"hrefLang,omitempty"`
}
// Mention
type Mention Link
// ValidLinkType validates a type against the valid link types
func ValidLinkType(_type ActivityVocabularyType) bool {
for _, v := range validLinkTypes {
if v == _type {
@ -51,6 +53,7 @@ func ValidLinkType(_type ActivityVocabularyType) bool {
return false
}
// LinkNew initializes a new Link
func LinkNew(id ObjectId, _type ActivityVocabularyType) *Link {
if !ValidLinkType(_type) {
_type = LinkType
@ -58,22 +61,27 @@ func LinkNew(id ObjectId, _type ActivityVocabularyType) *Link {
return &Link{Id: id, Type: _type}
}
// MentionNew initializes a new Mention
func MentionNew(id ObjectId) *Mention {
return &Mention{Id: id, Type: MentionType}
}
// IsLink validates if current Link is a Link
func (l Link) IsLink() bool {
return l.Type == LinkType || ValidLinkType(l.Type)
}
// IsObject validates if current Link is an Object
func (l Link) IsObject() bool {
return l.Type == ObjectType || ValidObjectType(l.Type)
}
// IsLink validates if current Mention is a Link
func (l Mention) IsLink() bool {
return l.Type == MentionType || ValidLinkType(l.Type)
}
// IsObject validates if current Mention is an Object
func (l Mention) IsObject() bool {
return l.Type == ObjectType || ValidObjectType(l.Type)
}

View file

@ -5,9 +5,11 @@ import (
"time"
)
// ObjectId
type ObjectId string
const (
// ActivityBaseURI the basic URI for the activity streams namespaces
ActivityBaseURI URI = URI("https://www.w3.org/ns/activitystreams#")
ObjectType ActivityVocabularyType = "APObject"
LinkType ActivityVocabularyType = "Link"
@ -66,27 +68,38 @@ var validObjectTypes = [...]ActivityVocabularyType{
}
type (
// ActivityVocabularyType
ActivityVocabularyType string
ActivityObject interface{}
ObjectOrLink interface {
// ActivityObject
ActivityObject interface{}
// ObjectOrLink
ObjectOrLink interface {
IsLink() bool
IsObject() bool
}
LinkOrUri interface{}
ImageOrLink interface{}
MimeType string
LangRef string
// LinkOrUri
LinkOrUri interface{}
// ImageOrLink
ImageOrLink interface{}
// MimeType
MimeType string
// LangRef
LangRef string
// NaturalLanguageValue
NaturalLanguageValue map[LangRef]string
)
// IsLink validates if current APObject is a Link
func (o APObject) IsLink() bool {
return ValidLinkType(o.Type)
}
// IsObject validates if current APObject is an Object
func (o APObject) IsObject() bool {
return ValidObjectType(o.Type)
}
// MarshalJSON serializes the NaturalLanguageValue into JSON
func (n NaturalLanguageValue) MarshalJSON() ([]byte, error) {
if len(n) == 1 {
for _, v := range n {
@ -180,13 +193,16 @@ type APObject struct {
Duration time.Duration `jsonld:"duration,omitempty"`
}
// ContentType
type ContentType string
// Source
type Source struct {
Content ContentType
MediaType string
}
// ValidGenericType validates the type against the valid generic object types
func ValidGenericType(_type ActivityVocabularyType) bool {
for _, v := range validGenericObjectTypes {
if v == _type {
@ -196,6 +212,7 @@ func ValidGenericType(_type ActivityVocabularyType) bool {
return false
}
// ValidObjectType validates the type against the valid object types
func ValidObjectType(_type ActivityVocabularyType) bool {
for _, v := range validObjectTypes {
if v == _type {
@ -205,6 +222,7 @@ func ValidObjectType(_type ActivityVocabularyType) bool {
return ValidActivityType(_type) || ValidActorType(_type) || ValidCollectionType(_type) || ValidGenericType(_type)
}
// ObjectNew initializes a new Object
func ObjectNew(id ObjectId, _type ActivityVocabularyType) *APObject {
if !(ValidObjectType(_type)) {
_type = ObjectType

View file

@ -1,7 +1,9 @@
package activitypub
type (
// OutboxStream
OutboxStream Outbox
// Outbox
Outbox OrderedCollection
)

View file

@ -1,7 +1,9 @@
package activitypub
type (
// SharesCollection
SharesCollection Shares
// Shares
Shares OrderedCollection
)

View file

@ -1,7 +1,9 @@
package activitypub
type (
// IRI
IRI URI
// URI
URI string
)

View file

@ -6,26 +6,32 @@ import (
"activitypub"
)
// Ref basic type
type Ref string
// Context is the basic JSON-LD element. It is used to map terms to IRIs.
// Terms are case sensitive and any valid string that is not a reserved JSON-LD
// keyword can be used as a term.
type Context struct {
URL Ref `jsonld:"@url"`
Language activitypub.NaturalLanguageValue `jsonld:"@language,omitempty,collapsible"`
}
// Ref returns a new Ref object based on Context URL
func (c *Context) Ref() Ref {
return Ref(c.URL)
}
// MarshalText basic stringify function
func (r *Ref) MarshalText() ([]byte, error) {
return []byte(*r), nil
}
// MarshalJSON returns the JSON document represented by the current Context
func (c *Context) MarshalJSON() ([]byte, error) {
a := reflectToJSONValue(c)
if a.isScalar {
return json.Marshal(a.scalar)
} else {
return json.Marshal(a.object)
}
return json.Marshal(a.object)
}

View file

@ -183,8 +183,6 @@ func (p *payloadWithContext) MarshalJSON() ([]byte, error) {
return json.Marshal(a.object)
}
type Encoder struct{}
type jsonLdTag struct {
name string
ignore bool

View file

@ -96,7 +96,7 @@ func TestIsEmpty(t *testing.T) {
if !isEmptyValue(reflect.ValueOf(d)) {
t.Errorf("Invalid empty value %v", d)
}
var e *interface{} = nil
var e *interface{}
if !isEmptyValue(reflect.ValueOf(e)) {
t.Errorf("Invalid empty value %v", e)
}