From 22fbce8d1cbc4dcf19a8598be27abcce7ec0cecf Mon Sep 17 00:00:00 2001
From: Petar Hristov <hristov@itc.rwth-aachen.de>
Date: Fri, 10 Jan 2025 11:23:48 +0000
Subject: [PATCH] Update: Responsible project organization extension and update
Coscine.ApiClient to version 1.9.4
---
src/KpiGenerator/KpiGenerator.csproj | 2 +-
.../MappingProfiles/MappingProfiles.cs | 11 ++++----
.../Models/ProjectOrganization.cs | 25 +++++++++++++++++++
src/KpiGenerator/Models/UserReport.cs | 2 --
4 files changed, 31 insertions(+), 9 deletions(-)
create mode 100644 src/KpiGenerator/Models/ProjectOrganization.cs
diff --git a/src/KpiGenerator/KpiGenerator.csproj b/src/KpiGenerator/KpiGenerator.csproj
index 31c784e..f530f38 100644
--- a/src/KpiGenerator/KpiGenerator.csproj
+++ b/src/KpiGenerator/KpiGenerator.csproj
@@ -21,7 +21,7 @@
<PackageReference Include="AutoMapper" Version="12.0.1" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
- <PackageReference Include="Coscine.ApiClient" Version="1.9.3" />
+ <PackageReference Include="Coscine.ApiClient" Version="1.9.4" />
<PackageReference Include="dotNetRdf.Core" Version="3.1.1" />
<PackageReference Include="GitLabApiClient" Version="1.8.1-beta.5" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
diff --git a/src/KpiGenerator/MappingProfiles/MappingProfiles.cs b/src/KpiGenerator/MappingProfiles/MappingProfiles.cs
index ca15d23..e09ef85 100644
--- a/src/KpiGenerator/MappingProfiles/MappingProfiles.cs
+++ b/src/KpiGenerator/MappingProfiles/MappingProfiles.cs
@@ -36,7 +36,6 @@ public class MappingProfiles : Profile
CreateMap<UserDto, UserReport>()
.ForMember(ur => ur.Disciplines, opt => opt.MapFrom(dto => dto.Disciplines))
- .ForMember(ur => ur.Institutes, opt => opt.MapFrom(dto => dto.Institutes))
.ForMember(ur => ur.LatestActivity, opt => opt.MapFrom(dto => dto.LatestActivity))
.ForMember(ur => ur.LoginProviders, opt => opt.MapFrom(dto => dto.Identities))
.ForMember(ur => ur.Organizations, opt => opt.MapFrom(dto => dto.Organizations))
@@ -50,11 +49,6 @@ public class MappingProfiles : Profile
.ForMember(lp => lp.Id, opt => opt.MapFrom(dto => dto.Id))
.ForMember(lp => lp.DisplayName, opt => opt.MapFrom(dto => dto.DisplayName));
- CreateMap<UserInstituteDto, Organization>()
- .ForMember(o => o.ReadOnly, opt => opt.MapFrom(dto => dto.ReadOnly))
- .ForMember(o => o.Name, opt => opt.MapFrom(dto => dto.DisplayName))
- .ForMember(o => o.RorUrl, opt => opt.MapFrom(dto => dto.Uri));
-
CreateMap<UserOrganizationDto, Organization>()
.ForMember(o => o.ReadOnly, opt => opt.MapFrom(dto => dto.ReadOnly))
.ForMember(o => o.Name, opt => opt.MapFrom(dto => dto.DisplayName))
@@ -63,6 +57,11 @@ public class MappingProfiles : Profile
CreateMap<OrganizationDto, Organization>()
.ForMember(o => o.Name, opt => opt.MapFrom(dto => dto.DisplayName))
.ForMember(o => o.RorUrl, opt => opt.MapFrom(dto => dto.Uri));
+
+ CreateMap<ProjectOrganizationDto, ProjectOrganization>()
+ .ForMember(po => po.Name, opt => opt.MapFrom(dto => dto.DisplayName))
+ .ForMember(po => po.RorUrl, opt => opt.MapFrom(dto => dto.Uri))
+ .ForMember(po => po.Responsible, opt => opt.MapFrom(dto => dto.Responsible));
CreateMap<VisibilityDto, ProjectVisibility>()
.ForMember(pv => pv.Id, opt => opt.MapFrom(dto => dto.Id))
diff --git a/src/KpiGenerator/Models/ProjectOrganization.cs b/src/KpiGenerator/Models/ProjectOrganization.cs
new file mode 100644
index 0000000..741e0d5
--- /dev/null
+++ b/src/KpiGenerator/Models/ProjectOrganization.cs
@@ -0,0 +1,25 @@
+using System.Text.Json.Serialization;
+
+namespace Coscine.KpiGenerator.Models;
+
+public record ProjectOrganization
+{
+ /// <summary>
+ /// Organizaiton name from GitLab project's description
+ /// </summary>
+ /// <example>RWTH Aachen University</example>
+ [JsonPropertyName("Name")]
+ public string Name { get; init; } = null!;
+
+ /// <summary>
+ /// Organizaiton ROR URL from GitLab project's title
+ /// </summary>
+ /// <example>https://ror.org/04xfq0f34</example>
+ [JsonPropertyName("RorUrl")]
+ public string RorUrl { get; init; } = null!;
+
+ /// <summary>
+ /// Determines if the organization is Responsible for a given project.
+ /// </summary>
+ public bool Responsible { get; set; }
+}
\ No newline at end of file
diff --git a/src/KpiGenerator/Models/UserReport.cs b/src/KpiGenerator/Models/UserReport.cs
index e21ff76..08fd01c 100644
--- a/src/KpiGenerator/Models/UserReport.cs
+++ b/src/KpiGenerator/Models/UserReport.cs
@@ -6,8 +6,6 @@ public record UserReport
public IReadOnlyList<Organization> Organizations { get; init; } = null!;
- public IReadOnlyList<Organization> Institutes { get; init; } = null!;
-
public IReadOnlyList<Discipline> Disciplines { get; init; } = null!;
public IReadOnlyList<LoginProvider> LoginProviders { get; init; } = null!;
--
GitLab