Skip to content

Commit a2db2ba

Browse files
committed
Added expiration to assignments
1 parent 5275c57 commit a2db2ba

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

src/Helldivers-2-API/wwwroot/Helldivers-2-API.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,6 +1517,11 @@
15171517
"$ref": "#/components/schemas/Reward2"
15181518
}
15191519
]
1520+
},
1521+
"expiration": {
1522+
"type": "string",
1523+
"description": "The date when the assignment will expire.",
1524+
"format": "date-time"
15201525
}
15211526
}
15221527
},

src/Helldivers-2-Core/Mapping/V1/AssignmentMapper.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@ private Assignment MapToV1(Dictionary<string, Models.ArrowHead.Assignment> trans
4444
var titles = translations.Select(assignment => new KeyValuePair<string, string>(assignment.Key, assignment.Value.Setting.OverrideTitle));
4545
var briefings = translations.Select(assignment => new KeyValuePair<string, string>(assignment.Key, assignment.Value.Setting.OverrideBrief));
4646
var descriptions = translations.Select(assignment => new KeyValuePair<string, string>(assignment.Key, assignment.Value.Setting.TaskDescription));
47+
var expiration = translations.Select(assignment => DateTime.UtcNow.AddSeconds(assignment.Value.ExpiresIn)).FirstOrDefault();
4748

4849
return new Assignment(
4950
Id: invariant.Id32,
5051
Title: LocalizedMessage.FromStrings(titles),
5152
Briefing: LocalizedMessage.FromStrings(briefings),
5253
Description: LocalizedMessage.FromStrings(descriptions),
5354
Tasks: invariant.Setting.Tasks.Select(MapToV1).ToList(),
54-
Reward: MapToV1(invariant.Setting.Reward)
55+
Reward: MapToV1(invariant.Setting.Reward),
56+
Expiration: expiration
5557
);
5658
}
5759

src/Helldivers-2-Models/V1/Assignment.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ namespace Helldivers.Models.V1;
1414
/// <param name="Description">A very short summary of the description.</param>
1515
/// <param name="Tasks">A list of tasks that need to be completed for this assignment.</param>
1616
/// <param name="Reward">The reward for completing the assignment.</param>
17+
/// <param name="Expiration">The date when the assignment will expire.</param>
1718
public sealed record Assignment(
1819
long Id,
1920
LocalizedMessage Title,
2021
LocalizedMessage Briefing,
2122
LocalizedMessage Description,
2223
List<Task> Tasks,
23-
Reward Reward
24+
Reward Reward,
25+
DateTime Expiration
2426
);

0 commit comments

Comments
 (0)