Skip to content
Snippets Groups Projects
Verified Commit 69d90db8 authored by Damien's avatar Damien
Browse files

FEAT #12346 TIME 0:45 Modify constraint + Thumbnail

parent e72ad75b
No related branches found
No related tags found
No related merge requests found
...@@ -473,6 +473,8 @@ ALTER TABLE adr_letterbox DROP COLUMN IF EXISTS relation; ...@@ -473,6 +473,8 @@ ALTER TABLE adr_letterbox DROP COLUMN IF EXISTS relation;
ALTER TABLE adr_letterbox ADD COLUMN relation integer; ALTER TABLE adr_letterbox ADD COLUMN relation integer;
UPDATE adr_letterbox SET relation = 1; UPDATE adr_letterbox SET relation = 1;
ALTER TABLE adr_letterbox ALTER COLUMN relation SET NOT NULL; ALTER TABLE adr_letterbox ALTER COLUMN relation SET NOT NULL;
ALTER TABLE adr_letterbox DROP CONSTRAINT adr_letterbox_unique_key;
ALTER TABLE adr_letterbox ADD CONSTRAINT adr_letterbox_unique_key UNIQUE (res_id, type, relation);
ALTER TABLE res_letterbox DROP COLUMN IF EXISTS integrations; ALTER TABLE res_letterbox DROP COLUMN IF EXISTS integrations;
ALTER TABLE res_letterbox ADD COLUMN integrations jsonb DEFAULT '{}' NOT NULL; ALTER TABLE res_letterbox ADD COLUMN integrations jsonb DEFAULT '{}' NOT NULL;
......
...@@ -985,7 +985,7 @@ CREATE TABLE adr_letterbox ...@@ -985,7 +985,7 @@ CREATE TABLE adr_letterbox
filename character varying(255) NOT NULL, filename character varying(255) NOT NULL,
fingerprint character varying(255) DEFAULT NULL, fingerprint character varying(255) DEFAULT NULL,
CONSTRAINT adr_letterbox_pkey PRIMARY KEY (id), CONSTRAINT adr_letterbox_pkey PRIMARY KEY (id),
CONSTRAINT adr_letterbox_unique_key UNIQUE (res_id, type) CONSTRAINT adr_letterbox_unique_key UNIQUE (res_id, type, relation)
) )
WITH (OIDS=FALSE); WITH (OIDS=FALSE);
......
...@@ -63,28 +63,7 @@ class AdrModel ...@@ -63,28 +63,7 @@ class AdrModel
return $document[0]; return $document[0];
} }
public static function getTypedDocumentAdrByResId(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['resId', 'type']);
ValidatorModel::intVal($aArgs, ['resId']);
ValidatorModel::stringType($aArgs, ['type']);
ValidatorModel::arrayType($aArgs, ['select']);
$adr = DatabaseModel::select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['adr_letterbox'],
'where' => ['res_id = ?', 'type = ?'],
'data' => [$aArgs['resId'], $aArgs['type']]
]);
if (empty($adr[0])) {
return [];
}
return $adr[0];
}
public static function getTypedAttachAdrByResId(array $aArgs) public static function getTypedAttachAdrByResId(array $aArgs)
{ {
ValidatorModel::notEmpty($aArgs, ['resId', 'type']); ValidatorModel::notEmpty($aArgs, ['resId', 'type']);
...@@ -148,20 +127,6 @@ class AdrModel ...@@ -148,20 +127,6 @@ class AdrModel
return true; return true;
} }
public static function deleteDocumentAdr(array $args)
{
ValidatorModel::notEmpty($args, ['where', 'data']);
ValidatorModel::arrayType($args, ['where', 'data']);
DatabaseModel::delete([
'table' => 'adr_letterbox',
'where' => $args['where'],
'data' => $args['data']
]);
return true;
}
public static function deleteAttachmentAdr(array $args) public static function deleteAttachmentAdr(array $args)
{ {
ValidatorModel::notEmpty($args, ['where', 'data']); ValidatorModel::notEmpty($args, ['where', 'data']);
......
...@@ -577,41 +577,37 @@ class ResController ...@@ -577,41 +577,37 @@ class ResController
return $response->withHeader('Content-Type', $mimeType); return $response->withHeader('Content-Type', $mimeType);
} }
public function getThumbnailContent(Request $request, Response $response, array $aArgs) public function getThumbnailContent(Request $request, Response $response, array $args)
{ {
if (!Validator::intVal()->validate($aArgs['resId'])) { if (!Validator::intVal()->validate($args['resId'])) {
return $response->withStatus(403)->withJson(['errors' => 'resId param is not an integer']); return $response->withStatus(403)->withJson(['errors' => 'resId param is not an integer']);
} }
$pathToThumbnail = 'apps/maarch_entreprise/img/noThumbnail.png'; $pathToThumbnail = 'apps/maarch_entreprise/img/noThumbnail.png';
$document = ResModel::getById(['select' => ['filename'], 'resId' => $aArgs['resId']]); $document = ResModel::getById(['select' => ['filename'], 'resId' => $args['resId']]);
if (empty($document)) { if (empty($document)) {
return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']); return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']);
} }
if (!empty($document['filename']) && ResController::hasRightByResId(['resId' => [$aArgs['resId']], 'userId' => $GLOBALS['id']])) { if (!empty($document['filename']) && ResController::hasRightByResId(['resId' => [$args['resId']], 'userId' => $GLOBALS['id']])) {
$tnlAdr = AdrModel::getTypedDocumentAdrByResId([ $relation = AdrModel::getDocuments(['select' => ['MAX(relation)'], 'where' => ['res_id = ?'], 'data' => [$args['resId']]]);
'select' => ['docserver_id', 'path', 'filename'], $relation = $relation[0]['max'];
'resId' => $aArgs['resId'],
'type' => 'TNL' $tnlAdr = AdrModel::getDocuments(['select' => ['docserver_id', 'path', 'filename'], 'where' => ['res_id = ?', 'type = ?', 'relation = ?'], 'data' => [$args['resId'], 'TNL', $relation]]);
]);
if (empty($tnlAdr)) { if (empty($tnlAdr[0])) {
ConvertThumbnailController::convert(['collId' => 'letterbox_coll', 'resId' => $aArgs['resId']]); ConvertThumbnailController::convert(['collId' => 'letterbox_coll', 'resId' => $args['resId']]);
$tnlAdr = AdrModel::getTypedDocumentAdrByResId([ $tnlAdr = AdrModel::getDocuments(['select' => ['docserver_id', 'path', 'filename'], 'where' => ['res_id = ?', 'type = ?', 'relation = ?'], 'data' => [$args['resId'], 'TNL', $relation]]);
'select' => ['docserver_id', 'path', 'filename'],
'resId' => $aArgs['resId'],
'type' => 'TNL'
]);
} }
if (!empty($tnlAdr)) { if (!empty($tnlAdr[0])) {
$docserver = DocserverModel::getByDocserverId(['docserverId' => $tnlAdr['docserver_id'], 'select' => ['path_template']]); $docserver = DocserverModel::getByDocserverId(['docserverId' => $tnlAdr[0]['docserver_id'], 'select' => ['path_template']]);
if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) { if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']); return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']);
} }
$pathToThumbnail = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $tnlAdr['path']) . $tnlAdr['filename']; $pathToThumbnail = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $tnlAdr[0]['path']) . $tnlAdr[0]['filename'];
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment