src/Relecloud.Web.CallCenter/Controllers/ImageController.cs (32 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All Rights Reserved. // Licensed under the MIT License. using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Relecloud.Web.CallCenter.Services; namespace Relecloud.Web.CallCenter.Controllers; [Route("webapi/[controller]")] [ApiController] public class ImageController : ControllerBase { private ITicketImageService ticketImageService; private ILogger<ImageController> logger; public ImageController(ITicketImageService ticketImageService, ILogger<ImageController> logger) { this.ticketImageService = ticketImageService; this.logger = logger; } [HttpGet("{imageName}")] [Authorize] public async Task<IActionResult> GetTicketImage(string imageName) { try { var imageStream = await this.ticketImageService.GetTicketImagesAsync(imageName); return File(imageStream, "application/octet-stream"); } catch (Exception ex) { logger.LogError(ex, $"Unable to retrive image: {imageName}"); return Problem("Unable to get the image"); } } }