OpenXE/classes/Modules/DownloadSpooler/DownloadSpoolerGateway.php

89 lines
2.0 KiB
PHP
Raw Normal View History

2021-05-21 08:49:41 +02:00
<?php
namespace Xentral\Modules\DownloadSpooler;
use Xentral\Components\Database\Database;
final class DownloadSpoolerGateway
{
/** @var Database $db */
private $db;
/**
* @param Database $db
*/
public function __construct(Database $db)
{
$this->db = $db;
}
/**
* @param int $userId
* @param int|null $printerId
*
* @return array
*/
public function getUnprintedFileIdsByUser($userId, $printerId = null)
{
$select = $this->db
->select()
->cols(['d.id'])
->from('drucker_spooler AS d')
->where('d.gedruckt = ?', 0)
->where('d.user = ?', (int)$userId);
if ($printerId !== null) {
$select->where('d.drucker = ?', (int)$printerId);
}
return $this->db->fetchCol(
$select->getStatement(),
$select->getBindValues()
);
}
/**
* @param int $userId
* @param int|null $printerId
*
* @return int
*/
public function getUnprintedFilesCountByUser($userId, $printerId = null)
{
$select = $this->db
->select()
->cols(['COUNT(d.id)'])
->from('drucker_spooler AS d')
->where('d.gedruckt = ?', 0)
->where('d.user = ?', (int)$userId);
if ($printerId !== null) {
$select->where('d.drucker = ?', (int)$printerId);
}
return (int)$this->db->fetchValue(
$select->getStatement(),
$select->getBindValues()
);
}
/**
* @param int $printerId
*
* @return string|null
*/
public function getPrinterNameById($printerId)
{
$select = $this->db
->select()
->cols(['d.name'])
->from('drucker AS d')
->where('d.id = ?', (int)$printerId);
return $this->db->fetchValue(
$select->getStatement(),
$select->getBindValues()
);
}
}