diff --git a/.vs/MyCore/v15/Server/sqlite3/storage.ide b/.vs/MyCore/v15/Server/sqlite3/storage.ide index fd9346a..50d6ba2 100644 Binary files a/.vs/MyCore/v15/Server/sqlite3/storage.ide and b/.vs/MyCore/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/MyCore/v15/Server/sqlite3/storage.ide-shm b/.vs/MyCore/v15/Server/sqlite3/storage.ide-shm index 1776622..7598333 100644 Binary files a/.vs/MyCore/v15/Server/sqlite3/storage.ide-shm and b/.vs/MyCore/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal b/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal index d4d5401..17861aa 100644 Binary files a/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal and b/.vs/MyCore/v15/Server/sqlite3/storage.ide-wal differ diff --git a/MyCore/Controllers/IOTController.cs b/MyCore/Controllers/IOTController.cs index ed6fcc9..40099d8 100644 --- a/MyCore/Controllers/IOTController.cs +++ b/MyCore/Controllers/IOTController.cs @@ -26,6 +26,7 @@ namespace MyCore.Controllers /// /// Retrieve all SmartPrinterMessage /// + /// Id of the smart printer message [HttpGet("smartprinter/{idDevice}")] public ActionResult> GetSmartPrinterMessages(int id) { @@ -36,6 +37,10 @@ namespace MyCore.Controllers /// /// It's the method to post data from mqtt broker to Database (Thanks Rpi!) /// + /// Id of the device to upload to DB + /// Content that will be uploaded + /// Content successfully posted to DB + /// Unexpected error [HttpPost("smartprinter/{idDevice}")] public IActionResult PostToDBPrinter(int idDevice, [FromBody] SmartPrinterMessage[] content) { diff --git a/MyCore/Controllers/TokenController.cs b/MyCore/Controllers/TokenController.cs index 25808e1..6ade3a4 100644 --- a/MyCore/Controllers/TokenController.cs +++ b/MyCore/Controllers/TokenController.cs @@ -23,7 +23,7 @@ namespace MyCore.Controllers public IActionResult Create(string username, string password) { if (IsValidUserAndPasswordCombination(username, password)) - return new ObjectResult(GenerateToken(username)); + return new ObjectResult("{\"Token\":\""+GenerateToken(username)+"\"}"); return BadRequest(); } diff --git a/MyCore/Startup.cs b/MyCore/Startup.cs index 2f976f3..1e84531 100644 --- a/MyCore/Startup.cs +++ b/MyCore/Startup.cs @@ -84,6 +84,10 @@ namespace MyCore public void Configure(IApplicationBuilder app, IHostingEnvironment env) { + app.UseCors( + options => options.WithOrigins("http://localhost:4200").AllowAnyMethod() + ); + // Enable middleware to serve generated Swagger as a JSON endpoint. app.UseSwagger(); diff --git a/MyCore/appsettings.json b/MyCore/appsettings.json index 4507b8a..1403b95 100644 --- a/MyCore/appsettings.json +++ b/MyCore/appsettings.json @@ -1,7 +1,7 @@ { "ConnectionStrings": { - "BookstoreDb": "mongodb://localhost:27017", - "MyCoreDb": "mongodb://localhost:27017" + "BookstoreDb": "mongodb://admin:MioTech4ever!@localhost:27017", + "MyCoreDb": "mongodb://admin:MioTech4ever!@localhost:27017" }, "Logging": { "LogLevel": { diff --git a/MyCore/bin/Debug/netcoreapp2.1/MyCore.xml b/MyCore/bin/Debug/netcoreapp2.1/MyCore.xml index 4399122..5507925 100644 --- a/MyCore/bin/Debug/netcoreapp2.1/MyCore.xml +++ b/MyCore/bin/Debug/netcoreapp2.1/MyCore.xml @@ -8,11 +8,16 @@ Retrieve all SmartPrinterMessage + Id of the smart printer message It's the method to post data from mqtt broker to Database (Thanks Rpi!) + Id of the device to upload to DB + Content that will be uploaded + Content successfully posted to DB + Unexpected error diff --git a/MyCore/obj/Debug/netcoreapp2.1/MyCore.csproj.FileListAbsolute.txt b/MyCore/obj/Debug/netcoreapp2.1/MyCore.csproj.FileListAbsolute.txt index 1b1821f..eab1dda 100644 --- a/MyCore/obj/Debug/netcoreapp2.1/MyCore.csproj.FileListAbsolute.txt +++ b/MyCore/obj/Debug/netcoreapp2.1/MyCore.csproj.FileListAbsolute.txt @@ -19,7 +19,6 @@ C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\bin\Debug\netcoreapp2.1\ C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\bin\Debug\netcoreapp2.1\MyCore.runtimeconfig.json C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\bin\Debug\netcoreapp2.1\MyCore.runtimeconfig.dev.json C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\bin\Debug\netcoreapp2.1\MyCore.dll -C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.csprojAssemblyReference.cache C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.csproj.CoreCompileInputs.cache C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.RazorAssemblyInfo.cache C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.RazorAssemblyInfo.cs @@ -32,3 +31,4 @@ C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\bin\Debug\netcoreapp2.1\ C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.dll C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.pdb C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\UserSecretsAssemblyInfo.cs +C:\Users\thoma\OneDrive\Documents\Travail\MyCore\MyCore\obj\Debug\netcoreapp2.1\MyCore.csprojAssemblyReference.cache diff --git a/MyCore/obj/Debug/netcoreapp2.1/MyCore.xml b/MyCore/obj/Debug/netcoreapp2.1/MyCore.xml index 4399122..5507925 100644 --- a/MyCore/obj/Debug/netcoreapp2.1/MyCore.xml +++ b/MyCore/obj/Debug/netcoreapp2.1/MyCore.xml @@ -8,11 +8,16 @@ Retrieve all SmartPrinterMessage + Id of the smart printer message It's the method to post data from mqtt broker to Database (Thanks Rpi!) + Id of the device to upload to DB + Content that will be uploaded + Content successfully posted to DB + Unexpected error diff --git a/Screenshot_2.jpg b/Screenshot_2.jpg new file mode 100644 index 0000000..0c78dcc Binary files /dev/null and b/Screenshot_2.jpg differ diff --git a/pswdMongoDB.txt b/pswdMongoDB.txt new file mode 100644 index 0000000..3ede319 --- /dev/null +++ b/pswdMongoDB.txt @@ -0,0 +1,15 @@ +db.createUser( + { + user: "admin", + pwd: "MioTech4ever!", + roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] + } +) + +db.updateUser( "admin", + { + roles: [ { role: "userAdminAnyDatabase", db: "admin" }, +{ role: "readWrite", db: "BookstoreDb" }, +{ role: "readWrite", db: "MyCoreDb" } ] + } +) \ No newline at end of file diff --git a/swagger.json b/swagger.json new file mode 100644 index 0000000..2bfdff3 --- /dev/null +++ b/swagger.json @@ -0,0 +1 @@ +{"swagger":"2.0","info":{"version":"v1","title":"MyCoreApi"},"paths":{"/azure":{"post":{"tags":["Azure"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["application/json"],"parameters":[{"name":"user","in":"body","required":false,"schema":{"$ref":"#/definitions/AzureADAuthModel"}}],"responses":{"200":{"description":"Success"}}}},"/api/books":{"get":{"tags":["Books"],"operationId":"Get","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Success","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Book"}}}}},"post":{"tags":["Books"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"book","in":"body","required":false,"schema":{"$ref":"#/definitions/Book"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Book"}}}}},"/api/books/{id}":{"get":{"tags":["Books"],"operationId":"GetBook","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"id","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Book"}}}},"put":{"tags":["Books"],"operationId":"Update","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"id","in":"path","required":true,"type":"string"},{"name":"bookIn","in":"body","required":false,"schema":{"$ref":"#/definitions/Book"}}],"responses":{"200":{"description":"Success"}}},"delete":{"tags":["Books"],"operationId":"Delete","consumes":[],"produces":[],"parameters":[{"name":"id","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"}}}},"/facebook":{"post":{"tags":["Facebook"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["application/json"],"parameters":[{"name":"user","in":"body","required":false,"schema":{"$ref":"#/definitions/FacebookAuthModel"}}],"responses":{"200":{"description":"Success"}}}},"/google":{"post":{"tags":["Google"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["application/json"],"parameters":[{"name":"user","in":"body","required":false,"schema":{"$ref":"#/definitions/GoogleAuthModel"}}],"responses":{"200":{"description":"Success"}}}},"/api/iot/smartprinter/{idDevice}":{"get":{"tags":["IOT"],"summary":"Retrieve all SmartPrinterMessage","operationId":"GetSmartPrinterMessages","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"id","in":"query","description":"Id of the smart printer message","required":false,"type":"integer","format":"int32"},{"name":"idDevice","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/SmartPrinterMessage"}}}}},"post":{"tags":["IOT"],"summary":"It's the method to post data from mqtt broker to Database (Thanks Rpi!)","operationId":"PostToDBPrinter","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"idDevice","in":"path","description":"Id of the device to upload to DB","required":true,"type":"integer","format":"int32"},{"name":"content","in":"body","description":"Content that will be uploaded","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/SmartPrinterMessage"}}}],"responses":{"200":{"description":"Success"},"201":{"description":"Content successfully posted to DB"},"500":{"description":"Unexpected error"}}}},"/api/iot/smartgarden/{idDevice}":{"post":{"tags":["IOT"],"summary":"It's the method to post data from mqtt broker to Database (Thanks Rpi!)","operationId":"PostToDBSmartGarden","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"idDevice","in":"path","required":true,"type":"integer","format":"int32"},{"name":"content","in":"body","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/SmartGardenMessage"}}}],"responses":{"200":{"description":"Success"}}}},"/api/mqtt":{"get":{"tags":["MQTT"],"summary":"It's a mqtt publish test ! :)","operationId":"GetToPublishMqtt","consumes":[],"produces":[],"parameters":[],"responses":{"200":{"description":"Success"}}}},"/api/token":{"post":{"tags":["Token"],"operationId":"Create","consumes":[],"produces":[],"parameters":[{"name":"username","in":"query","required":false,"type":"string"},{"name":"password","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success"}}}},"/token":{"post":{"tags":["Token"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["application/json"],"parameters":[{"name":"user","in":"body","required":false,"schema":{"$ref":"#/definitions/User"}}],"responses":{"200":{"description":"Success"}}}},"/twitter":{"post":{"tags":["Twitter"],"operationId":"Create","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["application/json"],"parameters":[{"name":"user","in":"body","required":false,"schema":{"$ref":"#/definitions/TwitterAuthModel"}}],"responses":{"200":{"description":"Success"}}}},"/api/test":{"get":{"tags":["Values"],"summary":"It's a test ! :)","operationId":"Get","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Success","schema":{"uniqueItems":false,"type":"array","items":{"type":"string"}}}}},"post":{"tags":["Values"],"operationId":"Post","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"value","in":"body","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success"}}}},"/api/test/{id}":{"get":{"tags":["Values"],"operationId":"Get","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"id","in":"path","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"type":"string"}}}},"put":{"tags":["Values"],"operationId":"Put","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"id","in":"path","required":true,"type":"integer","format":"int32"},{"name":"value","in":"body","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success"}}},"delete":{"tags":["Values"],"operationId":"Delete","consumes":[],"produces":[],"parameters":[{"name":"id","in":"path","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success"}}}}},"definitions":{"AzureADAuthModel":{"type":"object","properties":{"apiKey":{"type":"string"}}},"Book":{"type":"object","properties":{"id":{"type":"string"},"bookName":{"type":"string"},"price":{"format":"double","type":"number"},"category":{"type":"string"},"author":{"type":"string"}}},"FacebookAuthModel":{"type":"object","properties":{"userAccessToken":{"type":"string"}}},"GoogleAuthModel":{"type":"object","properties":{"authorizationCode":{"type":"string"},"apiKey":{"type":"string"}}},"SmartPrinterMessage":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"time":{"type":"string"},"temperature":{"format":"double","type":"number"},"pressure":{"format":"double","type":"number"},"smoke":{"format":"int32","type":"integer"}}},"SmartGardenMessage":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"time":{"type":"string"},"temperature":{"format":"double","type":"number"},"pressure":{"format":"double","type":"number"},"humidity":{"format":"double","type":"number"},"water":{"format":"int32","type":"integer"},"light":{"format":"int32","type":"integer"}}},"User":{"type":"object","properties":{"id":{"type":"string"},"password":{"type":"string"}}},"TwitterAuthModel":{"type":"object","properties":{"apiKey":{"type":"string"}}}},"securityDefinitions":{"Bearer":{"name":"Authorization","in":"header","type":"apiKey","description":"Please enter JWT with Bearer into field"}},"security":[{"Bearer":[]}]} \ No newline at end of file