2018-10-11 09:26:00 +00:00
|
|
|
package activitystreams
|
2018-07-24 21:11:08 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
)
|
|
|
|
|
2018-10-04 18:33:32 +00:00
|
|
|
func getAPObjectByType(typ ActivityVocabularyType) (Item, error) {
|
|
|
|
var ret Item
|
2018-07-24 21:11:08 +00:00
|
|
|
var err error
|
|
|
|
|
|
|
|
switch typ {
|
|
|
|
case ObjectType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case LinkType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Link{}
|
|
|
|
o := ret.(*Link)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ActivityType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Activity{}
|
|
|
|
o := ret.(*Activity)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case IntransitiveActivityType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &IntransitiveActivity{}
|
|
|
|
o := ret.(*IntransitiveActivity)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ActorType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Actor{}
|
|
|
|
o := ret.(*Actor)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case CollectionType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Collection{}
|
|
|
|
o := ret.(*Collection)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case OrderedCollectionType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Link{}
|
|
|
|
o := ret.(*Link)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ArticleType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case AudioType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case DocumentType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case EventType:
|
|
|
|
o := Object{}
|
|
|
|
o.Type = typ
|
|
|
|
case ImageType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-08-05 11:53:29 +00:00
|
|
|
o := ret.(*Object)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case NoteType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case PageType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case PlaceType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case ProfileType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case RelationshipType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case TombstoneType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case VideoType:
|
2018-10-11 09:26:00 +00:00
|
|
|
ret = ObjectNew(typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
case MentionType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Mention{}
|
|
|
|
o := ret.(*Mention)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ApplicationType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Application{}
|
|
|
|
o := ret.(*Application)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case GroupType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Group{}
|
|
|
|
o := ret.(*Group)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case OrganizationType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Organization{}
|
|
|
|
o := ret.(*Organization)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case PersonType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Person{}
|
|
|
|
o := ret.(*Person)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ServiceType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Service{}
|
|
|
|
o := ret.(*Service)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case AcceptType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Accept{}
|
|
|
|
o := ret.(*Accept)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case AddType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Add{}
|
|
|
|
o := ret.(*Add)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case AnnounceType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Announce{}
|
|
|
|
o := ret.(*Announce)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ArriveType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Arrive{}
|
|
|
|
o := ret.(*Arrive)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case BlockType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Block{}
|
|
|
|
o := ret.(*Block)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case CreateType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Create{}
|
|
|
|
o := ret.(*Create)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case DeleteType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Delete{}
|
|
|
|
o := ret.(*Delete)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case DislikeType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Dislike{}
|
|
|
|
o := ret.(*Dislike)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case FlagType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Flag{}
|
|
|
|
o := ret.(*Flag)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case FollowType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Follow{}
|
|
|
|
o := ret.(*Follow)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case IgnoreType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Ignore{}
|
|
|
|
o := ret.(*Ignore)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case InviteType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Invite{}
|
|
|
|
o := ret.(*Invite)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case JoinType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Join{}
|
|
|
|
o := ret.(*Join)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case LeaveType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Leave{}
|
|
|
|
o := ret.(*Leave)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case LikeType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Like{}
|
|
|
|
o := ret.(*Like)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ListenType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Listen{}
|
|
|
|
o := ret.(*Listen)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case MoveType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Move{}
|
|
|
|
o := ret.(*Move)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case OfferType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Offer{}
|
|
|
|
o := ret.(*Offer)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case QuestionType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Question{}
|
|
|
|
o := ret.(*Question)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case RejectType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Reject{}
|
|
|
|
o := ret.(*Reject)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ReadType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Read{}
|
|
|
|
o := ret.(*Read)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case RemoveType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Remove{}
|
|
|
|
o := ret.(*Remove)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case TentativeRejectType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &TentativeReject{}
|
|
|
|
o := ret.(*TentativeReject)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case TentativeAcceptType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &TentativeAccept{}
|
|
|
|
o := ret.(*TentativeAccept)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case TravelType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Travel{}
|
|
|
|
o := ret.(*Travel)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case UndoType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Undo{}
|
|
|
|
o := ret.(*Undo)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case UpdateType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &Update{}
|
|
|
|
o := ret.(*Update)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
case ViewType:
|
2018-08-05 11:53:29 +00:00
|
|
|
ret = &View{}
|
|
|
|
o := ret.(*View)
|
2018-07-24 21:11:08 +00:00
|
|
|
o.Type = typ
|
|
|
|
default:
|
|
|
|
ret = nil
|
2018-08-05 11:53:29 +00:00
|
|
|
err = fmt.Errorf("unrecognized ActivityPub type %q", typ)
|
2018-07-24 21:11:08 +00:00
|
|
|
}
|
|
|
|
return ret, err
|
|
|
|
}
|