MC #2 User Controller (Add, Update, Get, Delete)

This commit is contained in:
ThomasFransolet 2019-08-18 15:12:36 +02:00
parent c6df9203d5
commit 68e0338fe7
10 changed files with 103 additions and 36 deletions

View File

@ -37,7 +37,7 @@ namespace MyCore.Controllers
if (IsValidUserAndPasswordCombination(email, password)) if (IsValidUserAndPasswordCombination(email, password))
{ {
UserInfo user = _userService.GetUser(email); UserInfo user = _userService.GetUserByEmail(email);
user.Token = _tokenService.GenerateToken(email).ToString(); user.Token = _tokenService.GenerateToken(email).ToString();
return user; return user;
@ -48,8 +48,19 @@ namespace MyCore.Controllers
private bool IsValidUserAndPasswordCombination(string email, string password) private bool IsValidUserAndPasswordCombination(string email, string password)
{ {
// Test if is database and is correct // Test if is database and is correct
if (email == "thomas.fransolet@hotmail.be" && password == "MonsieurMagic") { return true; } List<UserInfo> users = _userService.GetUsers();
else return false;
UserInfo user = users.Where(u => u.Email == email).FirstOrDefault();
if (user != null && user.Password == password)
{
return true;
}
return false;
/*if (email == "thomas.fransolet@hotmail.be" && password == "MonsieurMagic") { return true; }
else return false;*/
} }
} }

View File

@ -47,12 +47,18 @@ namespace MyCore.Controllers
[HttpGet("{id}")] [HttpGet("{id}")]
public ActionResult<UserInfo> Get(string id) public ActionResult<UserInfo> Get(string id)
{ {
UserInfo user = new UserInfo(); if (id != null)
user.FirstName = "Thomas"; {
user.Id = "01"; List<UserInfo> users = _userService.GetUsers();
return user;
//return _userService.GetUser(id);
if (!users.Select(u => u.Id).Contains(id))
{
return Conflict("This user was not found");
}
return _userService.GetUserById(id);
}
return StatusCode(500);
} }
// POST: User/Create // POST: User/Create
@ -66,6 +72,15 @@ namespace MyCore.Controllers
if (newUser != null) if (newUser != null)
{ {
newUser.Token = _tokenService.GenerateToken(newUser.Email).ToString(); newUser.Token = _tokenService.GenerateToken(newUser.Email).ToString();
newUser.DateCreation = DateTime.Now;
List<UserInfo> users = _userService.GetUsers();
if (users.Select(u => u.Email).Contains(newUser.Email))
{
return Conflict("This Email is already used");
}
UserInfo userCreated = _userService.CreateUser(newUser); UserInfo userCreated = _userService.CreateUser(newUser);
return userCreated; return userCreated;
@ -73,26 +88,49 @@ namespace MyCore.Controllers
return StatusCode(500); return StatusCode(500);
} }
/*
// POST api/values // PUT: User/Update
[HttpPost] /// <summary>
public void Post([FromBody] string value) ///
/// </summary>
[HttpPut]
public ActionResult<UserInfo> UpdateUser([FromBody] UserInfo updatedUser)
{ {
// For more information on protecting this API from Cross Site Request Forgery (CSRF) attacks, see https://go.microsoft.com/fwlink/?LinkID=717803 if (updatedUser != null)
{
List<UserInfo> users = _userService.GetUsers();
if (!users.Select(u => u.Email).Contains(updatedUser.Email))
{
return NotFound("The user was not found");
}
UserInfo userModified = _userService.Update(updatedUser.Id, updatedUser);
return userModified;
}
return StatusCode(500);
} }
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
// For more information on protecting this API from Cross Site Request Forgery (CSRF) attacks, see https://go.microsoft.com/fwlink/?LinkID=717803
}
// DELETE api/values/5 // DELETE: User/Delete
[HttpDelete("{id}")] [HttpDelete("{id}")]
public void Delete(int id) public ActionResult DeleteUser(string id)
{ {
// For more information on protecting this API from Cross Site Request Forgery (CSRF) attacks, see https://go.microsoft.com/fwlink/?LinkID=717803 if (id != null)
}*/ {
List<UserInfo> users = _userService.GetUsers();
if (!users.Select(u => u.Id).Contains(id))
{
return NotFound("The user was not found");
}
_userService.Remove(id);
return Accepted("The user has been deleted");
}
return StatusCode(500);
}
} }
} }

View File

@ -33,7 +33,10 @@ namespace MyCore.Models
public string Token { get; set; } public string Token { get; set; }
[BsonElement("Birthday")] [BsonElement("Birthday")]
public string Birthday { get; set; } public DateTime Birthday { get; set; }
[BsonElement("DateCreation")]
public DateTime DateCreation { get; set; }
[BsonElement("Address")] [BsonElement("Address")]
public string Address { get; set; } public string Address { get; set; }
@ -43,7 +46,10 @@ namespace MyCore.Models
[BsonElement("State")] [BsonElement("State")]
public string State { get; set; } public string State { get; set; }
[BsonElement("Country")]
public string Country { get; set; }
[BsonElement("Language")] [BsonElement("Language")]
public string Language { get; set; } public string Language { get; set; }

View File

@ -25,30 +25,32 @@ namespace MyCore.Services
return _Users.Find(m => true).ToList(); return _Users.Find(m => true).ToList();
} }
public UserInfo GetUser(string email) public UserInfo GetUserByEmail(string email)
{ {
return _Users.Find<UserInfo>(m => m.Email == email).FirstOrDefault(); return _Users.Find<UserInfo>(m => m.Email == email).FirstOrDefault();
} }
public UserInfo GetUserById(string id)
{
return _Users.Find<UserInfo>(m => m.Id == id).FirstOrDefault();
}
public UserInfo CreateUser(UserInfo user) public UserInfo CreateUser(UserInfo user)
{ {
_Users.InsertOne(user); _Users.InsertOne(user);
return user; return user;
} }
/*public void Update(string id, Book bookIn) public UserInfo Update(string id, UserInfo userIn)
{ {
_books.ReplaceOne(book => book.Id == id, bookIn); _Users.ReplaceOne(user => user.Id == id, userIn);
} return userIn;
public void Remove(Book bookIn)
{
_books.DeleteOne(book => book.Id == bookIn.Id);
} }
public void Remove(string id) public void Remove(string id)
{ {
_books.DeleteOne(book => book.Id == id); _Users.DeleteOne(user => user.Id == id);
}*/ }
} }
} }

View File

@ -72,6 +72,11 @@
</summary> </summary>
</member> </member>
<member name="M:MyCore.Controllers.UserController.UpdateUser(MyCore.Models.UserInfo)">
<summary>
</summary>
</member>
<member name="M:MyCore.Controllers.ValuesController.Get"> <member name="M:MyCore.Controllers.ValuesController.Get">
<summary> <summary>
It's a test ! :) It's a test ! :)

View File

@ -72,6 +72,11 @@
</summary> </summary>
</member> </member>
<member name="M:MyCore.Controllers.UserController.UpdateUser(MyCore.Models.UserInfo)">
<summary>
</summary>
</member>
<member name="M:MyCore.Controllers.ValuesController.Get"> <member name="M:MyCore.Controllers.ValuesController.Get">
<summary> <summary>
It's a test ! :) It's a test ! :)

File diff suppressed because one or more lines are too long