Skip to content

Alice removes Bob from her followers collection

given: A new user called "alice"

given: A new user called "bob"

given: "bob" follows "alice"

when: "bob" sends "alice" a Follow Activity

outgoing.Follow
{
  "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
    "to": [
      "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw"
    ],
    "id": "follow:33d19c44-7550-42ef-89eb-ab50048b416c",
    "published": "2024-11-08T18:35:02Z",
    "object": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw"
  },
  "activity_type": "Follow"
}
incoming.Follow
{
  "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
    "to": [
      "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw"
    ],
    "id": "follow:33d19c44-7550-42ef-89eb-ab50048b416c",
    "published": "2024-11-08T18:35:02Z",
    "object": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw"
  },
  "activity_type": "Follow"
}

when: "alice" sends an Accept to this Follow Activity

outgoing.Accept
{
  "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
    "to": [
      "http://banach/actor/-SZctRfFYeFGVddeAxweIw"
    ],
    "published": "2024-11-08T18:35:03Z",
    "object": "follow:33d19c44-7550-42ef-89eb-ab50048b416c"
  },
  "activity_type": "Accept"
}
incoming.Accept
{
  "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
    "to": [
      "http://banach/actor/-SZctRfFYeFGVddeAxweIw"
    ],
    "published": "2024-11-08T18:35:03Z",
    "object": "follow:33d19c44-7550-42ef-89eb-ab50048b416c"
  },
  "activity_type": "Accept"
}

when: "alice" sends "bob" a Reject Follow Activity

outgoing.Reject
{
  "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Reject",
    "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
    "to": [
      "http://banach/actor/-SZctRfFYeFGVddeAxweIw"
    ],
    "published": "2024-11-08T18:35:03Z",
    "object": "follow:33d19c44-7550-42ef-89eb-ab50048b416c"
  },
  "activity_type": "Reject"
}
incoming.Reject
{
  "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Reject",
    "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
    "to": [
      "http://banach/actor/-SZctRfFYeFGVddeAxweIw"
    ],
    "published": "2024-11-08T18:35:03Z",
    "object": "follow:33d19c44-7550-42ef-89eb-ab50048b416c"
  },
  "activity_type": "Reject"
}

then: The "followers" collection of "alice" does not include "bob"

receive.alice
{
  "action": "fetch_result",
  "actor": "http://abel/actor/duIgVlslh1Pq1HU_XBtUbw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "http://abel/followers/on42Ho3MsRxhwnGXQ1-afg",
    "type": "OrderedCollection"
  }
}

then: The "following" collection of "bob" does not include "alice"

receive.bob
{
  "action": "fetch_result",
  "actor": "http://banach/actor/-SZctRfFYeFGVddeAxweIw",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "http://banach/following/LQQlyQFf8TYoLy6wAlLjBA",
    "type": "OrderedCollection"
  }
}