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.'
|
'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,
|
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
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user