<?php

namespace AirQuality;

/**
 * Automates the sending of API responses.
 */
class ApiResponseSender
{
	/**
	 * Creates a new ApiResponseSender.
	 */
	function __construct() {
		
	}
	
	/**
	 * Sends a plain-text error message.
	 * @param	int		$code			The HTTP status code to send.
	 * @param	string	$message		The plain-text message to send.
	 * @param	array	$extra_headers	Any extra headers to return, in the format [["header", "value"], ["header", "value"], .....]
	 * @return	void
	 */
	public function send_error_plain($code, $message, $extra_headers = []) {
		http_response_code($code);
		header("content-type: text/plain");
		header("content-length: " . strlen($message)); // strlen isn't multibyte-safe, so it'll give us the actual length of the string in bytes, not characters - which is precisely what we want here :D
		foreach($extra_headers as $header)
			header("{$header[0]}: {$header[1]}");
		
		echo($message);
	}
}