From 9a708de97086c898ccb2a585617dcc5a64dcaf64 Mon Sep 17 00:00:00 2001 From: Ivan Ljubisavljevic Date: Tue, 29 Mar 2022 13:41:30 +0200 Subject: Dodat back za pristup predictoru #66 --- backend/api/api/Controllers/PredictorController.cs | 30 ++++++++++++++++++++++ backend/api/api/Services/IPredictorService.cs | 1 + backend/api/api/Services/PredictorService.cs | 5 ++++ 3 files changed, 36 insertions(+) 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//search/{name} + [HttpGet("{id}")] + [Authorize(Roles = "User")] + public ActionResult 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//{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 SearchPredictors(string name, string username); List GetMyPredictors(string username); List 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 @@ -39,6 +39,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 SortPredictors(string username, bool ascdsc, int latest) -- cgit v1.2.3