diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-04-03 22:21:46 +0200 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-04-03 22:21:46 +0200 |
commit | 7ba7c0451ef4e5a65cf5a9f7391c520b14f9654f (patch) | |
tree | 5b29a15c880a31c8be334a47c28eab849f93631e /backend/api | |
parent | 1a2a2e928769158b75dbf6e3366ab8ed312cd131 (diff) |
Kada se dodaje dataset prosledjuje se zahtev ml api-ju da izracuna columnInfo. Potrebno uskladiti sa ml api-jem.
Diffstat (limited to 'backend/api')
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 16 | ||||
-rw-r--r-- | backend/api/api/Services/FileService.cs | 4 | ||||
-rw-r--r-- | backend/api/api/Services/IFileService.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/IMlConnectionService.cs | 4 | ||||
-rw-r--r-- | backend/api/api/Services/MlConnectionService.cs | 16 |
5 files changed, 36 insertions, 5 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index 8a622138..8a3485dd 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -14,11 +14,15 @@ namespace api.Controllers public class DatasetController : ControllerBase { private readonly IDatasetService _datasetService; + private readonly IMlConnectionService _mlConnectionService; + private readonly IFileService _fileService; private IJwtToken jwtToken; - public DatasetController(IDatasetService datasetService, IConfiguration configuration,IJwtToken Token) + public DatasetController(IDatasetService datasetService, IConfiguration configuration,IJwtToken Token,IMlConnectionService mlConnectionService, IFileService fileService) { _datasetService = datasetService; + _mlConnectionService = mlConnectionService; + _fileService = fileService; jwtToken = Token; } @@ -159,7 +163,7 @@ namespace api.Controllers // POST api/<DatasetController>/add [HttpPost("add")] [Authorize(Roles = "User,Guest")] - public ActionResult<Dataset> Post([FromBody] Dataset dataset) + public async Task<ActionResult<Dataset>> Post([FromBody] Dataset dataset) { //da li ce preko tokena da se ubaci username ili front salje //dataset.username = usernameToken; @@ -170,9 +174,13 @@ namespace api.Controllers return NotFound($"Dateset with name = {dataset.name} exisits"); else { - _datasetService.Create(dataset); - return CreatedAtAction(nameof(Get), new { id = dataset._id }, dataset); + FileModel fileModel = _fileService.getFile(dataset.fileId); + Dataset newDataset =await _mlConnectionService.PreProcess(dataset,fileModel.path); + + _datasetService.Create(newDataset); + + return CreatedAtAction(nameof(Get), new { id = newDataset._id }, newDataset); } } diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs index 24491124..13f596d0 100644 --- a/backend/api/api/Services/FileService.cs +++ b/backend/api/api/Services/FileService.cs @@ -36,6 +36,10 @@ namespace api.Services return null; return file.path; } + public FileModel getFile(string id) + { + return _file.Find(x=>x._id==id).FirstOrDefault(); + } } } diff --git a/backend/api/api/Services/IFileService.cs b/backend/api/api/Services/IFileService.cs index 7446e283..d65deb48 100644 --- a/backend/api/api/Services/IFileService.cs +++ b/backend/api/api/Services/IFileService.cs @@ -6,5 +6,6 @@ namespace api.Services { FileModel Create(FileModel file); string GetFilePath(string id, string username); + public FileModel getFile(string id); } }
\ No newline at end of file diff --git a/backend/api/api/Services/IMlConnectionService.cs b/backend/api/api/Services/IMlConnectionService.cs index ee839d28..490f2df7 100644 --- a/backend/api/api/Services/IMlConnectionService.cs +++ b/backend/api/api/Services/IMlConnectionService.cs @@ -1,8 +1,12 @@ +using api.Models; + namespace api.Services { public interface IMlConnectionService { Task<string> SendModelAsync(object model, object dataset); + Task<Dataset> PreProcess(Dataset dataset, string filePath); + //Task<Dataset> PreProcess(Dataset dataset, byte[] file, string filename); } }
\ No newline at end of file diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs index 9c3b3fd8..a04a323b 100644 --- a/backend/api/api/Services/MlConnectionService.cs +++ b/backend/api/api/Services/MlConnectionService.cs @@ -1,6 +1,8 @@ -using RestSharp; +using api.Models; +using RestSharp; using System.Net.WebSockets; using System.Text; +using Newtonsoft.Json; namespace api.Services { @@ -20,5 +22,17 @@ namespace api.Services var result = await this.client.ExecuteAsync(request); return result.Content; //Response od ML microservisa } + public async Task<Dataset> PreProcess(Dataset dataset,string filePath)//(Dataset dataset,byte[] file,string filename) + { + var request=new RestRequest("preprocess", Method.Post);//USKLADITI SA ML API + request.AddParameter("dataset", JsonConvert.SerializeObject(dataset)); + //request.AddFile("file", file,filename); + request.AddFile("file", filePath); + request.AddHeader("Content-Type", "multipart/form-data"); + var result=await this.client.ExecuteAsync(request); + Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content); + return newDataset; + + } } } |