diff --git a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs index da6cd42..66392a8 100644 --- a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs +++ b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs @@ -1,4 +1,5 @@ using FamilyVaultServer.Services.PrivMx.Models.Params; +using FamilyVaultServer.Services.PrivMx.Models.Policy; using System.Text.Json.Serialization; namespace FamilyVaultServer.Services.PrivMx.Models.Parameters @@ -13,5 +14,7 @@ public class PrivMxCreateContextParameters : PrivMxRequestParameters public required string Description { get; set; } [JsonPropertyName("scope")] public required string Scope { get; set; } + [JsonPropertyName("policy")] + public required PrivMxPolicy Policy { get; set; } } -} +} diff --git a/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs new file mode 100644 index 0000000..65c497d --- /dev/null +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Services.PrivMx.Models.Policy +{ + public class PrivMxPolicy + { + [JsonPropertyName("thread")] + public required PrivMxThreadPolicy Thread { get; set; } + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs new file mode 100644 index 0000000..45d8a8d --- /dev/null +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Services.PrivMx.Models.Policy +{ + public class PrivMxThreadItemPolicy + { + + [JsonPropertyName("update")] + public required string Update { get; set; } + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs new file mode 100644 index 0000000..c65fbd5 --- /dev/null +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Services.PrivMx.Models.Policy +{ + public class PrivMxThreadPolicy + { + [JsonPropertyName("item")] + public required PrivMxThreadItemPolicy Item { get; set; } + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs index 032dd76..a5f2522 100644 --- a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs +++ b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs @@ -1,5 +1,6 @@ using FamilyVaultServer.Services.PrivMx.Models.Parameters; using FamilyVaultServer.Services.PrivMx.Models.Result; +using FamilyVaultServer.Utils; using Microsoft.Extensions.Options; namespace FamilyVaultServer.Services.PrivMx @@ -30,6 +31,7 @@ public async Task CreateContext(string name, string d Name = name, Description = description, Scope = scope, + Policy = Policies.Default }); } diff --git a/FamilyVaultServer/Utils/Policies.cs b/FamilyVaultServer/Utils/Policies.cs new file mode 100644 index 0000000..cac6b9d --- /dev/null +++ b/FamilyVaultServer/Utils/Policies.cs @@ -0,0 +1,15 @@ +using FamilyVaultServer.Services.PrivMx.Models.Policy; + +namespace FamilyVaultServer.Utils +{ + public static class Policies + { + public static PrivMxPolicy Default = new PrivMxPolicy + { + Thread = new PrivMxThreadPolicy + { + Item = new PrivMxThreadItemPolicy { Update = "all" } + } + }; + } +}