[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() =>
|
private string GenerateActivityId() =>
|
||||||
$"https://{config.Value.WebDomain}/activities/{Guid.NewGuid().ToString().ToLowerInvariant()}";
|
$"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()
|
public ASAccept RenderAccept(User followee, User follower, string requestId) => new()
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using Iceshrimp.Backend.Core.Configuration;
|
using Iceshrimp.Backend.Core.Configuration;
|
||||||
using J = Newtonsoft.Json.JsonPropertyAttribute;
|
using J = Newtonsoft.Json.JsonPropertyAttribute;
|
||||||
using JC = Newtonsoft.Json.JsonConverterAttribute;
|
using JC = Newtonsoft.Json.JsonConverterAttribute;
|
||||||
|
using JI = Newtonsoft.Json.JsonIgnoreAttribute;
|
||||||
|
|
||||||
namespace Iceshrimp.Backend.Core.Federation.ActivityStreams.Types;
|
namespace Iceshrimp.Backend.Core.Federation.ActivityStreams.Types;
|
||||||
|
|
||||||
|
@ -33,6 +34,24 @@ public class ASActivity : ASObject
|
||||||
public class ASCreate : ASActivity
|
public class ASCreate : ASActivity
|
||||||
{
|
{
|
||||||
public ASCreate() => Type = Types.Create;
|
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
|
public class ASDelete : ASActivity
|
||||||
|
@ -73,6 +92,25 @@ public class ASLike : ASActivity
|
||||||
public class ASUpdate : ASActivity
|
public class ASUpdate : ASActivity
|
||||||
{
|
{
|
||||||
public ASUpdate() => Type = Types.Update;
|
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
|
//TODO: add the rest
|
||||||
|
|
Loading…
Add table
Reference in a new issue