From ff5bf81a14d3024f8ff1764db488dec6790ed37e Mon Sep 17 00:00:00 2001 From: Ivan Ljubisavljevic Date: Sat, 19 Mar 2022 17:56:13 +0100 Subject: GetLatestDatasets i GetOldestDatasets odradjen. Potrebne ispravke #41 --- backend/api/api/Controllers/DatasetController.cs | 75 ++++++++++++++++++++++-- backend/api/api/Services/DatasetService.cs | 14 ++++- backend/api/api/Services/IDatasetService.cs | 3 +- 3 files changed, 84 insertions(+), 8 deletions(-) (limited to 'backend') diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index c0ba0039..1ad180b7 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -24,7 +24,7 @@ namespace api.Controllers // GET: api//mydatasets - [HttpGet("/mydatasets")] + [HttpGet("mydatasets")] [Authorize(Roles = "User")] public ActionResult> Get() { @@ -40,14 +40,77 @@ namespace api.Controllers } else return BadRequest(); - + //ako bude trebao ID, samo iz baze uzeti return _datasetService.GetMyDatesets(username); } + // GET: api//getlatestdataset/{number} + [HttpGet("getlatestdatasets/{latest}")] + [Authorize(Roles = "User")] + public ActionResult> GetLatestDatasets(int latest) + { + 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 + + List lista = _datasetService.GetMyDatesets(username); + + List novaLista = new List(); + + lista.Reverse(); + + for(int i = 0; i < latest; i++) + novaLista.Add(lista[i]); + + return novaLista; + } + + // GET: api//getoldestdataset/{number} + [HttpGet("getoldestdatasets/{oldest}")] + [Authorize(Roles = "User")] + public ActionResult> GetOldestDatasets(int oldest) + { + 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 + + List lista = _datasetService.GetMyDatesets(username); + + List novaLista = new List(); + + for (int i = 0; i < oldest; i++) + novaLista.Add(lista[i]); + + return novaLista; + } + + // GET: api//publicdatasets - [HttpGet("/datasets")] + [HttpGet("publicdatasets")] public ActionResult> GetPublicDS() { return _datasetService.GetPublicDatesets(); @@ -55,7 +118,7 @@ namespace api.Controllers // GET api//{name} //get odredjeni dataset - [HttpGet("/{name}")] + [HttpGet("{name}")] [Authorize(Roles = "User")] public ActionResult Get(string name) { @@ -114,7 +177,7 @@ namespace api.Controllers } // PUT api//{name} - [HttpPut("/{name}")] + [HttpPut("{name}")] [Authorize(Roles = "User")] public ActionResult Put(string name, [FromBody] Dataset dataset) { @@ -143,7 +206,7 @@ namespace api.Controllers } // DELETE api//name - [HttpDelete("/{name}")] + [HttpDelete("{name}")] [Authorize(Roles = "User")] public ActionResult Delete(string name) { diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 27a8b3ee..880570dd 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -1,4 +1,5 @@ -using api.Interfaces; +using System.Linq; +using api.Interfaces; using api.Models; using MongoDB.Driver; @@ -30,6 +31,17 @@ namespace api.Services { return _dataset.Find(dataset => dataset.username == username).ToList(); } + + public List GetLatestDatasets(string username, int latest) + { + List list = _dataset.Find(dataset => dataset.username == username).ToList(); + + + + + return list; + } + public List GetPublicDatesets() { return _dataset.Find(dataset => dataset.isPublic == true).ToList(); diff --git a/backend/api/api/Services/IDatasetService.cs b/backend/api/api/Services/IDatasetService.cs index 61a04b94..19a0aabc 100644 --- a/backend/api/api/Services/IDatasetService.cs +++ b/backend/api/api/Services/IDatasetService.cs @@ -6,7 +6,8 @@ namespace api.Services public interface IDatasetService { Dataset GetOneDataset(string username, string name); - List GetMyDatesets(string username); + List GetMyDatesets(string username); + List GetLatestDatasets(string username, int latest); List GetPublicDatesets(); Dataset Create(Dataset dataset); void Update(string username, string name, Dataset dataset); -- cgit v1.2.3