mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 17:51:20 +00:00
Fix usercontroller
This commit is contained in:
parent
90e27b6ae4
commit
c92db12495
17
MyCore.Interfaces/DTO/UserInfoDetailDTO.cs
Normal file
17
MyCore.Interfaces/DTO/UserInfoDetailDTO.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace MyCore.Interfaces.DTO
|
||||||
|
{
|
||||||
|
public class UserInfoDetailDTO
|
||||||
|
{
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Email { get; set; }
|
||||||
|
public string FirstName { get; set; }
|
||||||
|
public string LastName { get; set; }
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
|||||||
//using AspNetCore.Security.Jwt;
|
//using AspNetCore.Security.Jwt;
|
||||||
using MongoDB.Bson;
|
using MongoDB.Bson;
|
||||||
using MongoDB.Bson.Serialization.Attributes;
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
using MyCore.Interfaces.DTO;
|
||||||
using MyCore.Interfaces.Models;
|
using MyCore.Interfaces.Models;
|
||||||
|
|
||||||
namespace MyCore.Interfaces.Models
|
namespace MyCore.Interfaces.Models
|
||||||
@ -87,6 +88,17 @@ namespace MyCore.Interfaces.Models
|
|||||||
[BsonElement("DeviceIds")]
|
[BsonElement("DeviceIds")]
|
||||||
public ScreenDevice[] DeviceIds { get; set; }
|
public ScreenDevice[] DeviceIds { get; set; }
|
||||||
|
|
||||||
|
public UserInfoDetailDTO ToDTO()
|
||||||
|
{
|
||||||
|
return new UserInfoDetailDTO()
|
||||||
|
{
|
||||||
|
Id = Id,
|
||||||
|
Email = Email,
|
||||||
|
FirstName = FirstName,
|
||||||
|
LastName = LastName,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,8 @@ using MQTTnet.Server;
|
|||||||
using MyCore.Interfaces.Models;
|
using MyCore.Interfaces.Models;
|
||||||
using MyCore.Service.Services;
|
using MyCore.Service.Services;
|
||||||
using MyCore.Services;
|
using MyCore.Services;
|
||||||
|
using MyCore.Interfaces.DTO;
|
||||||
|
|
||||||
|
|
||||||
namespace MyCore.Controllers
|
namespace MyCore.Controllers
|
||||||
{
|
{
|
||||||
@ -32,11 +34,18 @@ namespace MyCore.Controllers
|
|||||||
/// Get a list of user
|
/// Get a list of user
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public ActionResult<IEnumerable<UserInfo>> Get()
|
public ObjectResult Get()
|
||||||
{
|
{
|
||||||
//return new string[] { "value1", "value2" };
|
try
|
||||||
//return _userService.GetUsers();
|
{
|
||||||
return null;
|
List<UserInfo> users = _userService.GetAll();
|
||||||
|
|
||||||
|
return new OkObjectResult(users);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -45,21 +54,26 @@ namespace MyCore.Controllers
|
|||||||
/// Get a specific user
|
/// Get a specific user
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">id user</param>
|
/// <param name="id">id user</param>
|
||||||
|
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public ActionResult<UserInfo> Get(string id)
|
public ObjectResult Get(string id)
|
||||||
{
|
{
|
||||||
if (id != null)
|
try
|
||||||
{
|
{
|
||||||
List<UserInfo> users = _userService.GetAll();
|
// TODO ! Add object id verification
|
||||||
|
UserInfo user = _userService.GetById(id);
|
||||||
|
|
||||||
if (!users.Select(u => u.Id).Contains(id))
|
if (user == null)
|
||||||
{
|
{
|
||||||
return Conflict("This user was not found");
|
return Conflict("This user was not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
return _userService.GetById(id);
|
return new OkObjectResult(user.ToDTO());
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
}
|
}
|
||||||
return StatusCode(500);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// POST: User/Create
|
// POST: User/Create
|
||||||
@ -67,8 +81,11 @@ namespace MyCore.Controllers
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public ActionResult<UserInfo> CreateUser([FromBody] UserInfo newUser)
|
public ObjectResult CreateUser([FromBody] UserInfo newUser)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
if (newUser != null)
|
if (newUser != null)
|
||||||
{
|
{
|
||||||
@ -84,9 +101,17 @@ namespace MyCore.Controllers
|
|||||||
|
|
||||||
UserInfo userCreated = _userService.Create(newUser);
|
UserInfo userCreated = _userService.Create(newUser);
|
||||||
|
|
||||||
return userCreated;
|
return new OkObjectResult(userCreated.ToDTO());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// TODO
|
||||||
|
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
}
|
}
|
||||||
return StatusCode(500);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,35 +119,52 @@ namespace MyCore.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
public ActionResult<UserInfo> UpdateUser([FromBody] UserInfo updatedUser)
|
public ObjectResult UpdateUser([FromBody] UserInfo updatedUser)
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO ! Add object id verification
|
||||||
|
|
||||||
if (updatedUser != null)
|
if (updatedUser != null)
|
||||||
{
|
{
|
||||||
List<UserInfo> users = _userService.GetAll();
|
UserInfo user = _userService.GetById(updatedUser.Id);
|
||||||
|
|
||||||
if (!users.Select(u => u.Email).Contains(updatedUser.Email))
|
if (user != null)
|
||||||
{
|
{
|
||||||
return NotFound("The user was not found");
|
return NotFound("The user was not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
UserInfo userModified = _userService.Update(updatedUser.Id, updatedUser);
|
UserInfo userModified = _userService.Update(updatedUser.Id, updatedUser);
|
||||||
|
|
||||||
return userModified;
|
return new OkObjectResult(userModified.ToDTO());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// TODO
|
||||||
|
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
}
|
}
|
||||||
return StatusCode(500);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// DELETE: User/Delete
|
// DELETE: User/Delete
|
||||||
[HttpDelete("{id}")]
|
[HttpDelete("{id}")]
|
||||||
public ActionResult DeleteUser(string id)
|
public ObjectResult DeleteUser(string id)
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO ! Add object id verification
|
||||||
|
|
||||||
if (id != null)
|
if (id != null)
|
||||||
{
|
{
|
||||||
List<UserInfo> users = _userService.GetAll();
|
UserInfo user = _userService.GetById(id);
|
||||||
|
|
||||||
if (!users.Select(u => u.Id).Contains(id))
|
if (user != null)
|
||||||
{
|
{
|
||||||
return NotFound("The user was not found");
|
return NotFound("The user was not found");
|
||||||
}
|
}
|
||||||
@ -131,7 +173,16 @@ namespace MyCore.Controllers
|
|||||||
|
|
||||||
return Accepted("The user has been deleted");
|
return Accepted("The user has been deleted");
|
||||||
}
|
}
|
||||||
return StatusCode(500);
|
else
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
|
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
|
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" />
|
||||||
<PackageReference Include="MongoDB.Driver" Version="2.8.0" />
|
<PackageReference Include="MongoDB.Driver" Version="2.11.5" />
|
||||||
<PackageReference Include="MQTTnet" Version="3.0.8" />
|
<PackageReference Include="MQTTnet" Version="3.0.8" />
|
||||||
<PackageReference Include="NSwag.AspNetCore" Version="13.9.2" />
|
<PackageReference Include="NSwag.AspNetCore" Version="13.9.2" />
|
||||||
<PackageReference Include="ServiceStack.Client" Version="5.8.0" />
|
<PackageReference Include="ServiceStack.Client" Version="5.8.0" />
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
"IIS Express": {
|
"IIS Express": {
|
||||||
"commandName": "IISExpress",
|
"commandName": "IISExpress",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"launchUrl": "api/test",
|
"launchUrl": "swagger",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_URLS": "http://*:5000/",
|
"ASPNETCORE_URLS": "http://*:5000/",
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user