feat (patient): remove previously uploaded file when a new one is created

This commit is contained in:
dpurbosakti
2025-09-25 11:14:47 +07:00
parent f618a2d6d0
commit a9e380f957
3 changed files with 44 additions and 0 deletions

No files matched your search

@@ -397,19 +397,39 @@ func Upload(input e.UploadDto) (*d.Data, error) {
if err != nil {
event.Action = ""
}
fileUrl := ""
switch input.Code {
case ere.UCPRN:
if person.ResidentIdentityFileUrl != nil {
fileUrl = *person.ResidentIdentityFileUrl
}
person.ResidentIdentityFileUrl = &pubUrl
case ere.UCPDL:
if person.DrivingLicenseFileUrl != nil {
fileUrl = *person.DrivingLicenseFileUrl
}
person.DrivingLicenseFileUrl = &pubUrl
case ere.UCPP:
if person.PassportFileUrl != nil {
fileUrl = *person.PassportFileUrl
}
person.PassportFileUrl = &pubUrl
case ere.UCPFC:
if person.FamilyIdentityFileUrl != nil {
fileUrl = *person.FamilyIdentityFileUrl
}
person.FamilyIdentityFileUrl = &pubUrl
default:
return errors.New("invalid upload code")
}
if fileUrl != "" {
if err := removeUploadedFile(string(input.Code), fileUrl, &event); err != nil {
return err
}
}
if err := tx.Save(&person).Error; err != nil {
return err
}
@@ -119,3 +119,18 @@ func uploadAndGenerateFileUrl(input e.UploadDto, event *pl.Event) (string, error
pl.SetLogInfo(event, nil, "complete")
return publicUrl, nil
}
func removeUploadedFile(bucket, fileUrl string, event *pl.Event) error {
pl.SetLogInfo(event, nil, "started", "removeUploadedFile")
filename, err := pmh.GetFilename(fileUrl)
if err != nil {
return err
}
err = pmh.I.RemoveObject(bucket, filename)
if err != nil {
return err
}
pl.SetLogInfo(event, nil, "complete")
return nil
}