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); }
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; }