Skip to content

Commit cf137d3

Browse files
authored
Merge pull request #109 from dagstuan/newVarsomApi
Change Varsom API version. Add API support for IsTendency and EmergencyWarning.
2 parents a316649 + 7981825 commit cf137d3

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

SkredvarselGarminWeb/SkredvarselGarminWeb/Configuration/RefitConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public static void AddRefitClients(this IServiceCollection serviceCollection, Vi
4444
serviceCollection.AddRefitClient<IVarsomApi>(varsomApiSettings)
4545
.ConfigureHttpClient(c =>
4646
{
47-
c.BaseAddress = new Uri("https://api01.nve.no/hydrology/forecast/avalanche/v6.2.1/api");
47+
c.BaseAddress = new Uri("https://api01.nve.no/hydrology/forecast/avalanche/v6.3.0/api");
4848
})
4949
.AddPolicyHandler(retryPolicy)
5050
.AddPolicyHandler(timeoutPolicy);

SkredvarselGarminWeb/SkredvarselGarminWeb/Endpoints/Mappers/DetailedAvalancheWarningMapper.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,23 @@ public static class DetailedAvalancheWarningMapper
1414
varsomWarning.ValidTo,
1515
],
1616
MainText = varsomWarning.MainText,
17-
AvalancheProblems = varsomWarning.AvalancheProblems?.Select(problem => new AvalancheProblem()
17+
AvalancheProblems = (varsomWarning.AvalancheProblems ?? [])?.Select(problem => new AvalancheProblem()
1818
{
1919
TypeName = problem.AvalancheProblemTypeName,
2020
ExposedHeights = [
21-
problem.ExposedHeight1,
22-
problem.ExposedHeight2,
23-
problem.ExposedHeightFill,
24-
],
21+
problem.ExposedHeight1,
22+
problem.ExposedHeight2,
23+
problem.ExposedHeightFill,
24+
],
2525
ValidExpositions = problem.ValidExpositions,
2626
DangerLevel = problem.DangerLevel,
27-
})
28-
.OrderByDescending(x => x.DangerLevel)
29-
.ToList() ?? new List<AvalancheProblem>()
27+
}).OrderByDescending(x => x.DangerLevel),
28+
IsTendency = varsomWarning.IsTendency,
29+
EmergencyWarning = varsomWarning.EmergencyWarning.ToEmergencyWarning()
3030
};
31+
32+
private static string? ToEmergencyWarning(this string emergencyWarning) =>
33+
!emergencyWarning.Equals("ikke gitt", StringComparison.CurrentCultureIgnoreCase)
34+
? emergencyWarning
35+
: null;
3136
}

SkredvarselGarminWeb/SkredvarselGarminWeb/Endpoints/Models/DetailedAvalancheWarning.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Text.Json.Serialization;
2+
13
namespace SkredvarselGarminWeb.Endpoints.Models;
24

35
public class DetailedAvalancheWarning
@@ -7,6 +9,10 @@ public class DetailedAvalancheWarning
79
public required DateTime[] Validity { get; init; }
810
public required string MainText { get; init; }
911
public required IEnumerable<AvalancheProblem>? AvalancheProblems { get; init; }
12+
public required bool IsTendency { get; init; }
13+
14+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
15+
public required string? EmergencyWarning { get; init; }
1016
}
1117

1218
public class AvalancheProblem

SkredvarselGarminWeb/SkredvarselGarminWeb/VarsomApi/Models/VarsomDetailedAvalancheWarning.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class VarsomDetailedAvalancheWarning
88
public required string DangerLevel { get; init; }
99
public required string MainText { get; init; }
1010
public required IEnumerable<VarsomAvalancheProblem> AvalancheProblems { get; init; }
11+
public required string EmergencyWarning { get; init; }
12+
public required bool IsTendency { get; init; }
1113
}
1214

1315
public class VarsomAvalancheProblem

0 commit comments

Comments
 (0)