about summary refs log tree commit diff
path: root/LibMatrix/Homeservers/ImplementationDetails/Synapse/Models/Requests/SynapseAdminRegistrationTokenCreateRequest.cs
blob: 197fd5d0241e2f68c6b22afa9d68f33eea935876 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System.Text.Json.Serialization;

namespace LibMatrix.Homeservers.ImplementationDetails.Synapse.Models.Responses;

public class SynapseAdminRegistrationTokenUpdateRequest {
    [JsonPropertyName("uses_allowed")]
    public int? UsesAllowed { get; set; }

    [JsonPropertyName("expiry_time")]
    public long? ExpiryTime { get; set; }

    [JsonIgnore]
    public DateTime? ExpiresAt {
        get => ExpiryTime.HasValue ? DateTimeOffset.FromUnixTimeMilliseconds(ExpiryTime.Value).DateTime : null;
        set => ExpiryTime = value.HasValue ? new DateTimeOffset(value.Value).ToUnixTimeMilliseconds() : null;
    }

    [JsonIgnore]
    public TimeSpan? ExpiresAfter {
        get => ExpiryTime.HasValue ? DateTimeOffset.FromUnixTimeMilliseconds(ExpiryTime.Value).DateTime - DateTimeOffset.Now : null;
        set => ExpiryTime = value.HasValue ? (DateTimeOffset.Now + value.Value).ToUnixTimeMilliseconds() : null;
    }
}

public class SynapseAdminRegistrationTokenCreateRequest : SynapseAdminRegistrationTokenUpdateRequest {
    [JsonPropertyName("token")]
    public string? Token { get; set; }

    [JsonPropertyName("length")]
    public int? Length { get; set; }
}