<?php

namespace HwapX\Api\Controller;

class ApiAuth extends Api {
    public function __construct($f3) {
        $db       = $f3->get('db');
        $settings = new \DB\SQL\Mapper($db, 'hwapx_setting');

        $settings->load(array("id='api.username'"));
        $username = $settings->value;
        $settings->load(array("id='api.password'"));
        $password = $settings->value;

        $us = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : null;
        $pw = isset($_SERVER['PHP_AUTH_PW'])   ? $_SERVER['PHP_AUTH_PW']   : null;

        $logger = new \Log(date('Y-m-d').'_api.log');

        if ($us !== $username || $pw !== $password) {
            $logger->write('Falha na autenticação com o usuário "'.$us.'"');
            header('WWW-Authenticate: Basic realm="api"');
            $f3->error(401);
        } else {
            $logger->write('Usuário "'.$us.'"" autenticado com sucesso.');
        }
    }
}
