using System.Net; using System.Net.Http; using System.Net.Http.Json; using System.Text.Json.Serialization; using System.Threading.Tasks; using API.Database; using AutoMapper; using Microsoft.AspNetCore.Mvc; using Models.Classes; using Models.DTOs; using Newtonsoft.Json; namespace API.Service { public class UserService { private readonly DbRepository _dbRepository; private readonly Mapper _userMapper; public UserService(DevHiveContext context, IMapper mapper) { this._dbRepository = new DbRepository(context); this._userMapper = new Mapper(new MapperConfiguration(cfg => cfg.CreateMap())); } public async Task CreateUser(UserDTO userDTO) { //TODO: MAKE VALIDATIONS OF PROPER REQUEST User user = this._userMapper.Map(userDTO); await this._dbRepository.AddAsync(user); return HttpStatusCode.OK; } public async Task GetUserById(int id) { User user = await this._dbRepository.FindByIdAsync(id); return JsonConvert.SerializeObject(user); } public async Task UpdateUser(int id, UserDTO userDTO) { User user = this._userMapper.Map(userDTO); await this._dbRepository.EditAsync(id, user); return HttpStatusCode.OK; } public async Task DeleteUser(int id) { await this._dbRepository.DeleteAsync(id); return HttpStatusCode.OK; } } }