[backend/federation] Add To & Cc fields to create & update activities
This commit is contained in:
parent
d4d75f49ef
commit
be00d5237f
2 changed files with 50 additions and 4 deletions
|
@ -16,14 +16,22 @@ public class ActivityRenderer(
|
|||
private string GenerateActivityId() =>
|
||||
$"https://{config.Value.WebDomain}/activities/{Guid.NewGuid().ToString().ToLowerInvariant()}";
|
||||
|
||||
public static ASCreate RenderCreate(ASObject obj, ASObject actor) => new()
|
||||
public static ASCreate RenderCreate(ASNote obj, ASObject actor) => new()
|
||||
{
|
||||
Id = $"{obj.Id}#Create", Actor = ASActor.FromObject(actor), Object = obj
|
||||
Id = $"{obj.Id}#Create",
|
||||
Actor = ASActor.FromObject(actor),
|
||||
Object = obj,
|
||||
To = obj.To,
|
||||
Cc = obj.Cc
|
||||
};
|
||||
|
||||
public ASUpdate RenderUpdate(ASObject obj, ASObject actor) => new()
|
||||
public ASUpdate RenderUpdate(ASNote obj, ASObject actor) => new()
|
||||
{
|
||||
Id = GenerateActivityId(), Actor = ASActor.FromObject(actor), Object = obj
|
||||
Id = GenerateActivityId(),
|
||||
Actor = ASActor.FromObject(actor),
|
||||
Object = obj,
|
||||
To = obj.To,
|
||||
Cc = obj.Cc
|
||||
};
|
||||
|
||||
public ASAccept RenderAccept(User followee, User follower, string requestId) => new()
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using Iceshrimp.Backend.Core.Configuration;
|
||||
using J = Newtonsoft.Json.JsonPropertyAttribute;
|
||||
using JC = Newtonsoft.Json.JsonConverterAttribute;
|
||||
using JI = Newtonsoft.Json.JsonIgnoreAttribute;
|
||||
|
||||
namespace Iceshrimp.Backend.Core.Federation.ActivityStreams.Types;
|
||||
|
||||
|
@ -33,6 +34,24 @@ public class ASActivity : ASObject
|
|||
public class ASCreate : ASActivity
|
||||
{
|
||||
public ASCreate() => Type = Types.Create;
|
||||
|
||||
[J($"{Constants.ActivityStreamsNs}#to")]
|
||||
public List<ASObjectBase>? To { get; set; }
|
||||
|
||||
[J($"{Constants.ActivityStreamsNs}#cc")]
|
||||
public List<ASObjectBase>? Cc { get; set; }
|
||||
|
||||
[JI]
|
||||
public new ASNote? Object
|
||||
{
|
||||
get => base.Object as ASNote;
|
||||
set
|
||||
{
|
||||
base.Object = value;
|
||||
To = value?.To;
|
||||
Cc = value?.Cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ASDelete : ASActivity
|
||||
|
@ -73,6 +92,25 @@ public class ASLike : ASActivity
|
|||
public class ASUpdate : ASActivity
|
||||
{
|
||||
public ASUpdate() => Type = Types.Update;
|
||||
|
||||
[J($"{Constants.ActivityStreamsNs}#to")]
|
||||
public List<ASObjectBase>? To { get; set; }
|
||||
|
||||
[J($"{Constants.ActivityStreamsNs}#cc")]
|
||||
public List<ASObjectBase>? Cc { get; set; }
|
||||
|
||||
[J($"{Constants.ActivityStreamsNs}#object")]
|
||||
public new ASObject? Object
|
||||
{
|
||||
get => base.Object;
|
||||
set
|
||||
{
|
||||
base.Object = value;
|
||||
if (value is not ASNote note) return;
|
||||
To = note.To;
|
||||
Cc = note.Cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: add the rest
|
||||
|
|
Loading…
Add table
Reference in a new issue