diff options
Diffstat (limited to 'backend/api')
| -rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 75 | ||||
| -rw-r--r-- | backend/api/api/Services/DatasetService.cs | 14 | ||||
| -rw-r--r-- | backend/api/api/Services/IDatasetService.cs | 3 | 
3 files changed, 84 insertions, 8 deletions
| 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/<DatasetController>/mydatasets -        [HttpGet("/mydatasets")] +        [HttpGet("mydatasets")]          [Authorize(Roles = "User")]          public ActionResult<List<Dataset>> 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/<DatasetController>/getlatestdataset/{number} +        [HttpGet("getlatestdatasets/{latest}")] +        [Authorize(Roles = "User")] +        public ActionResult<List<Dataset>> 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<Dataset> lista = _datasetService.GetMyDatesets(username); + +            List<Dataset> novaLista = new List<Dataset>(); + +            lista.Reverse(); + +            for(int i = 0; i < latest; i++) +                novaLista.Add(lista[i]); + +            return novaLista; +        } + +        // GET: api/<DatasetController>/getoldestdataset/{number} +        [HttpGet("getoldestdatasets/{oldest}")] +        [Authorize(Roles = "User")] +        public ActionResult<List<Dataset>> 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<Dataset> lista = _datasetService.GetMyDatesets(username); + +            List<Dataset> novaLista = new List<Dataset>(); + +            for (int i = 0; i < oldest; i++) +                novaLista.Add(lista[i]); + +            return novaLista; +        } + +          // GET: api/<DatasetController>/publicdatasets -        [HttpGet("/datasets")] +        [HttpGet("publicdatasets")]          public ActionResult<List<Dataset>> GetPublicDS()          {              return _datasetService.GetPublicDatesets(); @@ -55,7 +118,7 @@ namespace api.Controllers          // GET api/<DatasetController>/{name}          //get odredjeni dataset -        [HttpGet("/{name}")] +        [HttpGet("{name}")]          [Authorize(Roles = "User")]          public ActionResult<Dataset> Get(string name)          { @@ -114,7 +177,7 @@ namespace api.Controllers          }          // PUT api/<DatasetController>/{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/<DatasetController>/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<Dataset> GetLatestDatasets(string username, int latest) +        { +            List<Dataset> list = _dataset.Find(dataset => dataset.username == username).ToList(); + + +          + +            return list; +        } +          public List<Dataset> 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<Dataset> GetMyDatesets(string username); +        List<Dataset> GetMyDatesets(string username);  +        List<Dataset> GetLatestDatasets(string username, int latest);          List<Dataset> GetPublicDatesets();          Dataset Create(Dataset dataset);          void Update(string username, string name, Dataset dataset); | 
