An event card joins and leaves the event
PrivaPub lets a persona join another server's event (owner decision 2026-10-05). The card of a remote event shows the persona's participation (pending, accepted, rejected) with Join or Leave, except for events by invitation or taken on another site. Joining is public on the event's server, so the first join asks the persona once, as reactions and votes do, remembered apart from them (PublicAct). The e2e joins the event SocialPub's Mobilizon scenario keeps, checks the participant on Mobilizon and PrivaPub's answer, and leaves it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
6f8472bc9f
commit
5e8fdc43af
12 files changed
+216
-15
No files matched your search
@@ -120,5 +120,7 @@ public static class APIs
|
||||
public static string GET_M_Cdn(string key) => $"api/privapub/v1/cdns/{Uri.EscapeDataString(key)}";
|
||||
|
||||
public static string GET_M_Provenance(string statusId) => $"api/privapub/v1/statuses/{Uri.EscapeDataString(statusId)}/provenance";
|
||||
public static string POST_M_Join(string statusId) => $"api/privapub/v1/statuses/{Uri.EscapeDataString(statusId)}/join";
|
||||
public static string POST_M_Leave(string statusId) => $"api/privapub/v1/statuses/{Uri.EscapeDataString(statusId)}/leave";
|
||||
}
|
||||
}
|
||||
@@ -73,9 +73,13 @@ public class PrivaPubEvent
|
||||
public string TimeZone { get; set; }
|
||||
public List<PrivaPubPlace> Places { get; set; } = [];
|
||||
public string OnlineUrl { get; set; }
|
||||
/// <summary>Mobilizon's: "free", "restricted" (the organiser approves), "invite" or "external" (not joined from here).</summary>
|
||||
public string JoinMode { get; set; }
|
||||
public int? Participants { get; set; }
|
||||
public int? Capacity { get; set; }
|
||||
public string Status { get; set; }
|
||||
/// <summary>The persona's own: "pending", "accepted" or "rejected"; null when it has not joined.</summary>
|
||||
public string Participation { get; set; }
|
||||
}
|
||||
|
||||
public class PrivaPubPlace
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
namespace decePubClient.Models;
|
||||
|
||||
/// <summary>
|
||||
/// The personas already told that their reactions and poll votes are public (owner decision, PrivaPub's ROADMAP: each
|
||||
/// persona is told once, before its first reaction or vote). Kept in localStorage under its type name.
|
||||
/// The personas already told that an act of theirs is public (owner decision, PrivaPub's ROADMAP: each persona is told
|
||||
/// once, before its first one): reactions and poll votes, and joining an event. Kept in localStorage under its type name.
|
||||
/// </summary>
|
||||
public class PublicActionNotices
|
||||
{
|
||||
/// <summary>Told about reactions and poll votes.</summary>
|
||||
public List<string> PersonaIds { get; set; } = [];
|
||||
/// <summary>Told about joining events.</summary>
|
||||
public List<string> EventPersonaIds { get; set; } = [];
|
||||
}
|
||||
|
||||
public enum PublicAct
|
||||
{
|
||||
Reaction = 0,
|
||||
Participation = 1
|
||||
}
|
||||
Reference in new issue
Block a user