aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/api/api/Controllers/PredictorController.cs30
-rw-r--r--backend/api/api/Services/IPredictorService.cs1
-rw-r--r--backend/api/api/Services/PredictorService.cs5
3 files changed, 36 insertions, 0 deletions
diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs
index 7f8f1692..63c5d2bf 100644
--- a/backend/api/api/Controllers/PredictorController.cs
+++ b/backend/api/api/Controllers/PredictorController.cs
@@ -74,6 +74,36 @@ namespace api.Controllers
return _predictorService.SearchPredictors(name, username);
}
+ //SEARCH za predictore (public ili private sa ovim imenom )
+ // GET api/<PredictorController>/search/{name}
+ [HttpGet("{id}")]
+ [Authorize(Roles = "User")]
+ public ActionResult<Predictor> GetPredictor(string id)
+ {
+ string username;
+ var header = Request.Headers[HeaderNames.Authorization];
+ if (AuthenticationHeaderValue.TryParse(header, out var headerValue))
+ {
+ var scheme = headerValue.Scheme;
+ var parameter = headerValue.Parameter;
+ username = jwtToken.TokenToUsername(parameter);
+ if (username == null)
+ return null;
+ }
+ else
+ return BadRequest();
+
+ //ako bude trebao ID, samo iz baze uzeti
+
+ Predictor predictor = _predictorService.GetPredictor(username, id);
+
+ if (predictor == null)
+ return NotFound($"Predictor with id = {id} not found");
+
+ return predictor;
+ }
+
+
//da li da se odvoji search za public i posebno za private?
// GET api/<PredictorController>/{name}
[HttpGet("{name}")]
diff --git a/backend/api/api/Services/IPredictorService.cs b/backend/api/api/Services/IPredictorService.cs
index 2017add2..729dd0b6 100644
--- a/backend/api/api/Services/IPredictorService.cs
+++ b/backend/api/api/Services/IPredictorService.cs
@@ -6,6 +6,7 @@ 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);
List<Predictor> GetMyPredictors(string username);
List<Predictor> SortPredictors(string username, bool ascdsc, int latest);
diff --git a/backend/api/api/Services/PredictorService.cs b/backend/api/api/Services/PredictorService.cs
index 05860126..01bc8359 100644
--- a/backend/api/api/Services/PredictorService.cs
+++ b/backend/api/api/Services/PredictorService.cs
@@ -40,6 +40,11 @@ namespace api.Services
return _predictor.Find(predictor => predictor.username == username && predictor.name == name).FirstOrDefault();
}
+ public Predictor GetPredictor(string username, string id)
+ {
+ return _predictor.Find(predictor => predictor.username == username && predictor._id == id).FirstOrDefault();
+
+ }
//last private models
public List<Predictor> SortPredictors(string username, bool ascdsc, int latest)
{