mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 01:31:19 +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 MongoDB.Bson;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using MyCore.Interfaces.DTO;
|
||||
using MyCore.Interfaces.Models;
|
||||
|
||||
namespace MyCore.Interfaces.Models
|
||||
@ -87,6 +88,17 @@ namespace MyCore.Interfaces.Models
|
||||
[BsonElement("DeviceIds")]
|
||||
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.Service.Services;
|
||||
using MyCore.Services;
|
||||
using MyCore.Interfaces.DTO;
|
||||
|
||||
|
||||
namespace MyCore.Controllers
|
||||
{
|
||||
@ -32,11 +34,18 @@ namespace MyCore.Controllers
|
||||
/// Get a list of user
|
||||
/// </summary>
|
||||
[HttpGet]
|
||||
public ActionResult<IEnumerable<UserInfo>> Get()
|
||||
public ObjectResult Get()
|
||||
{
|
||||
//return new string[] { "value1", "value2" };
|
||||
//return _userService.GetUsers();
|
||||
return null;
|
||||
try
|
||||
{
|
||||
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
|
||||
/// </summary>
|
||||
/// <param name="id">id user</param>
|
||||
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||
[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 _userService.GetById(id);
|
||||
return new OkObjectResult(user.ToDTO());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||
}
|
||||
return StatusCode(500);
|
||||
}
|
||||
|
||||
// POST: User/Create
|
||||
@ -67,26 +81,37 @@ namespace MyCore.Controllers
|
||||
///
|
||||
/// </summary>
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||
[HttpPost]
|
||||
public ActionResult<UserInfo> CreateUser([FromBody] UserInfo newUser)
|
||||
public ObjectResult CreateUser([FromBody] UserInfo newUser)
|
||||
{
|
||||
if (newUser != null)
|
||||
try
|
||||
{
|
||||
newUser.Token = _tokenService.GenerateToken(newUser.Email).ToString();
|
||||
newUser.DateCreation = DateTime.Now;
|
||||
|
||||
List<UserInfo> users = _userService.GetAll();
|
||||
|
||||
if (users.Select(u => u.Email).Contains(newUser.Email))
|
||||
if (newUser != null)
|
||||
{
|
||||
return Conflict("This Email is already used");
|
||||
newUser.Token = _tokenService.GenerateToken(newUser.Email).ToString();
|
||||
newUser.DateCreation = DateTime.Now;
|
||||
|
||||
List<UserInfo> users = _userService.GetAll();
|
||||
|
||||
if (users.Select(u => u.Email).Contains(newUser.Email))
|
||||
{
|
||||
return Conflict("This Email is already used");
|
||||
}
|
||||
|
||||
UserInfo userCreated = _userService.Create(newUser);
|
||||
|
||||
return new OkObjectResult(userCreated.ToDTO());
|
||||
}
|
||||
else {
|
||||
// TODO
|
||||
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||
}
|
||||
|
||||
UserInfo userCreated = _userService.Create(newUser);
|
||||
|
||||
return userCreated;
|
||||
}
|
||||
return StatusCode(500);
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -94,44 +119,70 @@ namespace MyCore.Controllers
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[ProducesResponseType(typeof(UserInfoDetailDTO), 200)]
|
||||
[HttpPut]
|
||||
public ActionResult<UserInfo> UpdateUser([FromBody] UserInfo updatedUser)
|
||||
public ObjectResult UpdateUser([FromBody] UserInfo updatedUser)
|
||||
{
|
||||
if (updatedUser != null)
|
||||
try
|
||||
{
|
||||
List<UserInfo> users = _userService.GetAll();
|
||||
// TODO ! Add object id verification
|
||||
|
||||
if (!users.Select(u => u.Email).Contains(updatedUser.Email))
|
||||
if (updatedUser != null)
|
||||
{
|
||||
return NotFound("The user was not found");
|
||||
UserInfo user = _userService.GetById(updatedUser.Id);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
return NotFound("The user was not found");
|
||||
}
|
||||
|
||||
UserInfo userModified = _userService.Update(updatedUser.Id, updatedUser);
|
||||
|
||||
return new OkObjectResult(userModified.ToDTO());
|
||||
}
|
||||
else {
|
||||
// TODO
|
||||
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||
}
|
||||
|
||||
UserInfo userModified = _userService.Update(updatedUser.Id, updatedUser);
|
||||
|
||||
return userModified;
|
||||
}
|
||||
return StatusCode(500);
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// DELETE: User/Delete
|
||||
[HttpDelete("{id}")]
|
||||
public ActionResult DeleteUser(string id)
|
||||
public ObjectResult DeleteUser(string id)
|
||||
{
|
||||
if (id != null)
|
||||
try
|
||||
{
|
||||
List<UserInfo> users = _userService.GetAll();
|
||||
// TODO ! Add object id verification
|
||||
|
||||
if (!users.Select(u => u.Id).Contains(id))
|
||||
if (id != null)
|
||||
{
|
||||
return NotFound("The user was not found");
|
||||
UserInfo user = _userService.GetById(id);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
return NotFound("The user was not found");
|
||||
}
|
||||
|
||||
_userService.Remove(id);
|
||||
|
||||
return Accepted("The user has been deleted");
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO
|
||||
return new ObjectResult("An error has occurred") { StatusCode = 500 };
|
||||
}
|
||||
|
||||
_userService.Remove(id);
|
||||
|
||||
return Accepted("The user has been deleted");
|
||||
}
|
||||
return 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.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
|
||||
<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="NSwag.AspNetCore" Version="13.9.2" />
|
||||
<PackageReference Include="ServiceStack.Client" Version="5.8.0" />
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "api/test",
|
||||
"launchUrl": "swagger",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_URLS": "http://*:5000/",
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user