bug: no-conflict on file upload name + add db category and creation_date for file + parse in upload file
continuous-integration/drone/push Build is passing Details

pull/3/head
remrem 1 year ago
parent 44291fb221
commit 5e20780cf4

@ -35,6 +35,8 @@ class DatabaseInit {
id UUID PRIMARY KEY,
user_id UUID REFERENCES `user`(`id`) ON DELETE CASCADE,
filename VARCHAR(100) DEFAULT CURDATE(),
category VARCHAR(50),
creation_date DATETIME,
import_date DATE);';
$this->con->executeQuery($query);

@ -16,12 +16,14 @@ class FileGateway {
}
}
public function createFile(string $filename, string $user_uuid) {
$query = "INSERT INTO file VALUES(UUID(), :user_uuid, :filename, CURDATE());";
public function createFile(string $filename, string $user_uuid, string $category, string $creation_date) {
$query = "INSERT INTO file VALUES(UUID(), :user_uuid, :filename, :category, :creation_date ,CURDATE());";
try {
$this->con->executeQuery($query, array(
':user_uuid' => array($user_uuid, PDO::PARAM_STR),
':filename' => array($filename, PDO::PARAM_STR),
':user_uuid' => array($user_uuid, PDO::PARAM_STR)
':category' => array($category, PDO::PARAM_STR),
':creation_date' => array($creation_date, PDO::PARAM_STR)
));
} catch (PDOException $e) {
return -1;
@ -61,7 +63,7 @@ class FileGateway {
}
public function listFiles(string $user_uuid) {
$query = "SELECT f.id, f.filename FROM file f, user u WHERE f.user_id=u.id and u.id=:user_uuid;";
$query = "SELECT f.id, f.filename, f.category, f.creation_date FROM file f, user u WHERE f.user_id=u.id and u.id=:user_uuid;";
try {
$this->con->executeQuery($query, array(
':user_uuid' => array($user_uuid, PDO::PARAM_STR)
@ -76,9 +78,11 @@ class FileGateway {
$rows[] = [
'uuid' => $row['id'],
'filename' => $row['filename'],
'category' => $row['category'],
'creation_date' => $row['creation_date']
];
}
return $rows;
}
}
}

@ -6,8 +6,6 @@ use PDOException;
use PDO;
use Config\Token;
use function PHPUnit\Framework\isEmpty;
class UserGateway {
private Connection $con;
private Token $token;
@ -113,4 +111,4 @@ class UserGateway {
return 0;
}
}
}

@ -225,9 +225,12 @@ return function (App $app) {
$uuid = (new Token)->getUuidFromToken($token);
$file = $req->getUploadedFiles()['file'];
$category = $req->getParsedBody()['SmartFit_Category'];
$creation_date = $req->getParsedBody()['SmartFit_Date'];
$filename = $file->getClientFilename();
$code = (new FileGateway)->listFiles($uuid);
if(in_array($filename, $code, false)) return $res->withStatus(409);
if(array_search($filename, array_column($code, 'filename'), false) !== false) return $res->withStatus(409);
$file_save_folder = $save_folder.'/'.$uuid.'/';
if(!is_dir($file_save_folder)) {
@ -235,8 +238,9 @@ return function (App $app) {
}
$file->moveTo($file_save_folder.'/'.$filename);
$code = (new FileGateway)->createFile($filename, $uuid);
$code = (new FileGateway)->createFile($filename, $uuid, $category, $creation_date);
if($code === -1) return $res->withStatus(500);
return $res->withStatus(200);
});

Loading…
Cancel
Save