Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GROUPS: Contactable Daten der Gruppe in Gruppen-API #2537

Closed
4 of 5 tasks
Tracked by #301

Comments

@carlobeltrame
Copy link
Member

carlobeltrame commented Apr 2, 2024

!!! ACHTUNG: es gibt zu diesem Ticket einen PR in ALLEN wagons !!! (github verlinkt leider nur die ersten 10)

Als Person oder Applikation welche die JSON:API konsumiert
möchte ich die Contactable Eigenschaften der Gruppe abrufen,
um diese in hitobito als primäre Datenquelle zu behandeln.

Neu sollen social accounts, additional emails und phone numbers auch im Gruppen-Endpoint der JSON:API exponiert werden.

Mockup

GET /api/groups?include=additional_emails,social_accounts,phone_numbers

{
  "data": [
    {
      "id": "1",
      "type": "groups",
      "attributes": {
        // ...
      },
      "relationships": {
        "phone_numbers": {
          "data": [
            {
              "type": "phone_numbers",
              "id": "12345"
            }
          ]
        },
        "social_accounts": {
          "data": []
        },
        "additional_emails": {
          "data": []
        },
        // ...
      }
    },
    // ...
  ],
  "included": [
    {
      "id": "12345",
      "type": "phone_numbers",
      "attributes": {
        "label": "Privat",
        "public": true,
        "contactable_id": 1,
        "contactable_type": "Group",
        "number": "+41 44 123 45 67"
      }
    },
  "links": {
    "self": "/api/groups?include=additional_emails,social_accounts,phone_numbers&page%5Bnumber%5D=1\u0026page%5Bsize%5D=20",
    "first": "/api/groups?include=additional_emails,social_accounts,phone_numbers&page%5Bnumber%5D=1\u0026page%5Bsize%5D=20",
    "last": "/api/groups?include=additional_emails,social_accounts,phone_numbers&page%5Bnumber%5D=50\u0026page%5Bsize%5D=20",
    "next": "/api/groups?include=additional_emails,social_accounts,phone_numbers&page%5Bnumber%5D=2\u0026page%5Bsize%5D=20"
  },
  "meta": {}
}

Tech-Spec

  • Bei Personen exponieren wir diese Relations bereits, daher kann viel von der PersonResource abgeschaut werden
  • Die Berechtigungen fürs Lesen der related Entities werden in JsonApi::ContactAccountAbility berechnet, diese müssen ebenfalls erweitert werden
  • In diesem Ticket implementieren wir nur das Lesen dieser Daten auf Gruppen. Gruppen können bisher in der JSON:API noch nicht bearbeitet werden, daher müssen auch ihre Social Accounts etc. nicht bearbeitet werden können
  • Diese Änderung wird Auswirkungen auf die OpenAPI Spec haben, daher wird eine Änderung in jedem Wagon am Schema nötig sein
  • Die Relations sollen in der Liste von Gruppen und natürlich auch beim Abrufen einer einzelnen Gruppe ausgegeben werden

ToDo

  • Relations in GroupResource einfügen, analog PersonResource
  • Berechtigungen in JsonApi::ContactAccountAbility erweitern
  • API Specs für Groups Endpoints erweitern
  • Graphiti Schema in Core und allen Wagons aktualisieren
  • Wenn deployed, Stefan (und letztlich Hannes Lau) informieren

!!! ACHTUNG: es gibt zu diesem Ticket einen PR in ALLEN wagons !!! (github verlinkt leider nur die ersten 10)

@sykesonrocks sykesonrocks removed their assignment Apr 4, 2024
@daniel-illi daniel-illi self-assigned this Apr 8, 2024
This was referenced Apr 12, 2024
@daniel-illi
Copy link
Contributor

!!! ACHTUNG: es gibt zu diesem Ticket einen PR in ALLEN wagons !!! (github verlinkt leider nur die ersten 10)

@daniel-illi daniel-illi removed their assignment Apr 12, 2024
@mtnstar mtnstar assigned mtnstar and daniel-illi and unassigned mtnstar Apr 15, 2024
daniel-illi added a commit that referenced this issue Apr 19, 2024


Merge pull request #2554 from hitobito/feature/2537-jsonapi-group-contactaccounts

fixes #2537
@daniel-illi daniel-illi removed their assignment Apr 19, 2024
daniel-illi added a commit to hitobito/hitobito_jubla that referenced this issue Apr 22, 2024
@carlobeltrame carlobeltrame reopened this May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment