Add more support for Item be an ItemCollection at the same time
This commit is contained in:
parent
7b9328863c
commit
495abe28e0
3 changed files with 28 additions and 14 deletions
26
activity.go
26
activity.go
|
@ -858,23 +858,23 @@ func ToIntransitiveActivity(it Item) (*IntransitiveActivity, error) {
|
|||
|
||||
// FlattenIntransitiveActivityProperties flattens the IntransitiveActivity's properties from Object type to IRI
|
||||
func FlattenIntransitiveActivityProperties(act *IntransitiveActivity) *IntransitiveActivity {
|
||||
act.Actor = FlattenToIRI(act.Actor)
|
||||
act.Target = FlattenToIRI(act.Target)
|
||||
act.Result = FlattenToIRI(act.Result)
|
||||
act.Origin = FlattenToIRI(act.Origin)
|
||||
act.Result = FlattenToIRI(act.Result)
|
||||
act.Instrument = FlattenToIRI(act.Instrument)
|
||||
act.Actor = Flatten(act.Actor)
|
||||
act.Target = Flatten(act.Target)
|
||||
act.Result = Flatten(act.Result)
|
||||
act.Origin = Flatten(act.Origin)
|
||||
act.Result = Flatten(act.Result)
|
||||
act.Instrument = Flatten(act.Instrument)
|
||||
return act
|
||||
}
|
||||
|
||||
// FlattenActivityProperties flattens the Activity's properties from Object type to IRI
|
||||
func FlattenActivityProperties(act *Activity) *Activity {
|
||||
act.Object = FlattenToIRI(act.Object)
|
||||
act.Actor = FlattenToIRI(act.Actor)
|
||||
act.Target = FlattenToIRI(act.Target)
|
||||
act.Result = FlattenToIRI(act.Result)
|
||||
act.Origin = FlattenToIRI(act.Origin)
|
||||
act.Result = FlattenToIRI(act.Result)
|
||||
act.Instrument = FlattenToIRI(act.Instrument)
|
||||
act.Object = Flatten(act.Object)
|
||||
act.Actor = Flatten(act.Actor)
|
||||
act.Target = Flatten(act.Target)
|
||||
act.Result = Flatten(act.Result)
|
||||
act.Origin = Flatten(act.Origin)
|
||||
act.Result = Flatten(act.Result)
|
||||
act.Instrument = Flatten(act.Instrument)
|
||||
return act
|
||||
}
|
||||
|
|
|
@ -340,6 +340,20 @@ func (o *OrderedCollectionPage) Collection() ItemCollection {
|
|||
func (o OrderedCollectionPage) IsCollection() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// Flatten checks if Item can be flatten to an IRI or array of IRIs and returns it if so
|
||||
func Flatten(it Item) Item {
|
||||
if it.IsCollection() {
|
||||
if c, ok := it.(CollectionInterface); ok {
|
||||
it = FlattenItemCollection(c.Collection())
|
||||
}
|
||||
}
|
||||
if it != nil && len(it.GetLink()) > 0 {
|
||||
return it.GetLink()
|
||||
}
|
||||
return it
|
||||
}
|
||||
|
||||
// FlattenItemCollection flattens the Collection's properties from Object type to IRI
|
||||
func FlattenItemCollection(c ItemCollection) ItemCollection {
|
||||
if c != nil && len(c) > 0 {
|
||||
|
|
|
@ -801,7 +801,7 @@ func FlattenObjectProperties(o *Object) *Object {
|
|||
o.Replies = IRI(fmt.Sprintf("%s/replies", o.GetLink()))
|
||||
}
|
||||
}
|
||||
o.AttributedTo = FlattenToIRI(o.AttributedTo)
|
||||
o.AttributedTo = Flatten(o.AttributedTo)
|
||||
o.To = FlattenItemCollection(o.To)
|
||||
o.Bto = FlattenItemCollection(o.Bto)
|
||||
o.CC = FlattenItemCollection(o.CC)
|
||||
|
|
Reference in a new issue