ApiUserModel.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Models;
  3. class ApiUserModel
  4. {
  5. private \PDO $pdo;
  6. private array $api_Key = [];
  7. public function __construct()
  8. {
  9. // Conecta ao DB usando variável do .env
  10. $dbFile = $_ENV['DB_FILE'];
  11. $dbPath = __DIR__ . '/../' . $dbFile;
  12. $this->pdo = new \PDO("sqlite:" . $dbPath);
  13. $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
  14. $this->loadApiKeys();
  15. }
  16. /**
  17. * Carrega as chaves API dos usuários ativos do banco de dados.
  18. */
  19. private function loadApiKeys(): void
  20. {
  21. try {
  22. $stmt = $this->pdo->query("SELECT user_id, user_name, api_key_user, api_key_secret FROM user NATURAL JOIN api_key WHERE user_flag = 'a'");
  23. $users = $stmt->fetchAll(\PDO::FETCH_ASSOC);
  24. foreach ($users as $user) {
  25. $this->api_Key[$user['user_name']] = [
  26. 'user_apikey' => $user['api_key_user'],
  27. 'user_apisecret' => $user['api_key_secret'],
  28. 'user_id' => $user['user_id']
  29. ];
  30. }
  31. } catch (\PDOException $e) {
  32. error_log("Erro ao carregar chaves API: " . $e->getMessage());
  33. }
  34. }
  35. /**
  36. * Retorna o array de chaves API carregadas.
  37. *
  38. * @return array
  39. */
  40. public function getApiKeys(): array
  41. {
  42. return $this->api_Key;
  43. }
  44. // Opcional: Método para recarregar as chaves se necessário
  45. public function reloadApiKeys(): void
  46. {
  47. $this->api_Key = [];
  48. $this->loadApiKeys();
  49. }
  50. }