diff options
author | TheArcaneBrony <myrainbowdash949@gmail.com> | 2023-06-13 20:25:05 +0200 |
---|---|---|
committer | TheArcaneBrony <myrainbowdash949@gmail.com> | 2023-06-13 20:25:05 +0200 |
commit | 712ad189c99570f686ab779782b2a873e172428e (patch) | |
tree | 6102e4719416e71522e9143fa4e06951258bd77c /MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs | |
parent | Fix passwords being visible during editing (diff) | |
download | MatrixUtils-712ad189c99570f686ab779782b2a873e172428e.tar.xz |
Change syntax style
Diffstat (limited to 'MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs')
-rw-r--r-- | MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs | 234 |
1 files changed, 105 insertions, 129 deletions
diff --git a/MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs b/MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs index 5df99f7..da7d569 100644 --- a/MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs +++ b/MatrixRoomUtils.Core/Responses/CreateRoomRequest.cs @@ -6,58 +6,56 @@ using MatrixRoomUtils.Core.Extensions; namespace MatrixRoomUtils.Core.Responses; -public class CreateRoomRequest -{ - [JsonPropertyName("name")] public string Name { get; set; } = null!; +public class CreateRoomRequest { + [JsonIgnore] public CreationContentBaseType _creationContentBaseType; + + public CreateRoomRequest() => _creationContentBaseType = new CreationContentBaseType(this); + + [JsonPropertyName("name")] + public string Name { get; set; } = null!; - [JsonPropertyName("room_alias_name")] public string RoomAliasName { get; set; } = null!; + [JsonPropertyName("room_alias_name")] + public string RoomAliasName { get; set; } = null!; //we dont want to use this, we want more control // [JsonPropertyName("preset")] // public string Preset { get; set; } = null!; - [JsonPropertyName("initial_state")] public List<StateEvent> InitialState { get; set; } = null!; - [JsonPropertyName("visibility")] public string Visibility { get; set; } = null!; + [JsonPropertyName("initial_state")] + public List<StateEvent> InitialState { get; set; } = null!; + + [JsonPropertyName("visibility")] + public string Visibility { get; set; } = null!; [JsonPropertyName("power_level_content_override")] public PowerLevelEvent PowerLevelContentOverride { get; set; } = null!; - [JsonPropertyName("creation_content")] public JsonObject CreationContent { get; set; } = new(); + [JsonPropertyName("creation_content")] + public JsonObject CreationContent { get; set; } = new(); /// <summary> - /// For use only when you can't use the CreationContent property + /// For use only when you can't use the CreationContent property /// </summary> - public StateEvent this[string event_type, string event_key = ""] - { + public StateEvent this[string event_type, string event_key = ""] { get => InitialState.First(x => x.Type == event_type && x.StateKey == event_key); - set - { + set { var stateEvent = InitialState.FirstOrDefault(x => x.Type == event_type && x.StateKey == event_key); if (stateEvent == null) - { InitialState.Add(value); - } else - { InitialState[InitialState.IndexOf(stateEvent)] = value; - } } } //extra properties [JsonIgnore] - public string HistoryVisibility - { - get - { + public string HistoryVisibility { + get { var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.history_visibility"); - if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + if (stateEvent == null) { + InitialState.Add(new StateEvent { Type = "m.room.history_visibility", - Content = new JsonObject() - { + Content = new JsonObject { ["history_visibility"] = "shared" } }); @@ -66,22 +64,16 @@ public class CreateRoomRequest return stateEvent.ContentAsJsonNode["history_visibility"].GetValue<string>(); } - set - { + set { var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.history_visibility"); if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + InitialState.Add(new StateEvent { Type = "m.room.history_visibility", - Content = new JsonObject() - { + Content = new JsonObject { ["history_visibility"] = value } }); - } - else - { + else { var v = stateEvent.ContentAsJsonNode; v["history_visibility"] = value; stateEvent.ContentAsJsonNode = v; @@ -90,18 +82,13 @@ public class CreateRoomRequest } [JsonIgnore] - public string RoomIcon - { - get - { + public string RoomIcon { + get { var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.avatar"); - if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + if (stateEvent == null) { + InitialState.Add(new StateEvent { Type = "m.room.avatar", - Content = new JsonObject() - { + Content = new JsonObject { ["url"] = "" } }); @@ -110,22 +97,16 @@ public class CreateRoomRequest return stateEvent.ContentAsJsonNode["url"].GetValue<string>(); } - set - { + set { var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.avatar"); if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + InitialState.Add(new StateEvent { Type = "m.room.avatar", - Content = new JsonObject() - { + Content = new JsonObject { ["url"] = value } }); - } - else - { + else { var v = stateEvent.ContentAsJsonNode; v["url"] = value; stateEvent.ContentAsJsonNode = v; @@ -177,64 +158,50 @@ public class CreateRoomRequest // } // } - public ServerACL ServerACLs - { - get - { + public ServerACL ServerACLs { + get { var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.server_acl"); - if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + if (stateEvent == null) { + InitialState.Add(new StateEvent { Type = "m.room.server_acl", - Content = new JsonObject() - { - ["allow"] = new JsonArray() - { + Content = new JsonObject { + ["allow"] = new JsonArray { "*" }, ["deny"] = new JsonArray() } }); - return new ServerACL() - { - Allow = new List<string>() - { + return new ServerACL { + Allow = new List<string> { "*" }, Deny = new List<string>(), AllowIpLiterals = true }; } - return new ServerACL() - { - Allow = JsonSerializer.Deserialize<List<string>>(stateEvent.ContentAsJsonNode["allow"]), - Deny = JsonSerializer.Deserialize<List<string>>(stateEvent.ContentAsJsonNode["deny"]), + + return new ServerACL { + Allow = stateEvent.ContentAsJsonNode["allow"].Deserialize<List<string>>(), + Deny = stateEvent.ContentAsJsonNode["deny"].Deserialize<List<string>>(), AllowIpLiterals = true }; } - set - { + set { Console.WriteLine($"Setting server acl to {value.ToJson()}"); var stateEvent = InitialState.FirstOrDefault(x => x.Type == "m.room.server_acl"); if (stateEvent == null) - { - InitialState.Add(new StateEvent() - { + InitialState.Add(new StateEvent { Type = "m.room.server_acl", - Content = new JsonObject() - { - ["allow"] = JsonArray.Parse(JsonSerializer.Serialize(value.Allow)), - ["deny"] = JsonArray.Parse(JsonSerializer.Serialize(value.Deny)) - ["allow_ip_literals"] = value.AllowIpLiterals + Content = new JsonObject { + ["allow"] = JsonNode.Parse(JsonSerializer.Serialize(value.Allow)), + ["deny"] = JsonNode.Parse(JsonSerializer.Serialize(value.Deny)) + ["allow_ip_literals"] = value.AllowIpLiterals } }); - } - else - { + else { var v = stateEvent.ContentAsJsonNode; - v["allow"] = JsonArray.Parse(JsonSerializer.Serialize(value.Allow)); - v["deny"] = JsonArray.Parse(JsonSerializer.Serialize(value.Deny)); + v["allow"] = JsonNode.Parse(JsonSerializer.Serialize(value.Allow)); + v["deny"] = JsonNode.Parse(JsonSerializer.Serialize(value.Deny)); v["allow_ip_literals"] = value.AllowIpLiterals; stateEvent.ContentAsJsonNode = v; Console.WriteLine($"v={v.ToJson()}"); @@ -243,14 +210,7 @@ public class CreateRoomRequest } } - - [JsonIgnore] public CreationContentBaseType _creationContentBaseType; - - public CreateRoomRequest() => _creationContentBaseType = new(this); - - - public Dictionary<string, string> Validate() - { + public Dictionary<string, string> Validate() { Dictionary<string, string> errors = new(); if (!Regex.IsMatch(RoomAliasName, @"[a-zA-Z0-9_\-]+$")) errors.Add("room_alias_name", "Room alias name must only contain letters, numbers, underscores, and hyphens."); @@ -259,49 +219,65 @@ public class CreateRoomRequest } } -public class CreationContentBaseType -{ +public class CreationContentBaseType { private readonly CreateRoomRequest createRoomRequest; - public CreationContentBaseType(CreateRoomRequest createRoomRequest) - { - this.createRoomRequest = createRoomRequest; - } + public CreationContentBaseType(CreateRoomRequest createRoomRequest) => this.createRoomRequest = createRoomRequest; [JsonPropertyName("type")] - public string Type - { + public string Type { get => (string)createRoomRequest.CreationContent["type"]; - set - { + set { if (value is "null" or "") createRoomRequest.CreationContent.Remove("type"); else createRoomRequest.CreationContent["type"] = value; } } } -public class PowerLevelEvent -{ - [JsonPropertyName("ban")] public int Ban { get; set; } // = 50; - [JsonPropertyName("events_default")] public int EventsDefault { get; set; } // = 0; - [JsonPropertyName("events")] public Dictionary<string, int> Events { get; set; } // = null!; - [JsonPropertyName("invite")] public int Invite { get; set; } // = 50; - [JsonPropertyName("kick")] public int Kick { get; set; } // = 50; - [JsonPropertyName("notifications")] public NotificationsPL NotificationsPl { get; set; } // = null!; - [JsonPropertyName("redact")] public int Redact { get; set; } // = 50; - [JsonPropertyName("state_default")] public int StateDefault { get; set; } // = 50; - [JsonPropertyName("users")] public Dictionary<string, int> Users { get; set; } // = null!; - [JsonPropertyName("users_default")] public int UsersDefault { get; set; } // = 0; +public class PowerLevelEvent { + [JsonPropertyName("ban")] + public int Ban { get; set; } // = 50; + + [JsonPropertyName("events_default")] + public int EventsDefault { get; set; } // = 0; + + [JsonPropertyName("events")] + public Dictionary<string, int> Events { get; set; } // = null!; + + [JsonPropertyName("invite")] + public int Invite { get; set; } // = 50; + + [JsonPropertyName("kick")] + public int Kick { get; set; } // = 50; + + [JsonPropertyName("notifications")] + public NotificationsPL NotificationsPl { get; set; } // = null!; + + [JsonPropertyName("redact")] + public int Redact { get; set; } // = 50; + + [JsonPropertyName("state_default")] + public int StateDefault { get; set; } // = 50; + + [JsonPropertyName("users")] + public Dictionary<string, int> Users { get; set; } // = null!; + + [JsonPropertyName("users_default")] + public int UsersDefault { get; set; } // = 0; } -public class NotificationsPL -{ - [JsonPropertyName("room")] public int Room { get; set; } = 50; +public class NotificationsPL { + [JsonPropertyName("room")] + public int Room { get; set; } = 50; } -public class ServerACL -{ - [JsonPropertyName("allow")] public List<string> Allow { get; set; } // = null!; - [JsonPropertyName("deny")] public List<string> Deny { get; set; } // = null!; - [JsonPropertyName("allow_ip_literals")] public bool AllowIpLiterals { get; set; } // = false; +public class ServerACL { + [JsonPropertyName("allow")] + public List<string> Allow { get; set; } // = null!; + + [JsonPropertyName("deny")] + public List<string> Deny { get; set; } // = null!; + + [JsonPropertyName("allow_ip_literals")] + public bool AllowIpLiterals { get; set; } // = false; } \ No newline at end of file |