diff options
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 97 | ||||
-rw-r--r-- | backend/api/api/Controllers/UserController.cs | 4 | ||||
-rw-r--r-- | backend/api/api/Models/Dataset.cs | 29 | ||||
-rw-r--r-- | backend/api/api/Program.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/DatasetService.cs | 15 | ||||
-rw-r--r-- | backend/api/api/Services/IDatasetService.cs | 5 |
6 files changed, 125 insertions, 26 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index e1b888a1..d022d6d2 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -1,4 +1,6 @@ -using Microsoft.AspNetCore.Mvc; +using api.Models; +using api.Services; +using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 @@ -8,36 +10,103 @@ namespace api.Controllers [ApiController] public class DatasetController : ControllerBase { - // GET: api/<DatasetController> - [HttpGet] - public IEnumerable<string> Get() + private readonly IDatasetService _datasetService; + + public DatasetController(IDatasetService datasetService) + { + _datasetService = datasetService; + } + + + // GET: api/<DatasetController>/{id}/datasets + [HttpGet("{id}/datasets")] + public ActionResult<List<Dataset>> Get(string id) { - return new string[] { "value1", "value2" }; + return _datasetService.GetAllDatesets(id); } - // GET api/<DatasetController>/5 - [HttpGet("{id}")] - public string Get(int id) + // GET api/<DatasetController>/{id}/{name} + [HttpGet("{id}/{name}")] + public ActionResult<Dataset> Get(string id, string name) { - return "value"; + var dataset = _datasetService.GetOneDataset(id, name); + + if (dataset == null) + return NotFound($"Dataset with name = {name} not found"); + + return dataset; } // POST api/<DatasetController> - [HttpPost] - public void Post([FromBody] string value) + [HttpPost("post")] + public ActionResult<Dataset> Post([FromBody] Dataset dataset) { + var existingUser = _datasetService.GetOneDataset(dataset.uploaderId,dataset.name); + + if (existingUser != null) + return NotFound($"Dateset with name = {dataset.name} exisits"); + else + { + _datasetService.Create(dataset); + + return CreatedAtAction(nameof(Get), new { id = dataset._id }, dataset); + } } // PUT api/<DatasetController>/5 - [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + [HttpPut("{id}/{name}")] + public ActionResult Put(string id, string name, [FromBody] Dataset dataset) { + var existingDataset = _datasetService.GetOneDataset(id, name); + + //ne mora da se proverava + if (existingDataset == null) + return NotFound($"Dataset with name = {name} not found"); + + _datasetService.Update(id, name, dataset); + return NoContent(); } // DELETE api/<DatasetController>/5 [HttpDelete("{id}")] - public void Delete(int id) + public ActionResult Delete(string id, string name) { + var dataset = _datasetService.GetOneDataset(id, name); + + if (dataset == null) + return NotFound($"Dataset with name = {name} not found"); + + _datasetService.Delete(dataset.uploaderId,dataset.name); + + return Ok($"Dataset with name = {name} deleted"); + } } } + +/* +{ + "_id": "", + "uploaderId" : "uploaderId", + "name" : "name", + "description" : "description", + "dateCreated" : "dateCreated", + "inputColumns" : [2,3,4], + "columnToPredict" : 1, + "randomTestSet" : true, + "randomTestSetDistribution" : 1, + "type" : "type", + "encoding" : "encoding", + "optimizer" : "optimizer", + "lossFunction" : "lossFunction", + "inputNeurons" : 2, + "hiddenLayerNeurons" : 3, + "hiddenLayers" : 8, + "batchSize" : 6, + "inputLayerActivationFunction" : "inputLayerActivationFunction", + "hiddenLayerActivationFunction" : "hiddenLayerActivationFunction", + "outputLayerActivationFunction" : "outputLayerActivationFunction", + "extension" : "extension" + +} +*/
\ No newline at end of file diff --git a/backend/api/api/Controllers/UserController.cs b/backend/api/api/Controllers/UserController.cs index caf78d9c..d41a42e3 100644 --- a/backend/api/api/Controllers/UserController.cs +++ b/backend/api/api/Controllers/UserController.cs @@ -37,7 +37,7 @@ namespace api.Controllers return user; } - + /* // GET api/<UserController>/5 //potrebno za profile page [HttpGet("{id}")] @@ -50,7 +50,7 @@ namespace api.Controllers return user; } - + */ // POST api/<UserController> [HttpPost] public ActionResult<User> Post([FromBody] User user) diff --git a/backend/api/api/Models/Dataset.cs b/backend/api/api/Models/Dataset.cs index 448a6aa9..0dc87f40 100644 --- a/backend/api/api/Models/Dataset.cs +++ b/backend/api/api/Models/Dataset.cs @@ -12,10 +12,35 @@ namespace api.Models public string _id { get; set; } [BsonElement("uploaderId")] public string UploaderId { get; set; } - [BsonElement("extension")] - public string extension { get; set; } [BsonElement("name")] public string name { get; set; } + public string description { get; set; } + //datetime + public string dateCreated { get; set; } + + public int[] inputColumns { get; set; } + public int columnToPredict { get; set; } + public bool randomTestSet { get; set; } + public int randomTestSetDistribution { get; set; } + + + public string type { get; set; } + public string encoding { get; set; } + public string optimizer { get; set; } + public string lossFunction { get; set; } + public int inputNeurons { get; set; } + public int hiddenLayerNeurons { get; set; } + public int hiddenLayers { get; set; } + public int batchSize { get; set; } + public string inputLayerActivationFunction { get; set; } + public string hiddenLayerActivationFunction { get; set; } + public string outputLayerActivationFunction { get; set; } + + + [BsonElement("extension")] + public string extension { get; set; } + + } } diff --git a/backend/api/api/Program.cs b/backend/api/api/Program.cs index 550f6ce1..2c569daf 100644 --- a/backend/api/api/Program.cs +++ b/backend/api/api/Program.cs @@ -25,6 +25,7 @@ builder.Services.AddSingleton<IMongoClient>(s => new MongoClient(builder.Configuration.GetValue<string>("UserStoreDatabaseSettings:ConnectionString"))); //Inject Dependencies +builder.Services.AddScoped<IDatasetService, DatasetService>(); builder.Services.AddScoped<IUserService, UserService>(); builder.Services.AddScoped<IAuthService, AuthService>(); diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 154c9438..1b6d22be 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -23,18 +23,21 @@ namespace api.Services //brisanje odredjenog name-a public void Delete(string uploaderId, string name) { - _dataset.DeleteOne(dataset => dataset.UploaderId == uploaderId && dataset.name == name); ; + _dataset.DeleteOne(dataset => (dataset.UploaderId == uploaderId && dataset.name == name)); } - - public Dataset Get(string uploaderId) + public List<Dataset> GetAllDatesets(string uploaderId) + { + return _dataset.Find(dataset => dataset.uploaderId == uploaderId).ToList(); + } + public Dataset GetOneDataset(string uploaderId, string name) { - return _dataset.Find(dataset => dataset.UploaderId == uploaderId).FirstOrDefault(); + return _dataset.Find(dataset => dataset.UploaderId == uploaderId && dataset.name == name).FirstOrDefault(); } //ako je potrebno da se zameni name ili ekstenzija - public void Update(string uploaderId, Dataset dataset) + public void Update(string uploaderId, string name, Dataset dataset) { - _dataset.ReplaceOne(dataset => dataset.UploaderId == uploaderId, dataset); + _dataset.ReplaceOne(dataset => dataset.UploaderId == uploaderId && dataset.name == name, dataset); } } } diff --git a/backend/api/api/Services/IDatasetService.cs b/backend/api/api/Services/IDatasetService.cs index 22633c3c..9cf8c3cb 100644 --- a/backend/api/api/Services/IDatasetService.cs +++ b/backend/api/api/Services/IDatasetService.cs @@ -5,9 +5,10 @@ namespace api.Services { public interface IDatasetService { - Dataset Get(string uploaderId); + Dataset GetOneDataset(string uploaderId, string name); + List<Dataset> GetAllDatesets(string uploaderId); Dataset Create(Dataset dataset); - void Update(string uploaderId, Dataset dataset); + void Update(string uploaderId, string name, Dataset dataset); void Delete(string uploaderId, string name); } } |