Updated booking logic to include completed bookings in cancellation handling. Added `isFileInStore` to improve file existence checks in the wash certificate store. Adjusted file server logic to use the new method for enhanced clarity and maintenance.
54 lines
1.4 KiB
PHP
54 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace classes;
|
|
|
|
use interfaces\minio_wash_certificates_i;
|
|
use traits\minio_t;
|
|
|
|
class wash_certificate_store implements minio_wash_certificates_i
|
|
{
|
|
use minio_t;
|
|
|
|
public function __construct()
|
|
{
|
|
self::setBucket('truckwashdev'); // Change this to washcertificates when in production
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function washCertificateExists(string $certificate_id): bool
|
|
{
|
|
// Check if the file exists
|
|
$objects = self::getS3Client()->listObjects([
|
|
'Bucket' => self::getBucket(),
|
|
'Prefix' => 'wash_certificate_' . $certificate_id . '.pdf'
|
|
]);
|
|
return count($objects['Contents'] ?? []) > 0;
|
|
}
|
|
|
|
public function getWashCertificateDownload(int $id): string
|
|
{
|
|
return self::getPresignedUrl('wash_certificate_' . $id . '.pdf');
|
|
}
|
|
|
|
/**
|
|
* @param string $file
|
|
* @return string The path to the downloaded file
|
|
*/
|
|
public function download(string $file): string
|
|
{
|
|
$path = '/tmp/' . $file;
|
|
$result = self::getS3Client()->getObject([
|
|
'Bucket' => self::getBucket(),
|
|
'Key' => $file,
|
|
'SaveAs' => $path
|
|
]);
|
|
return $path;
|
|
}
|
|
|
|
public function isFileInStore(string $file): bool
|
|
{
|
|
return self::getS3Client()->doesObjectExist(self::getBucket(), $file);
|
|
}
|
|
} |