using System.Net; using System.Net.Http.Json; using Demo.Domain.Models; using presence_client.DTO; using Microsoft.Extensions.Logging; using presence_client.ApiClients.Interfaces; namespace presence_client.ApiClients; public class UserApiClient : BaseApiClient, IUserApiClient { private const string BasePath = "api/Admin"; public UserApiClient(IHttpClientFactory httpClientFactory, ILogger logger) : base(httpClientFactory, logger) { } public async Task DeleteUserAsync(Guid userGuid) { try { var responce = await _httpClient.DeleteAsync($"{BasePath}/user?userGuid={userGuid}"); return responce.IsSuccessStatusCode; } catch (Exception ex) { _logger.LogError(ex, $"Error gg"); return false; } } public async Task UpdateUserFioAsync(Guid userGuid, string fio) { try { var request = new UpdateFio { Fio = fio }; var response = await _httpClient.PatchAsJsonAsync( $"{BasePath}/updatefio/user/{userGuid}", request, _jsonOptions); return response.IsSuccessStatusCode; } catch (Exception ex) { _logger.LogError(ex, "Error updating user FIO"); return false; } } public async Task DeleteUsersByGroupIdAsync(int groupId) { try { var responce = await _httpClient.DeleteAsync($"{BasePath}/usersbygroupid/{groupId}"); return responce.IsSuccessStatusCode; } catch (Exception ex) { _logger.LogError(ex, $"Error deleting users for group {groupId}"); return false; } } public async Task CreateUser(string fio, string groupName) { try { var request = new CreateUserRequest { Fio = fio, GroupName = groupName }; var response = await _httpClient.PostAsJsonAsync($"{BasePath}/usercreate", request, _jsonOptions); return response.IsSuccessStatusCode; } catch (Exception e) { _logger.LogError(e, "Error creating user"); return false; } } }