From 6c5b0278ebaf6a898f5200226991e44354dd2f74 Mon Sep 17 00:00:00 2001 From: griffri Date: Tue, 13 Feb 2024 10:55:44 +0000 Subject: [PATCH 1/2] Add DefaultDeliveryChannel Hydra class --- .../DLCS.HydraModel/DefaultDeliveryChannel.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs diff --git a/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs b/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs new file mode 100644 index 000000000..6fe9ecd84 --- /dev/null +++ b/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs @@ -0,0 +1,44 @@ +using Hydra; +using Hydra.Model; +using Newtonsoft.Json; + +namespace DLCS.HydraModel; + +[HydraClass(typeof(DefaultDeliveryChannelClass), + Description = "Assets that have not been assigned any delivery channels will use any matching " + + "default delivery channels configured in the customer or containing space.", + UriTemplate = "/customers/{0}/defaultDeliveryChannels/{1}, /customers/{0}/spaces/{1}/defaultDeliveryChannels/{2}")] +public class DefaultDeliveryChannel : DlcsResource +{ + [RdfProperty(Description = "The name of the DLCS delivery channel this is based on.", + Range = Names.XmlSchema.String, ReadOnly = false, WriteOnly = false)] + [JsonProperty(Order = 11, PropertyName = "channel")] + public string? Channel { get; set; } + + [HydraLink(Description = "The policy assigned to this default delivery channel.", + Range = "vocab:deliveryChannelPolicy", ReadOnly = false, WriteOnly = false)] + [JsonProperty(Order = 12, PropertyName = "policy")] + public string? Policy { get; set; } + + [HydraLink(Description = "The asset media type matched by this default delivery channel.", + Range = Names.XmlSchema.String, ReadOnly = false, WriteOnly = false)] + [JsonProperty(Order = 12, PropertyName = "mediaType")] + public string? MediaType { get; set; } +} + +public class DefaultDeliveryChannelClass: Class +{ + string operationId = "_:defaultDeliveryChannel_"; + + public DefaultDeliveryChannelClass() + { + BootstrapViaReflection(typeof(DefaultDeliveryChannel)); + } + + public override void DefineOperations() + { + SupportedOperations = CommonOperations.GetStandardResourceOperations( + operationId, "Default Delivery Channel", Id, + "GET", "POST", "PUT"); + } +} \ No newline at end of file From 3f1a8d09072318b7605acf62510966490484e30b Mon Sep 17 00:00:00 2001 From: griffri Date: Wed, 14 Feb 2024 09:51:28 +0000 Subject: [PATCH 2/2] Add DELETE method --- src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs b/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs index 6fe9ecd84..76a7baa9a 100644 --- a/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs +++ b/src/protagonist/DLCS.HydraModel/DefaultDeliveryChannel.cs @@ -39,6 +39,6 @@ public override void DefineOperations() { SupportedOperations = CommonOperations.GetStandardResourceOperations( operationId, "Default Delivery Channel", Id, - "GET", "POST", "PUT"); + "GET", "POST", "PUT", "DELETE"); } } \ No newline at end of file