Updating
This commit is contained in:
+10
-1
@@ -63,6 +63,15 @@ public class DirectFileOperationsController : ControllerBase
|
||||
return await HandleRequestResponse(request, FileOperationType.WriteFile, _writeFileService);
|
||||
}
|
||||
|
||||
[HttpPost("WriteBinaryFile")]
|
||||
[ProducesResponseType(200)]
|
||||
[ProducesResponseType(typeof(ReturnResponse), 400)]
|
||||
[ProducesResponseType(500)]
|
||||
public async Task<IActionResult> WriteBinaryFile([FromBody] WriteFileRequest request)
|
||||
{
|
||||
return await HandleRequestResponse(request, FileOperationType.WriteFile, _writeFileService);
|
||||
}
|
||||
|
||||
[HttpPost("CreateDirectory")]
|
||||
[ProducesResponseType(200)]
|
||||
[ProducesResponseType(typeof(ReturnResponse), 400)]
|
||||
@@ -143,4 +152,4 @@ public class DirectFileOperationsController : ControllerBase
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-1
@@ -243,6 +243,16 @@ public class FileOperationsController : ControllerBase
|
||||
return await HandleRequestResponse(request, FileOperationType.WriteFile, _writeFileDataService);
|
||||
}
|
||||
|
||||
// POST api/WriteBinaryFileData
|
||||
[HttpPost("WriteBinaryFileData")]
|
||||
[ProducesResponseType(201)]
|
||||
[ProducesResponseType(typeof(List<string>), 400)]
|
||||
[ProducesResponseType(500)]
|
||||
public async Task<IActionResult> WriteBinaryFileData([FromBody] WriteFileRequest request)
|
||||
{
|
||||
return await HandleRequestResponse(request, FileOperationType.WriteFile, _writeFileDataService);
|
||||
}
|
||||
|
||||
[HttpPost("DeleteDirectory")]
|
||||
[ProducesResponseType(201)]
|
||||
[ProducesResponseType(typeof(List<string>), 400)]
|
||||
@@ -289,4 +299,4 @@ public class FileOperationsController : ControllerBase
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,4 +224,4 @@ void AddMassTransitServices(ref IServiceCollection services,
|
||||
});
|
||||
});
|
||||
services.AddMassTransitHostedService();
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -44,6 +44,13 @@ namespace LCU.Api.Internal.FileOperations.Services.FileActionServices
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.Equals(request.Extension?.TrimStart('.'), "wav", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var fileBytes = Convert.FromBase64String(request.FileData);
|
||||
File.WriteAllBytes(request.FullFilePath, fileBytes);
|
||||
return;
|
||||
}
|
||||
|
||||
File.WriteAllText(request.FullFilePath, request.FileData);
|
||||
}
|
||||
catch (Exception exception)
|
||||
|
||||
@@ -119,4 +119,4 @@
|
||||
"ReceiveEndpointType": "exchange",
|
||||
"PrefetchLimit": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+29
-1
@@ -46,6 +46,34 @@ public class DirectFileOperationsControllerTest
|
||||
_mockAppendFileService.Object);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task WriteBinaryFilePost_Ok()
|
||||
{
|
||||
var request = new WriteFileRequest
|
||||
{
|
||||
FileData = Convert.ToBase64String(new byte[] { 0x52, 0x49, 0x46, 0x46 }),
|
||||
DestinationPath = "SomePath",
|
||||
Extension = ".wav",
|
||||
FileName = "FileName"
|
||||
};
|
||||
|
||||
var validRequestResponse = new RequestResponse() { MessageStack = new List<string>(), IsSuccessful = true };
|
||||
_mockWriteFileService.Setup(service => service.PreQueueValidation(It.IsAny<WriteFileRequest>())).Returns(validRequestResponse);
|
||||
_mockDirectFileOperationsService.Setup(service =>
|
||||
service.HandleDirectFileOperationsRequest(It.IsAny<WriteFileRequest>(), FileOperationType.WriteFile))
|
||||
.ReturnsAsync(validRequestResponse)
|
||||
.Verifiable();
|
||||
|
||||
var result = await _controller.WriteBinaryFile(request);
|
||||
var okResult = result as OkObjectResult;
|
||||
|
||||
Assert.NotNull(okResult);
|
||||
Assert.Equal(200, okResult.StatusCode);
|
||||
_mockWriteFileService.Verify(service => service.PreQueueValidation(It.IsAny<WriteFileRequest>()), Times.Once);
|
||||
_mockDirectFileOperationsService.Verify(service =>
|
||||
service.HandleDirectFileOperationsRequest(It.IsAny<WriteFileRequest>(), FileOperationType.WriteFile), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task MoveFilePost_OK()
|
||||
{
|
||||
@@ -240,4 +268,4 @@ public class DirectFileOperationsControllerTest
|
||||
_mockDirectFileOperationsService.Verify(service =>
|
||||
service.HandleDirectFileOperationsRequest(It.IsAny<AppendFileRequest>(), FileOperationType.AppendFile), Times.Once);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+22
-1
@@ -75,6 +75,27 @@ public class FileOperationsControllerTest
|
||||
_mockDirectFileService.Object);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task WriteBinaryFileDataPost_OK()
|
||||
{
|
||||
var request = new WriteFileRequest
|
||||
{
|
||||
FileData = Convert.ToBase64String(new byte[] { 0x52, 0x49, 0x46, 0x46 }),
|
||||
DestinationPath = "SomePath",
|
||||
Extension = ".wav",
|
||||
FileName = "FileName"
|
||||
};
|
||||
|
||||
var validRequestResponse = new RequestResponse() { MessageStack = new List<string>(), IsSuccessful = true };
|
||||
_mockWriteFileDataService.Setup(service => service.PreQueueValidation(It.IsAny<WriteFileRequest>())).Returns(validRequestResponse);
|
||||
|
||||
var result = await _controller.WriteBinaryFileData(request);
|
||||
var okResult = result as OkResult;
|
||||
|
||||
Assert.NotNull(okResult);
|
||||
Assert.Equal(200, okResult.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetFile_OK()
|
||||
{
|
||||
@@ -299,4 +320,4 @@ public class FileOperationsControllerTest
|
||||
Assert.NotNull(okResult);
|
||||
Assert.Equal(200, okResult.StatusCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,4 +22,4 @@ public enum FileOperationType
|
||||
ExtractIndexFileData = 18,
|
||||
DeleteEmptyDirectory = 19,
|
||||
ValidateFileSizeInRange = 20
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user