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

@@ -418,14 +418,13 @@ func (e Evidence) Delete(
ctx context.Context,
conn pg.Conn,
scope Scoper,
) (*string, error) {
) error {
q := `
DELETE FROM
evidences
WHERE
%s
AND id = @evidence_id
RETURNING evidence_file_id;
`
q = fmt.Sprintf(q, scope.SQLFragment())
@@ -437,19 +436,8 @@ RETURNING evidence_file_id;
err := conn.QueryRow(ctx, q, args).Scan(&evidenceFileId)
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 {
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
return nil
}

View File

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