- $happeningObj = $activity->objects[0];
-
- switch ($activity->verb) {
- case RSVP::POSITIVE:
- case RSVP::NEGATIVE:
- case RSVP::POSSIBLE:
- $happening = Happening::getKV('uri', $happeningObj->id);
- if (empty($happening)) {
- // FIXME: save the event
- // TRANS: Exception thrown when trying to RSVP for an unknown event.
- throw new Exception(_m('RSVP for unknown event.'));
- }
- $object = RSVP::saveNewFromNotice($stored, $happening, $activity->verb);
- // Our data model expects this
- $stored->object_type = $activity->verb;
- return $object;
+ return $verb;
+ }
+
+ protected function doActionPreparation(ManagedAction $action, $verb, Notice $target, Profile $scoped)
+ {
+ return true;
+ }
+
+ protected function doActionPost(ManagedAction $action, $verb, Notice $target, Profile $scoped)
+ {
+ throw new ServerException('Event does not handle doActionPost yet', 501);
+ }
+
+ protected function getActivityForm(ManagedAction $action, $verb, Notice $target, Profile $scoped)
+ {
+ return new RSVPForm(Happening::fromStored($target), $action);
+ }
+
+ protected function saveObjectFromActivity(Activity $act, Notice $stored, array $options=array())
+ {
+ switch (true) {
+ case ActivityUtils::compareVerbs($stored->getVerb(), [ActivityVerb::POST]):
+ return Happening::saveActivityObject($act, $stored);
+ break;
+
+ case ActivityUtils::compareVerbs($stored->getVerb(), [RSVP::POSITIVE, RSVP::NEGATIVE, RSVP::POSSIBLE]):
+ return RSVP::saveActivityObject($act, $stored);