Remove evidence file deletion and guard missing file
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -212,7 +212,7 @@ function EvidenceRow(props: {
|
||||
__(
|
||||
'This will permanently delete the evidence "%s". This action cannot be undone.'
|
||||
),
|
||||
evidence.file?.fileName
|
||||
evidence.file?.fileName || __("Link evidence")
|
||||
),
|
||||
}
|
||||
);
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user