mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
add list's maintainer's lists to list details api endpoint
This commit is contained in:
parent
65d550e996
commit
cd121872e4
4 changed files with 30 additions and 22 deletions
|
|
@ -25,11 +25,11 @@ public async Task<IEnumerable<FilterListSummaryDto>> GetAllSummariesAsync()
|
|||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<FilterListDetailsDto> GetDetailsAsync(int id)
|
||||
public async Task<ListDetailsDto> GetDetailsAsync(int id)
|
||||
{
|
||||
return await filterListsDbContext.FilterLists
|
||||
.AsNoTracking()
|
||||
.ProjectTo<FilterListDetailsDto>()
|
||||
.ProjectTo<ListDetailsDto>()
|
||||
.FirstAsync(x => x.Id == id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FilterLists.Data.Entities;
|
||||
|
||||
namespace FilterLists.Services.FilterListService
|
||||
{
|
||||
public class FilterListDetailsDto
|
||||
public class ListDetailsDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Description { get; set; }
|
||||
|
|
@ -16,11 +15,27 @@ public class FilterListDetailsDto
|
|||
public string HomeUrl { get; set; }
|
||||
public string IssuesUrl { get; set; }
|
||||
public IEnumerable<string> Languages { get; set; }
|
||||
public IEnumerable<MaintainerDto> Maintainers { get; set; }
|
||||
public IEnumerable<ListMaintainerDto> Maintainers { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string PolicyUrl { get; set; }
|
||||
public DateTime? PublishedDate { get; set; }
|
||||
public string SubmissionUrl { get; set; }
|
||||
public string ViewUrl { get; set; }
|
||||
}
|
||||
|
||||
public class ListMaintainerDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string EmailAddress { get; set; }
|
||||
public string HomeUrl { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string TwitterHandle { get; set; }
|
||||
public IEnumerable<MaintainerAdditionalListsDto> AdditionalLists { get; set; }
|
||||
}
|
||||
|
||||
public class MaintainerAdditionalListsDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
namespace FilterLists.Services.FilterListService
|
||||
{
|
||||
public class MaintainerDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string EmailAddress { get; set; }
|
||||
public string HomeUrl { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string TwitterHandle { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,12 @@ public class MappingProfiles : Profile
|
|||
{
|
||||
public MappingProfiles()
|
||||
{
|
||||
CreateMap<FilterList, FilterListDetailsDto>()
|
||||
CreateMap<FilterList, FilterListSummaryDto>()
|
||||
.ForMember(dto => dto.Languages,
|
||||
conf => conf.MapFrom(list =>
|
||||
list.FilterListLanguages.Select(listLangs => listLangs.Language.Name)));
|
||||
|
||||
CreateMap<FilterList, ListDetailsDto>()
|
||||
.ForMember(dto => dto.Languages,
|
||||
conf => conf.MapFrom(list =>
|
||||
list.FilterListLanguages.Select(listLangs => listLangs.Language.Name)))
|
||||
|
|
@ -16,11 +21,10 @@ public MappingProfiles()
|
|||
conf => conf.MapFrom(list =>
|
||||
list.FilterListMaintainers.Select(listMaints => listMaints.Maintainer)));
|
||||
|
||||
//TODO: improve performance (https://stackoverflow.com/q/48897083/2343739)
|
||||
CreateMap<FilterList, FilterListSummaryDto>()
|
||||
.ForMember(dto => dto.Languages,
|
||||
conf => conf.MapFrom(list =>
|
||||
list.FilterListLanguages.Select(listLangs => listLangs.Language.Name)));
|
||||
CreateMap<Maintainer, ListMaintainerDto>()
|
||||
.ForMember(dto => dto.AdditionalLists,
|
||||
conf => conf.MapFrom(maint =>
|
||||
maint.FilterListMaintainers.Select(listMaints => listMaints.FilterList)));
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue