diff --git a/CoviDok/BLL/Storage/StorageHandler.cs b/CoviDok/BLL/Storage/StorageHandler.cs index 4bc051c..2c55f8d 100644 --- a/CoviDok/BLL/Storage/StorageHandler.cs +++ b/CoviDok/BLL/Storage/StorageHandler.cs @@ -41,7 +41,12 @@ namespace CoviDok.BLL.Storage public async Task GetImage(string bucketName, string ImageId, Action callback) { - await storageProvider.Download(bucketName, ImageId, callback); + if (await storageProvider.ObjectExists(bucketName, ImageId)) + { + await storageProvider.Download(bucketName, ImageId, callback); + } + else throw new KeyNotFoundException(); + } public async Task ImageExists(string bucketName, string ImageId) diff --git a/CoviDok/Controllers/ImagesController.cs b/CoviDok/Controllers/ImagesController.cs index 8f70d57..0d8eb7b 100644 --- a/CoviDok/Controllers/ImagesController.cs +++ b/CoviDok/Controllers/ImagesController.cs @@ -67,15 +67,22 @@ namespace CoviDok.Controllers response.Body["reason"] = "unauthorized"; return response; } - - string res = null; ; - await MinioHandler.GetImage(BucketName, imageGet.ImageId, (stream) => { - StreamReader reader = new StreamReader(stream); - res = reader.ReadToEnd(); - }); - - response.Body["image"] = res; - return response; + try { + string res = null; + await MinioHandler.GetImage(BucketName, imageGet.ImageId, (stream) => { + StreamReader reader = new StreamReader(stream); + res = reader.ReadToEnd(); + }); + + response.Body["image"] = res; + return response; + } + catch (KeyNotFoundException) + { + response.Status = Status.Error; + response.Body["reason"] = "Image not found!"; + return response; + } } } }