Remove evidence file deletion and guard missing file

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-10-08 17:49:09 +02:00
parent b7b684ecbc
commit 39ed524f4f
3 changed files with 11 additions and 29 deletions

View File

@@ -212,7 +212,7 @@ function EvidenceRow(props: {
__( __(
'This will permanently delete the evidence "%s". This action cannot be undone.' 'This will permanently delete the evidence "%s". This action cannot be undone.'
), ),
evidence.file?.fileName evidence.file?.fileName || __("Link evidence")
), ),
} }
); );

View File

@@ -418,14 +418,13 @@ func (e Evidence) Delete(
ctx context.Context, ctx context.Context,
conn pg.Conn, conn pg.Conn,
scope Scoper, scope Scoper,
) (*string, error) { ) error {
q := ` q := `
DELETE FROM DELETE FROM
evidences evidences
WHERE WHERE
%s %s
AND id = @evidence_id AND id = @evidence_id
RETURNING evidence_file_id;
` `
q = fmt.Sprintf(q, scope.SQLFragment()) q = fmt.Sprintf(q, scope.SQLFragment())
@@ -437,19 +436,8 @@ RETURNING evidence_file_id;
err := conn.QueryRow(ctx, q, args).Scan(&evidenceFileId) err := conn.QueryRow(ctx, q, args).Scan(&evidenceFileId)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to delete evidence: %w", err) return fmt.Errorf("failed to delete evidence: %w", err)
} }
if evidenceFileId != nil { return nil
var err error
var fileKey *string
file := &File{ID: *evidenceFileId}
if fileKey, err = file.HardDelete(ctx, conn, scope); err != nil {
return nil, fmt.Errorf("failed to hard delete evidence file: %w", err)
}
return fileKey, nil
}
return nil, err
} }

View File

@@ -93,6 +93,10 @@ func (s EvidenceService) UploadMeasureEvidence(
var file *coredata.File var file *coredata.File
var err error var err error
if err := measure.LoadByID(ctx, conn, s.svc.scope, req.MeasureID); err != nil {
return fmt.Errorf("cannot load measure %q: %w", req.MeasureID, err)
}
file, err = s.svc.Files.UploadAndSaveFile( file, err = s.svc.Files.UploadAndSaveFile(
ctx, ctx,
s.fileValidator, s.fileValidator,
@@ -108,11 +112,6 @@ func (s EvidenceService) UploadMeasureEvidence(
} }
evidence.EvidenceFileId = &file.ID evidence.EvidenceFileId = &file.ID
if err := measure.LoadByID(ctx, conn, s.svc.scope, req.MeasureID); err != nil {
return fmt.Errorf("cannot load measure %q: %w", req.MeasureID, err)
}
evidence.MeasureID = req.MeasureID evidence.MeasureID = req.MeasureID
if err := evidence.Insert(ctx, conn, s.svc.scope); err != nil { if err := evidence.Insert(ctx, conn, s.svc.scope); err != nil {
@@ -243,18 +242,13 @@ func (s *EvidenceService) Delete(
) error { ) error {
evidence := &coredata.Evidence{ID: evidenceID} evidence := &coredata.Evidence{ID: evidenceID}
return s.svc.pg.WithTx( return s.svc.pg.WithConn(
ctx, ctx,
func(conn pg.Conn) error { func(conn pg.Conn) error {
var fileKey *string err := evidence.Delete(ctx, conn, s.svc.scope)
var err error if err != nil {
if fileKey, err = evidence.Delete(ctx, conn, s.svc.scope); err != nil {
return fmt.Errorf("cannot delete evidence: %w", err) return fmt.Errorf("cannot delete evidence: %w", err)
} }
if err = s.svc.Files.DeleteFileFromS3(ctx, *fileKey); err != nil {
return err
}
return nil return nil
}, },