Browse Source

Adds `asObject` function.

The spec says that an Activity may be used as on Object.  This adds a function
that just does a type cast to support that.
Jesse Hallett 9 years ago
parent
commit
742d34df87
1 changed files with 7 additions and 0 deletions
  1. 7 0
      Codec/ActivityStream/Dynamic.hs

+ 7 - 0
Codec/ActivityStream/Dynamic.hs

@@ -57,6 +57,7 @@ module Codec.ActivityStream.Dynamic
        , acVerb
        , acRest
        , makeActivity
+       , asObject
          -- * Collection
        , Collection
        , cTotalItems
@@ -231,6 +232,12 @@ makeActivity actor published = Activity
   $ HM.insert "published" (toJSON published)
   $ HM.empty
 
+-- | JSON Activity Streams 1.0 specificies that an @Activity@ may be used as an
+--   @Object@. In such a case, the object may have fields permitted on either an
+--   @Activity@ or an @Object@
+asObject :: Activity -> Object
+asObject act = Object (fromActivity act)
+
 -- | Collection
 
 data Collection = Collection { fromCollection :: A.Object } deriving (Eq, Show)