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

Build API-Json Fetcher (first manual) #55

Open
15 tasks
wellemut opened this issue Jan 4, 2025 · 1 comment
Open
15 tasks

Build API-Json Fetcher (first manual) #55

wellemut opened this issue Jan 4, 2025 · 1 comment
Assignees
Labels
0 API 0 Plattformpartner APIs and Databasis to connect via FairSync Userstory clear need of a specific user (usecase)

Comments

@wellemut
Copy link
Member

wellemut commented Jan 4, 2025

Userstory

As Platformadmin I want to regularly pull updates of other plattforms automatically via their APIs without having to manually download their json file, convert it to csv, match their json fiels to our csv colums and finally upload it to FairSync.

Solution

  • 1. Alle Einträge von wechange/Gemeinschaftswerk holen. (via REST-API als Json)

  • 2. Auf das Format von fairSync bringen. Build a Mapper-Editor, where we can set easily the definitions of each attribute of the incomming api

    • we need to be able to translate categories from different colums into hashtags
    • we need to map several other fields into on field of our db
    • Das muss einmalig für jede API manuell definiert, welches welche Felder zueinander gehören, und wie unpassende Felder übersetzt und ggf. zusammengeführt werden. Datenbankfelder müssen in Hashtags übersetzt werden, dazu werden Übersetzungsdatein erstellt.
    • Die "Mapper" können alle in simplen config-Datein definiert werden. Ein visueller Editor, wie im Mai vorgeschlagen Project Goal FairSync #15 (comment), ist erstmal nicht nötig)
  • 4. In FairSync alle neuen Einträge und Änderungen anzeigen, sodass Moderator mergen kann. (ähnlich, wie bisher csv-Datein angezeigt werden)

    • Bekannte Einträge, die beim letzten Mal einfach von A nach B importiert wurden, einfach wieder updaten, wenn es in A Änderungen gibt, in B aber zwischendurch nichts verändert wurde
    • Bekannte Einträge, die beim letzten Mal ignoriert wurden, auch wieder ignorieren
    • Dafür in die LogDatei schreiben, wenn Aggregate erstellt werden (also wenn ich ein Eintrag von A nach B kopiere, erstelle ich ja willentlich eine Duplette erstellt worden, was hier festgehalten werden muss. https://logs.fairsync.de/. Genauso muss dort festgehalten werden, wenn in B Bereits der Eintrag aus A existiert.)
  • 5. Am Ende in kvm rein speichern (macht FairSync)

    • Zu klären: Braucht es ein FairSync eigenes Format oder ist das FairSync Format bereits das ofDB-Format?
  • 7. Wöchentlich prüfen, ob es an bekannten Einträgen aktualisierungen gibt, und diese automatisch in kvm übernehmen?

Ressourcen

Prototype-Code of Mapper
https://codeberg.org/fairsync/importer-prototype

Übersetzung
Hier ein Beispiel einer Stichwort-Übersetzungsdatei für das Gemeinschaftswerk:
grafik

Docs

@qknight @flosse do I understand correctly, that the red container is to be build?
Image
https://structurizr.com/share/98635

Task defined in call: #6 (comment)

Similar Issue:

@wellemut wellemut converted this from a draft issue Jan 4, 2025
@wellemut wellemut added 0 Plattformpartner APIs and Databasis to connect via FairSync 0 API Userstory clear need of a specific user (usecase) labels Jan 4, 2025
@wellemut wellemut changed the title Build API Fetcher Build API Fetcher and Workflow Jan 9, 2025
@wellemut wellemut changed the title Build API Fetcher and Workflow Build API-Json Fetcher (first manual) Jan 25, 2025
@wellemut wellemut moved this from To triage to Ready in Server und Hosting Jan 25, 2025
@wellemut
Copy link
Member Author

April - Juni neue Mitarbeiter Reiner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0 API 0 Plattformpartner APIs and Databasis to connect via FairSync Userstory clear need of a specific user (usecase)
Projects
Status: 🏗 In progress
Status: Ready
Development

No branches or pull requests

2 participants