aboutsummaryrefslogtreecommitdiff
path: root/backend/api
diff options
context:
space:
mode:
authorOgnjen Cirkovic <ciraboxkg@gmail.com>2022-04-03 22:21:46 +0200
committerOgnjen Cirkovic <ciraboxkg@gmail.com>2022-04-03 22:21:46 +0200
commit7ba7c0451ef4e5a65cf5a9f7391c520b14f9654f (patch)
tree5b29a15c880a31c8be334a47c28eab849f93631e /backend/api
parent1a2a2e928769158b75dbf6e3366ab8ed312cd131 (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.cs16
-rw-r--r--backend/api/api/Services/FileService.cs4
-rw-r--r--backend/api/api/Services/IFileService.cs1
-rw-r--r--backend/api/api/Services/IMlConnectionService.cs4
-rw-r--r--backend/api/api/Services/MlConnectionService.cs16
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;
+
+ }
}
}