diff --git a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/AdminDto.cs b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/AdminDto.cs index a6f78be..985ff27 100644 --- a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/AdminDto.cs +++ b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/AdminDto.cs @@ -2,7 +2,7 @@ namespace MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; -public class CreateAdminDto +public class CreateUpdateAdminDto { public Guid Id { get; set; } public string? Extra { get; set; } diff --git a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MenteeDto.cs b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MenteeDto.cs index 4c61c2c..2ae1537 100644 --- a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MenteeDto.cs +++ b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MenteeDto.cs @@ -2,7 +2,7 @@ namespace MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; -public class CreateMenteeDto +public class CreateUpdateMenteeDto { public Guid Id { get; set; } public string? Extra { get; set; } diff --git a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MentorDto.cs b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MentorDto.cs index 822cd0e..ca10ad1 100644 --- a/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MentorDto.cs +++ b/backend/BuildingBlocks/MentorConnect.BuildingBlocks.SharedKernel/DTOs/Users/MentorDto.cs @@ -2,7 +2,7 @@ namespace MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; -public class CreateMentorDto +public class CreateUpdateMentorDto { public Guid Id { get; set; } public string? Extra { get; set; } diff --git a/backend/MentorConnect.API/MentorConnect.API.csproj b/backend/MentorConnect.API/MentorConnect.API.csproj index ea3c53d..8e8dcd3 100644 --- a/backend/MentorConnect.API/MentorConnect.API.csproj +++ b/backend/MentorConnect.API/MentorConnect.API.csproj @@ -16,6 +16,7 @@ all + diff --git a/backend/Modules/Users/MentorConnect.Users.API/Controllers/AdminControllers.cs b/backend/Modules/Users/MentorConnect.Users.API/Controllers/AdminControllers.cs new file mode 100644 index 0000000..e5072a2 --- /dev/null +++ b/backend/Modules/Users/MentorConnect.Users.API/Controllers/AdminControllers.cs @@ -0,0 +1,51 @@ +using System; +using MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; +using MentorConnect.Users.Application.Contracts; +using Microsoft.AspNetCore.Mvc; + +namespace MentorConnect.Users.API.Controllers; + +[Route("api/admins")] +[ApiController] +public class AdminControllers(IUserServices userServices) : ControllerBase +{ + private readonly IUserServices _userServices = userServices; + [HttpGet] + public async Task>> GetAdmins() + { + return await _userServices.GetAllAdmins(); + } + [HttpGet("{id:guid}")] + public async Task> GetAdminById([FromRoute] Guid id) + { + var allAdmins = await _userServices.GetAllAdmins(); + var result = allAdmins.FirstOrDefault(admin => admin.Id == id); + if (result == null) + { + return NotFound(); + } + return result; + } + [HttpPost] + public async Task> AddAdmin([FromBody] CreateUpdateAdminDto admin) + { + var result = await _userServices.AddAdmin(admin); + return result; + } + [HttpPut("{id:guid}")] + public async Task UpdateAdmin([FromRoute] Guid id, [FromBody] CreateUpdateAdminDto admin) + { + if (id != admin.Id) + { + return BadRequest(); + } + await _userServices.UpdateAdmin(admin); + return NoContent(); + } + [HttpDelete("{id:guid}")] + public async Task DeleteAdmin([FromRoute] Guid id) + { + await _userServices.DeleteAdmin(id); + return NoContent(); + } +} diff --git a/backend/Modules/Users/MentorConnect.Users.API/Controllers/Controllers.cs b/backend/Modules/Users/MentorConnect.Users.API/Controllers/Controllers.cs deleted file mode 100644 index 3890c8b..0000000 --- a/backend/Modules/Users/MentorConnect.Users.API/Controllers/Controllers.cs +++ /dev/null @@ -1,74 +0,0 @@ -using MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; -using MentorConnect.Users.Application.Contracts; -using MentorConnect.Users.Application.Services; -using MentorConnect.Users.Domain.Entities; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -namespace MentorConnect.Users.API.Controllers -{ - [Route("api/users")] - [ApiController] - public class UsersController(IUserServices userServices) : ControllerBase - { - private readonly IUserServices _userServices = userServices; - [HttpGet] - public async Task>> GetUsers() - { - return await _userServices.GetAllUsers(); - } - [HttpGet("mentors")] - public async Task>> GetMentors() - { - return await _userServices.GetAllMentors(); - } - [HttpGet("admins")] - public async Task>> GetAdmins() - { - return await _userServices.GetAllAdmins(); - } - [HttpGet("mentees")] - public async Task>> GetMentees() - { - return await _userServices.GetAllMentees(); - } - [HttpGet("{id}")] - public async Task> GetUserById([FromRoute] Guid id) - { - GetUserDto? user = await _userServices.GetUserById(id); - if (user == null) - { - return NotFound(); - } - return user; - } - [HttpPost] - public async Task> AddUser([FromBody] CreateUserDto user) - { - var result = await _userServices.AddUser(user); - return result; - } - [HttpPost("admins")] - public async Task> AddAdmin([FromBody] CreateAdminDto admin) - { - var result = await _userServices.AddAdmin(admin); - return result; - } - [HttpPut("{id}")] - public async Task UpdateUser([FromRoute] Guid id, [FromBody] UpdateUserDto user) - { - if (id != user.Id) - { - return BadRequest(); - } - await _userServices.UpdateUser(user); - return NoContent(); - } - [HttpDelete("{id}")] - public async Task DeleteUser([FromRoute] Guid id) - { - await _userServices.DeleteUser(id); - return NoContent(); - } - } -} diff --git a/backend/Modules/Users/MentorConnect.Users.API/Controllers/MenteeControllers.cs b/backend/Modules/Users/MentorConnect.Users.API/Controllers/MenteeControllers.cs new file mode 100644 index 0000000..34477a9 --- /dev/null +++ b/backend/Modules/Users/MentorConnect.Users.API/Controllers/MenteeControllers.cs @@ -0,0 +1,50 @@ +using System; +using MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; +using MentorConnect.Users.Application.Contracts; +using Microsoft.AspNetCore.Mvc; +namespace MentorConnect.Users.API.Controllers; + +[Route("api/mentees")] +[ApiController] +public class MenteeControllers(IUserServices userServices) : ControllerBase +{ + private readonly IUserServices _userServices = userServices; + [HttpGet] + public async Task>> GetMentees() + { + return await _userServices.GetAllMentees(); + } + [HttpGet("{id:guid}")] + public async Task> GetMenteeById([FromRoute] Guid id) + { + var allMentees = await _userServices.GetAllMentees(); + var result = allMentees.FirstOrDefault(mentee => mentee.Id == id); + if (result == null) + { + return NotFound(); + } + return result; + } + [HttpPost] + public async Task> AddMentee([FromBody] CreateUpdateMenteeDto mentee) + { + var result = await _userServices.AddMentee(mentee); + return result; + } + [HttpPut("{id:guid}")] + public async Task UpdateMentee([FromRoute] Guid id, [FromBody] CreateUpdateMenteeDto mentee) + { + if (id != mentee.Id) + { + return BadRequest(); + } + await _userServices.UpdateMentee(mentee); + return NoContent(); + } + [HttpDelete("{id:guid}")] + public async Task DeleteMentee([FromRoute] Guid id) + { + await _userServices.DeleteMentee(id); + return NoContent(); + } +} \ No newline at end of file diff --git a/backend/Modules/Users/MentorConnect.Users.API/Controllers/MentorControllers.cs b/backend/Modules/Users/MentorConnect.Users.API/Controllers/MentorControllers.cs new file mode 100644 index 0000000..d63b883 --- /dev/null +++ b/backend/Modules/Users/MentorConnect.Users.API/Controllers/MentorControllers.cs @@ -0,0 +1,49 @@ +using System; +using MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; +using MentorConnect.Users.Application.Contracts; +using Microsoft.AspNetCore.Mvc; +namespace MentorConnect.Users.API.Controllers; +[Route("api/mentors")] +[ApiController] +public class MentorControllers(IUserServices userServices) : ControllerBase +{ + private readonly IUserServices _userServices = userServices; + [HttpGet] + public async Task>> GetMentors() + { + return await _userServices.GetAllMentors(); + } + [HttpGet("{id:guid}")] + public async Task> GetMentorById([FromRoute] Guid id) + { + var allMentors = await _userServices.GetAllMentors(); + var result = allMentors.FirstOrDefault(mentor => mentor.Id == id); + if (result == null) + { + return NotFound(); + } + return result; + } + [HttpPost] + public async Task> AddMentor([FromBody] CreateUpdateMentorDto mentor) + { + var result = await _userServices.AddMentor(mentor); + return result; + } + [HttpPut("{id:guid}")] + public async Task UpdateMentor([FromRoute] Guid id, [FromBody] CreateUpdateMentorDto mentor) + { + if (id != mentor.Id) + { + return BadRequest(); + } + await _userServices.UpdateMentor(mentor); + return NoContent(); + } + [HttpDelete("{id:guid}")] + public async Task DeleteMentor([FromRoute] Guid id) + { + await _userServices.DeleteMentor(id); + return NoContent(); + } +} \ No newline at end of file diff --git a/backend/Modules/Users/MentorConnect.Users.API/Controllers/UserControllers.cs b/backend/Modules/Users/MentorConnect.Users.API/Controllers/UserControllers.cs new file mode 100644 index 0000000..25b5031 --- /dev/null +++ b/backend/Modules/Users/MentorConnect.Users.API/Controllers/UserControllers.cs @@ -0,0 +1,51 @@ +using System; +using MentorConnect.BuildingBlocks.SharedKernel.DTOs.Users; +using MentorConnect.Users.Application.Contracts; +using Microsoft.AspNetCore.Mvc; + +namespace MentorConnect.Users.API.Controllers; + +[Route("api/users")] +[ApiController] +public class UserController(IUserServices userServices) : ControllerBase +{ + private readonly IUserServices _userServices = userServices; + [HttpGet] + public async Task>> GetUsers() + { + return await _userServices.GetAllUsers(); + } + + [HttpGet("{id:guid}")] + public async Task> GetUserById([FromRoute] Guid id) + { + GetUserDto? user = await _userServices.GetUserById(id); + if (user == null) + { + return NotFound(); + } + return user; + } + [HttpPost] + public async Task> AddUser([FromBody] CreateUserDto user) + { + var result = await _userServices.AddUser(user); + return result; + } + [HttpPut("{id:guid}")] + public async Task UpdateUser([FromRoute] Guid id, [FromBody] UpdateUserDto user) + { + if (id != user.Id) + { + return BadRequest(); + } + await _userServices.UpdateUser(user); + return NoContent(); + } + [HttpDelete("{id:guid}")] + public async Task DeleteUser([FromRoute] Guid id) + { + await _userServices.DeleteUser(id); + return NoContent(); + } +} diff --git a/backend/Modules/Users/MentorConnect.Users.Application/Contracts/IUserServices.cs b/backend/Modules/Users/MentorConnect.Users.Application/Contracts/IUserServices.cs index 2bad46d..1e6b97c 100644 --- a/backend/Modules/Users/MentorConnect.Users.Application/Contracts/IUserServices.cs +++ b/backend/Modules/Users/MentorConnect.Users.Application/Contracts/IUserServices.cs @@ -12,9 +12,15 @@ public interface IUserServices Task> GetAllAdmins(); Task GetUserById(Guid id); Task AddUser(CreateUserDto userInfo); - Task AddAdmin(CreateAdminDto adminInfo); - Task AddMentee(CreateMenteeDto menteeInfo); - Task AddMentor(CreateMentorDto mentorInfo); + Task AddAdmin(CreateUpdateAdminDto adminInfo); + Task AddMentee(CreateUpdateMenteeDto menteeInfo); + Task AddMentor(CreateUpdateMentorDto mentorInfo); Task UpdateUser(UpdateUserDto userInfo); Task DeleteUser(Guid id); + Task UpdateAdmin(CreateUpdateAdminDto adminInfo); + Task DeleteAdmin(Guid id); + Task UpdateMentor(CreateUpdateMentorDto mentorInfo); + Task DeleteMentor(Guid id); + Task UpdateMentee(CreateUpdateMenteeDto menteeInfo); + Task DeleteMentee(Guid id); } diff --git a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/AdminProfile.cs b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/AdminProfile.cs index e3e2b68..fa174c7 100644 --- a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/AdminProfile.cs +++ b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/AdminProfile.cs @@ -12,6 +12,6 @@ public AdminProfile() CreateMap() .ForMember(dest => dest.User, opt => opt.MapFrom(src => src.User)); CreateMap(); - CreateMap(); + CreateMap(); } } diff --git a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MenteeProfile.cs b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MenteeProfile.cs index 3ccb7a7..0dfaa96 100644 --- a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MenteeProfile.cs +++ b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MenteeProfile.cs @@ -12,6 +12,6 @@ public MenteeProfile() CreateMap() .ForMember(dest => dest.User, opt => opt.MapFrom(src => src.User)); CreateMap(); - CreateMap(); + CreateMap(); } } diff --git a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MentorProfile.cs b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MentorProfile.cs index b6ac06d..a4ff382 100644 --- a/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MentorProfile.cs +++ b/backend/Modules/Users/MentorConnect.Users.Application/Mapper/MentorProfile.cs @@ -12,6 +12,6 @@ public MentorProfile() CreateMap() .ForMember(dest => dest.User, opt => opt.MapFrom(src => src.User)); CreateMap(); - CreateMap(); + CreateMap(); } } diff --git a/backend/Modules/Users/MentorConnect.Users.Application/Services/UserServices.cs b/backend/Modules/Users/MentorConnect.Users.Application/Services/UserServices.cs index f1caacc..a4355b0 100644 --- a/backend/Modules/Users/MentorConnect.Users.Application/Services/UserServices.cs +++ b/backend/Modules/Users/MentorConnect.Users.Application/Services/UserServices.cs @@ -77,7 +77,7 @@ public async Task AddUser(CreateUserDto userInfo) } return result; } - public async Task AddAdmin(CreateAdminDto adminInfo) + public async Task AddAdmin(CreateUpdateAdminDto adminInfo) { var admin = _mapper.Map(adminInfo); admin.CreateTime(); @@ -85,7 +85,7 @@ public async Task AddAdmin(CreateAdminDto adminInfo) var result = _mapper.Map(admin); return result; } - public async Task AddMentor(CreateMentorDto mentorInfo) + public async Task AddMentor(CreateUpdateMentorDto mentorInfo) { var mentor = _mapper.Map(mentorInfo); mentor.CreateTime(); @@ -93,7 +93,7 @@ public async Task AddMentor(CreateMentorDto mentorInfo) var result = _mapper.Map(mentor); return result; } - public async Task AddMentee(CreateMenteeDto menteeInfo) + public async Task AddMentee(CreateUpdateMenteeDto menteeInfo) { var mentee = _mapper.Map(menteeInfo); mentee.CreateTime(); @@ -113,4 +113,33 @@ public async Task DeleteUser(Guid id) await _userRepository.DeleteAsync(id); } + public Task UpdateAdmin(CreateUpdateAdminDto adminInfo) + { + throw new NotImplementedException(); + } + + public Task DeleteAdmin(Guid id) + { + throw new NotImplementedException(); + } + + public Task UpdateMentor(CreateUpdateMentorDto mentorInfo) + { + throw new NotImplementedException(); + } + + public Task DeleteMentor(Guid id) + { + throw new NotImplementedException(); + } + + public Task UpdateMentee(CreateUpdateMenteeDto menteeInfo) + { + throw new NotImplementedException(); + } + + public Task DeleteMentee(Guid id) + { + throw new NotImplementedException(); + } }