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