-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathRegisterService.cs
More file actions
52 lines (43 loc) · 1.85 KB
/
RegisterService.cs
File metadata and controls
52 lines (43 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using Altinn.Register.Models;
using System;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading;
using System.Threading.Tasks;
using TokenGenerator.Services.Interfaces;
namespace TokenGenerator.Services;
public class RegisterService : IRegisterService
{
private readonly HttpClient httpClient;
public RegisterService(HttpClient httpClient)
{
this.httpClient = httpClient;
}
public async Task<(bool Success, Party Party)> GetEnvironmentIdentifiers(string env, string pid, string platformAccessToken, string subscriptionKey, CancellationToken cancellationToken)
{
string requestUri = $"https://platform.{env}.altinn.cloud/register/api/v1/access-management/parties/query?fields=user";
if (env.Equals("tt02", StringComparison.OrdinalIgnoreCase))
{
requestUri = $"https://platform.tt02.altinn.no/register/api/v1/access-management/parties/query?fields=user";
}
ListObject<string> body = ListObject.Create(new[] { pid });
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, requestUri)
{
Content = JsonContent.Create(body)
};
request.Headers.Add("PlatformAccessToken", platformAccessToken);
request.Headers.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead, cancellationToken);
if (response.IsSuccessStatusCode)
{
ListObject<Party> result = await response.Content.ReadFromJsonAsync<ListObject<Party>>(cancellationToken: cancellationToken);
if (result == null || !result.Items.Any())
{
return (false, null);
}
return (true, result.Items.First());
}
return (false, null);
}
}