aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/api/api/Controllers/PredictorController.cs76
-rw-r--r--backend/api/api/Models/Predictor.cs13
-rw-r--r--backend/api/api/Services/IPredictorService.cs23
-rw-r--r--backend/api/api/Services/MlConnectionService.cs6
-rw-r--r--backend/api/api/Services/PredictorService.cs16
5 files changed, 69 insertions, 65 deletions
diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs
index 87c32048..481334e9 100644
--- a/backend/api/api/Controllers/PredictorController.cs
+++ b/backend/api/api/Controllers/PredictorController.cs
@@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Net.Http.Headers;
using System.Net.Http.Headers;
using System.Diagnostics;
+using Microsoft.AspNetCore.SignalR;
namespace api.Controllers
{
@@ -16,13 +17,19 @@ namespace api.Controllers
private IJwtToken jwtToken;
private readonly IMlConnectionService _mlConnectionService;
private readonly IExperimentService _experimentService;
+ private readonly IUserService _userService;
+ private readonly IHubContext<ChatHub> _ichat;
+ private readonly IModelService _modelService;
- public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService, IExperimentService experimentService)
+ public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService, IExperimentService experimentService,IUserService userService, IHubContext<ChatHub> ichat,IModelService modelService)
{
_predictorService = predictorService;
jwtToken = Token;
_mlConnectionService = mlConnectionService;
_experimentService = experimentService;
+ _userService = userService;
+ _ichat = ichat;
+ _modelService = modelService;
}
public string getUsername()
@@ -65,17 +72,18 @@ namespace api.Controllers
//SEARCH za predictore (public ili private sa ovim imenom )
// GET api/<PredictorController>/search/{name}
- [HttpGet("search/{name}")]
- [Authorize(Roles = "User")]
- public ActionResult<List<Predictor>> Search(string name)
- {
- string username = getUsername();
+
+ //[HttpGet("search/{name}")]
+ //[Authorize(Roles = "User")]
+ //public ActionResult<List<Predictor>> Search(string name)
+ //{
+ // string username = getUsername();
- if (username == null)
- return BadRequest();
+ // if (username == null)
+ // return BadRequest();
- return _predictorService.SearchPredictors(name, username);
- }
+ // return _predictorService.SearchPredictors(name, username);
+ //}
// GET api/<PredictorController>/getpredictor/{name}
[HttpGet("getpredictor/{id}")]
@@ -98,17 +106,17 @@ namespace api.Controllers
// GET api/<PredictorController>/{name}
[HttpGet("{name}")]
[Authorize(Roles = "User")]
- public ActionResult<Predictor> Get(string name)
+ public ActionResult<Predictor> Get(string id)
{
string username = getUsername();
if (username == null)
return BadRequest();
- var predictor = _predictorService.GetOnePredictor(username, name);
+ var predictor = _predictorService.GetOnePredictor(id);
if (predictor == null)
- return NotFound($"Predictor with name = {name} not found or predictor is not public");
+ return NotFound($"Predictor with id = {id} not found or predictor is not public");
return predictor;
}
@@ -144,19 +152,17 @@ namespace api.Controllers
// POST api/<PredictorController>/add
[HttpPost("add")]
- [Authorize(Roles = "User")]
- public ActionResult<Predictor> Post([FromBody] Predictor predictor)
+ public async Task<ActionResult<Predictor>> Post([FromBody] Predictor predictor)
{
- var existingPredictor = _predictorService.GetOnePredictor(predictor.username, predictor.name);
-
- if (existingPredictor != null)
- return NotFound($"Predictor with name = {predictor.name} exisits");
- else
- {
- _predictorService.Create(predictor);
-
- return CreatedAtAction(nameof(Get), new { id = predictor._id }, predictor);
- }
+ var user=_userService.GetUserByUsername(predictor.username);
+ var model = _modelService.GetOneModel(predictor.modelId);
+ if (model == null || user==null)
+ return BadRequest("Model not found or user doesnt exist");
+ _predictorService.Create(predictor);
+ if (ChatHub.CheckUser(user._id))
+ await _ichat.Clients.Client(ChatHub.Users[user._id]).SendAsync("NotifyPredictor", predictor._id,model.name);
+ return CreatedAtAction(nameof(Get), new { id = predictor._id }, predictor);
+
}
// POST api/<PredictorController>/usepredictor {predictor,inputs}
@@ -186,42 +192,42 @@ namespace api.Controllers
// PUT api/<PredictorController>/{name}
[HttpPut("{name}")]
[Authorize(Roles = "User")]
- public ActionResult Put(string name, [FromBody] Predictor predictor)
+ public ActionResult Put(string id, [FromBody] Predictor predictor)
{
string username = getUsername();
if (username == null)
return BadRequest();
- var existingPredictor = _predictorService.GetOnePredictor(username, name);
+ var existingPredictor = _predictorService.GetOnePredictor(id);
//ne mora da se proverava
if (existingPredictor == null)
- return NotFound($"Predictor with name = {name} or user with username = {username} not found");
+ return NotFound($"Predictor with id = {id} or user with username = {username} not found");
- _predictorService.Update(username, name, predictor);
+ _predictorService.Update(id, predictor);
- return Ok($"Predictor with name = {name} updated");
+ return Ok($"Predictor with id = {id} updated");
}
// DELETE api/<PredictorController>/name
[HttpDelete("{name}")]
[Authorize(Roles = "User")]
- public ActionResult Delete(string name)
+ public ActionResult Delete(string id)
{
string username = getUsername();
if (username == null)
return BadRequest();
- var predictor = _predictorService.GetOnePredictor(username, name);
+ var predictor = _predictorService.GetOnePredictor(id);
if (predictor == null)
- return NotFound($"Predictor with name = {name} or user with username = {username} not found");
+ return NotFound($"Predictor with id = {id} or user with username = {username} not found");
- _predictorService.Delete(predictor.username, predictor.name);
+ _predictorService.Delete(id);
- return Ok($"Predictor with name = {name} deleted");
+ return Ok($"Predictor with id = {id} deleted");
}
}
diff --git a/backend/api/api/Models/Predictor.cs b/backend/api/api/Models/Predictor.cs
index 3f9889be..26371d2a 100644
--- a/backend/api/api/Models/Predictor.cs
+++ b/backend/api/api/Models/Predictor.cs
@@ -10,17 +10,26 @@ namespace api.Models
[BsonRepresentation(BsonType.ObjectId)]//mongo data type to .net
public string _id { get; set; }
public string username { get; set; }
- public string name { get; set; }
- public string description { get; set; }
+ //public string name { get; set; }
+ //public string description { get; set; }
public string[] inputs { get; set; }
public string output { get; set; }
public bool isPublic { get; set; }
public bool accessibleByLink { get; set; }
public DateTime dateCreated { get; set; }
public string experimentId { get; set; }
+ public string modelId { get; set; }
public string h5FileId { get; set; }
+ public Metric[] metrics { get; set; }
+
}
+ public class Metric
+ {
+ string Name { get; set; }
+ string JsonValue { get; set; }
+
+ }
}
/*
diff --git a/backend/api/api/Services/IPredictorService.cs b/backend/api/api/Services/IPredictorService.cs
index 729dd0b6..7c31215e 100644
--- a/backend/api/api/Services/IPredictorService.cs
+++ b/backend/api/api/Services/IPredictorService.cs
@@ -1,19 +1,16 @@
-using System;
-using api.Models;
+using api.Models;
namespace api.Services
{
- public interface IPredictorService
- {
- Predictor GetOnePredictor(string username, string name);
- Predictor GetPredictor(string username, string GetPredictor);
- List<Predictor> SearchPredictors(string name, string username);
+ public interface IPredictorService
+ {
+ Predictor Create(Predictor predictor);
+ void Delete(string id);
List<Predictor> GetMyPredictors(string username);
- List<Predictor> SortPredictors(string username, bool ascdsc, int latest);
+ Predictor GetOnePredictor(string id);
+ Predictor GetPredictor(string username, string id);
List<Predictor> GetPublicPredictors();
- Predictor Create(Predictor predictor);
- void Update(string username, string name, Predictor predictor);
- void Delete(string username, string name);
+ List<Predictor> SortPredictors(string username, bool ascdsc, int latest);
+ void Update(string id, Predictor predictor);
}
-}
-
+} \ No newline at end of file
diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs
index 4363b4ad..22db0aea 100644
--- a/backend/api/api/Services/MlConnectionService.cs
+++ b/backend/api/api/Services/MlConnectionService.cs
@@ -43,11 +43,7 @@ namespace api.Services
//request.AddFile("file", file,filename);
request.AddFile("file", filePath);
request.AddHeader("Content-Type", "multipart/form-data");
- var result = await this.client.ExecuteAsync(request);
-
- if (ChatHub.CheckUser(id))
- await _ichat.Clients.Client(ChatHub.Users[id]).SendAsync("NotifyModel",model.name,model._id);
-
+ this.client.ExecuteAsync(request);
return;
}
diff --git a/backend/api/api/Services/PredictorService.cs b/backend/api/api/Services/PredictorService.cs
index b89eaded..144248d4 100644
--- a/backend/api/api/Services/PredictorService.cs
+++ b/backend/api/api/Services/PredictorService.cs
@@ -14,10 +14,6 @@ namespace api.Services
_predictor = database.GetCollection<Predictor>(settings.PredictorCollectionName);
}
- public List<Predictor> SearchPredictors(string name, string username)
- {
- return _predictor.Find(predictor => predictor.name == name && predictor.isPublic == true).ToList();
- }
public Predictor Create(Predictor predictor)
{
@@ -25,9 +21,9 @@ namespace api.Services
return predictor;
}
- public void Delete(string username, string name)
+ public void Delete(string id)
{
- _predictor.DeleteOne(predictor => (predictor.username == username && predictor.name == name));
+ _predictor.DeleteOne(predictor => (predictor._id == id));
}
public List<Predictor> GetMyPredictors(string username)
@@ -35,9 +31,9 @@ namespace api.Services
return _predictor.Find(predictor => predictor.username == username).ToList();
}
- public Predictor GetOnePredictor(string username, string name)
+ public Predictor GetOnePredictor(string id)
{
- return _predictor.Find(predictor => predictor.username == username && predictor.name == name).FirstOrDefault();
+ return _predictor.Find(predictor => predictor._id == id).FirstOrDefault();
}
public Predictor GetPredictor(string username, string id)
@@ -62,9 +58,9 @@ namespace api.Services
return _predictor.Find(predictor => predictor.isPublic == true).ToList();
}
- public void Update(string username, string name, Predictor predictor)
+ public void Update(string id, Predictor predictor)
{
- _predictor.ReplaceOne(predictor => predictor.username == username && predictor.name == name, predictor);
+ _predictor.ReplaceOne(predictor => predictor._id == id, predictor);
}
}
}