print "Resuming core schema upgrade...";
}
- function saveNew($profile, $event, $verb, $options=array())
+ function saveNew(Profile $profile, $event, $verb, array $options = array())
{
- if (array_key_exists('uri', $options)) {
- $other = RSVP::getKV('uri', $options['uri']);
- if (!empty($other)) {
- // TRANS: Client exception thrown when trying to save an already existing RSVP ("please respond").
- throw new ClientException(_m('RSVP already exists.'));
- }
+ $eventNotice = $event->getNotice();
+ $options = array_merge(array('source' => 'web'), $options);
+
+ $act = new Activity();
+ $act->type = ActivityObject::ACTIVITY;
+ $act->verb = $verb;
+ $act->time = $options['created'] ? strtotime($options['created']) : time();
+ $act->title = _m("RSVP");
+ $act->actor = $profile->asActivityObject();
+ $act->target = $eventNotice->asActivityObject();
+ $act->objects = array(clone($act->target));
+ $act->content = RSVP::toHTML($profile, $event, self::codeFor($verb));
+
+ $act->id = common_local_url('showrsvp', array('id' => UUID::gen()));
+ $act->link = $act->id;
+
+ $saved = Notice::saveActivity($act, $profile, $options);
+
+ return $saved;
+ }
+
+ function saveNewFromNotice($notice, $event, $verb)
+ {
+ $other = RSVP::getKV('uri', $notice->uri);
+ if (!empty($other)) {
+ // TRANS: Client exception thrown when trying to save an already existing RSVP ("please respond").
+ throw new ClientException(_m('RSVP already exists.'));
}
+ $profile = $notice->getProfile();
+
try {
$other = RSVP::getByKeys( [ 'profile_id' => $profile->getID(),
'event_uri' => $event->getUri(),