aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/api/api/Controllers/DatasetController.cs97
-rw-r--r--backend/api/api/Controllers/UserController.cs4
-rw-r--r--backend/api/api/Models/Dataset.cs29
-rw-r--r--backend/api/api/Program.cs1
-rw-r--r--backend/api/api/Services/DatasetService.cs15
-rw-r--r--backend/api/api/Services/IDatasetService.cs5
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);
}
}