Beispiel #1
0
 public function post_update($args)
 {
     if (!isset($_POST['status']) || empty($_POST['status'])) {
         throw new midcom_exception_httperror("Missing status message", 400);
     }
     $message = new net_nemein_avaudu_message();
     $message->text = $_POST['status'];
     if (isset($_POST['lang'])) {
         $message->language = $_POST['lang'];
     }
     if (isset($_POST['in_reply_to_status_id'])) {
         $parent = new net_nemein_avaudu_message($_POST['in_reply_to_status_id']);
         if (!$parent || !$parent->guid) {
             throw new midcom_exception_notfound("Status message {$_POST['in_reply_to_status_id']} not found");
         }
         $message->replyto = $parent->id;
     }
     $user_guid = $_MIDCOM->context->host->get_parameter('net_nemein_avaudu', 'user');
     if (!$user_guid) {
         throw new midcom_exception_notfound("No user found, check your settings");
     }
     $user = new net_nemein_avaudu_contact($user_guid);
     if (!$user->guid) {
         // Invalid user setting
         $user_guid = $_MIDCOM->context->host->set_parameter('net_nemein_avaudu', 'user', '');
         throw new midcom_exception_notfound("No user found, check your settings");
     }
     $message->user = $user->id;
     $message->metadata->published->modify('now');
     $message->source = 'Avaudu';
     $message->create();
     $this->data[] = net_nemein_avaudu_controllers_timeline::message2status($message);
 }
Beispiel #2
0
 public function action_stream_page($route_id, &$data, $args)
 {
     $qb = new midgard_query_builder('net_nemein_avaudu_message');
     $qb->set_limit((int) $this->configuration->get('messages_per_page'));
     $qb->set_offset((int) $args['page']);
     $qb->add_order('metadata.published', 'DESC');
     $messages = $qb->execute();
     $data['statuses'] = array();
     foreach ($messages as $message) {
         $data['statuses'][] = net_nemein_avaudu_controllers_timeline::message2status($message);
     }
     // TODO: New MidCOM does this way more gracefully
     header('Content-type: application/json');
     echo json_encode($data);
     die;
 }