* @param string $api_url The API endpoint to use for extraction * @param string $inline_title The

title to use in the HTML * @return string $html_output The formatted HTML result of stories from the API */ function get_stories($api_url, $inline_title) { $response_raw = file_get_contents($api_url); if (is_null($response_raw) || $response_raw == "null") { $html_output .= '

ERROR: Stories not found. API returned `null`.

'; return $html_output; } else { $response = json_decode($response_raw, true); } $html_output = '

' . $inline_title . '

'; for ($i = 0; $i < count($response); $i++) { $sub_url = 'https://hacker-news.firebaseio.com/v0/item/' . $response[$i] . '.json'; $sub_response_raw = file_get_contents($sub_url); $sub_response = json_decode($sub_response_raw, true); // TODO: Can this be converted to a heredoc string with variables? $html = '
' . $sub_response['title'] . ''; $html .= '

by '; $html .= $sub_response['by'] . ' | ' . $sub_response['score']; $html .= ' points

'; $html_output .= $html; } return $html_output; } /** *Extract a user's profile from Hacker News API and format in HTML * * @access public * @author cmc * @param string $api_url The API endpoint to use for extraction * @param string $inline_title The

title to use in the HTML * @return string $html_output The formatted HTML result of stories from the API */ function get_user(string $api_url, string $inline_title) { $response_raw = file_get_contents($api_url); if (is_null($response_raw) || $response_raw == "null") { $html_output .= '

ERROR: User not found.

'; return $html_output; } else { $response = json_decode($response_raw, true); } // TODO: Can this be converted to a heredoc string with variables? $html_output = '

' . $inline_title . '

'; $html_output .= '

About: ' . $response['about'] . '

'; $html_output .= '

Karma: ' . $response['karma'] . '

'; $html_output .= '

Created:

by '; $html .= $sub_response['by'] . ' | ' . $sub_response['score']; $html .= ' points

'; $html_output .= $html; } } else { $html_output .= '

User has no subsmissions.

'; } return $html_output; } /** * Send formatted HTML results to the user via a template * * @access public * @author cmc * @param string $page_url Canoncial URL for HTML header * @param string $page_description Page description for HTML header * @param string $page_title Page title for HTML header * @param string $page_content Page content to display in
*/ function echo_html(string $page_url, string $page_description, string $page_title, string $page_content) { include_once 'src/View/class-template.php'; $template = new HN\View\Template( $page_url, $page_description, $page_title, $page_content ); $template->echo_template(); } // EOF