28 lines
1 KiB
Go
28 lines
1 KiB
Go
|
package activitypub
|
||
|
|
||
|
import "strings"
|
||
|
|
||
|
// ObjectID designates an unique global identifier.
|
||
|
// All Objects in [ActivityStreams] should have unique global identifiers.
|
||
|
// ActivityPub extends this requirement; all objects distributed by the ActivityPub protocol MUST
|
||
|
// have unique global identifiers, unless they are intentionally transient
|
||
|
// (short lived activities that are not intended to be able to be looked up,
|
||
|
// such as some kinds of chat messages or game notifications).
|
||
|
// These identifiers must fall into one of the following groups:
|
||
|
//
|
||
|
// 1. Publicly dereferenceable URIs, such as HTTPS URIs, with their authority belonging
|
||
|
// to that of their originating server. (Publicly facing content SHOULD use HTTPS URIs).
|
||
|
// 2. An ID explicitly specified as the JSON null object, which implies an anonymous object
|
||
|
// (a part of its parent context)
|
||
|
type ObjectID IRI
|
||
|
|
||
|
// UnmarshalJSON
|
||
|
func (i *ObjectID) UnmarshalJSON(data []byte) error {
|
||
|
*i = ObjectID(strings.Trim(string(data), "\""))
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (i *ObjectID) IsValid() bool {
|
||
|
return i != nil && len(*i) > 0
|
||
|
}
|