working requests
This commit is contained in:
parent
88b851b79a
commit
865dfea03d
3 changed files with 50 additions and 10 deletions
|
@ -1,4 +1,11 @@
|
|||
namespace Nyanbyte.PPCheck.Lib;
|
||||
using System.Data;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Nyanbyte.PPCheck.Lib.Models;
|
||||
|
||||
namespace Nyanbyte.PPCheck.Lib;
|
||||
|
||||
public class ApiClient : IDisposable
|
||||
{
|
||||
|
@ -7,6 +14,18 @@ public class ApiClient : IDisposable
|
|||
private readonly HttpClient _http;
|
||||
private readonly bool _isHttpExternal;
|
||||
|
||||
private static readonly JsonSerializerOptions _jsonOpts = new()
|
||||
{
|
||||
AllowTrailingCommas = false,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
IgnoreReadOnlyProperties = false,
|
||||
IncludeFields = false,
|
||||
NumberHandling = JsonNumberHandling.Strict,
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
ReadCommentHandling = JsonCommentHandling.Disallow,
|
||||
WriteIndented = false
|
||||
};
|
||||
|
||||
public ApiClient(HttpClient http)
|
||||
{
|
||||
_http = http;
|
||||
|
@ -21,6 +40,24 @@ public class ApiClient : IDisposable
|
|||
};
|
||||
}
|
||||
|
||||
public async Task<SearchResponse> Search(SearchRequest req)
|
||||
{
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, "persone/search");
|
||||
request.Headers.Add("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0");
|
||||
request.Headers.Add("Referer", "https://rps.ms.gov.pl/pl-PL/Public");
|
||||
request.Headers.Add("Accept", "application/json, text/plain, */*");
|
||||
request.Headers.Add("Accept-Language", "en-US,en;q=0.5");
|
||||
|
||||
request.Content = new StringContent(JsonSerializer.Serialize(req, _jsonOpts), null, "application/json");
|
||||
|
||||
var httpResponse = await _http.SendAsync(request);
|
||||
httpResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var resp = await httpResponse.Content.ReadFromJsonAsync<SearchResponse>() ?? throw new DataException("Invalid data returned.");
|
||||
|
||||
return resp;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
GC.SuppressFinalize(this);
|
||||
|
|
|
@ -8,7 +8,7 @@ public record OffenderInformation
|
|||
public int AnnotationCount { get; set; }
|
||||
|
||||
[JsonPropertyName("persones")]
|
||||
public ICollection<OffenderPersona> Personas { get; set; } = new List<OffenderPersona>();
|
||||
public ICollection<OffenderPersona> Personas { get; set; } = [];
|
||||
}
|
||||
|
||||
public record OffenderPersona
|
||||
|
@ -17,14 +17,17 @@ public record OffenderPersona
|
|||
public Guid PersonIdentityId { get; set; }
|
||||
public string FirstName { get; set; } = string.Empty;
|
||||
public string? SecondName { get; set; }
|
||||
public string LastName { get; set; }
|
||||
public string CityOfBirth { get; set; }
|
||||
public string LastName { get; set; } = string.Empty;
|
||||
public string CityOfBirth { get; set; } = string.Empty;
|
||||
public DateTime DateOfBirth { get; set; }
|
||||
public string FamilyName { get; set; }
|
||||
public char Sex { get; set; }
|
||||
public string FamilyName { get; set; } = string.Empty;
|
||||
public string? FathersName { get; set; }
|
||||
public string? MothersName { get; set; }
|
||||
public Sex Sex { get; set; }
|
||||
public string CountryOfBirth { get; set; }
|
||||
public string Nationalities { get; set; }
|
||||
public string DwellingPlace { get; set; }
|
||||
public string CountryOfBirth { get; set; } = string.Empty;
|
||||
public string Nationalities { get; set; } = string.Empty;
|
||||
public string DwellingPlace { get; set; } = string.Empty;
|
||||
|
||||
[JsonIgnore]
|
||||
public Sex OffenderSex => (Sex)Sex;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
namespace Nyanbyte.PPCheck.Lib.Models;
|
||||
|
||||
public record Response
|
||||
public record SearchResponse
|
||||
{
|
||||
public int Total { get; set; }
|
||||
public bool HasError { get; set; }
|
Loading…
Reference in a new issue