Skip to content

Commit

Permalink
Adding fields for specific bill actions as documented here:
Browse files Browse the repository at this point in the history
  • Loading branch information
lafritay committed Aug 5, 2017
1 parent 1de8fed commit c743c1c
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 1 deletion.
6 changes: 6 additions & 0 deletions ProPublicaCongressAPI.Contracts/SpecificBillAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,11 @@ public class SpecificBillAction
public DateTime DateTimeOccurred { get; set; }

public string Description { get; set; }

public int Id { get; set; }

public Chamber Chamber { get; set; }

public string ActionType { get; set; }
}
}
6 changes: 5 additions & 1 deletion ProPublicaCongressAPI/AutoMapperConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,13 @@ public static void Initialize()
{
return CreateDateTimeFromDateAndTime(source.DateVoted, source.TimeVoted);
}));
x.CreateMap<InternalModels.SpecificBillAction, Contracts.SpecificBillAction>()
.ForMember(dest => dest.DateTimeOccurred,
opts => opts.ResolveUsing<DateTimeResolver, string>(s => s.DateTimeOccurred));
opts => opts.ResolveUsing<DateTimeResolver, string>(s => s.DateTimeOccurred))
.ForMember(dest => dest.Chamber,
opts => opts.ResolveUsing<ChamberResolver, string>(s => s.Chamber));
x.CreateMap<InternalModels.SpecificBill, Contracts.SpecificBill>()
.ForMember(dest => dest.DateIntroduced,
opts => opts.ResolveUsing<DateTimeResolver, string>(s => s.DateIntroduced))
Expand Down
9 changes: 9 additions & 0 deletions ProPublicaCongressAPI/InternalModels/SpecificBillAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,14 @@ internal class SpecificBillAction

[JsonProperty("description")]
public string Description { get; set; }

[JsonProperty("id")]
public int Id { get; set; }

[JsonProperty("chamber")]
public string Chamber { get; set; }

[JsonProperty("action_type")]
public string ActionType { get; set; }
}
}
20 changes: 20 additions & 0 deletions ProPublicaCongressAPI/Resolvers/ChamberResolver.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using AutoMapper;
using ProPublicaCongressAPI.Contracts;
using System;

namespace ProPublicaCongressAPI.Resolvers
{
internal class ChamberResolver : IMemberValueResolver<object, object, string, Chamber>
{
public Chamber Resolve(object source, object destination, string sourceMember, Chamber destinationMember, ResolutionContext context)
{
Chamber chamber;
if (!Enum.TryParse<Chamber>(sourceMember, out chamber))
{
chamber = Chamber.Unknown;
}

return chamber;
}
}
}

0 comments on commit c743c1c

Please sign in to comment.