kartevonmorgen / FairSync

A general Syncronisation Tool for kvm and other maps
1 stars 0 forks source link

Gemeinschaftswerk Nachhaltigkeit: Import entries and updates #5

Open wellemut opened 1 year ago

wellemut commented 1 year ago

Das Gemeinschaftswerk Nachhaltigkeit ist die Plattform der Bundesregierung und des Rates für nachhaltige Entwicklung und soll den aktuellen Fortschritt von Unternehmen und Initiativen in Richtung SDGs zeigen. https://gemeinschaftswerk-nachhaltigkeit.de/app/map Es geht also um das gesamtengagement in Deutschland bezüglich aller SDGs wobei die SDGs die zentralen Filter sind.

Die ersten 30.000 Einträge im Gemeinschaftswerk stammen von der Karte von morgen und wurden unter ODbL weitergeleitet: Image

Import: Gemeinschaftswerk -> kvm

The API from Gemeinschaftswerk is dokumented here: https://gemeinschaftswerk-nachhaltigkeit.de/app/swagger-ui/index.html

Datenstruktur

"id": 1,
      "createdBy": "string",
      "lastModifiedBy": "string",
      "createdAt": "2024-05-30T17:16:13.240Z",
      "modifiedAt": "2024-05-30T17:16:13.240Z",
      "name": "string",
      "description": "string",
      "sustainableDevelopmentGoals": [
        0
      ],
      "contact": {
        "lastName": "string",
        "firstName": "string",
        "position": "string",
        "email": "string",
        "phone": "string",
        "image": "string"
      },
      "location": {
        "address": {
          "name": "string",
          "street": "string",
          "streetNo": "string",
          "supplement": "string",
          "zipCode": "string",
          "city": "string",
          "state": "string",
          "country": "string"
        },
        "online": true,
        "privateLocation": true,
        "url": "string",
        "coordinate": {
          "type": "Point",
          "coordinates": [
            30,
            10
          ]
        }
      },
      "thematicFocus": [
        "PARTICIPATION"
      ],
      "logo": "string",
      "image": "string",
      "socialMediaContacts": [
        {
          "type": "FACEBOOK",
          "contact": "string"
        }
      ],
      "impactArea": "LOCAL",
      "organisationType": "EDUCATION",
      "externalId": "eid1",
      "source": "LANDING_PAGE",
      "importType": "EXCEL",
      "importSource": "NONE",
      "initiator": true,
      "projectSustainabilityWinner": true
    }

https://github.com/GemeinschaftswerkNachhaltigkeit

Unsere API funktioniert noch problemlos bei mir und auch laut unserem Entwickler. Hast du einen aktuellen API Key Link erstellt? Infos, Dokumentation etc. ist alles im privaten Nutzeraccount zu finden. https://gemeinschaftswerk-nachhaltigkeit.de/app/account/developer @qknight registriere dich einfach dort, für den Token, oder frage mich nach meinem und ich schicke ihn dir!

Export: kvm -> Gemeinschaftswerk

Gemeinschaftswerk wants to get pushnotifications but no direct API-Import when we are updating entries, as they have a hierarchical content moderation. How we push updates to them and how we make sure, that we dont reimport our exports, will be a second question. (Should be discussed with wechange too https://github.com/kartevonmorgen/openfairdb/issues/88)


wellemut commented 10 months ago

@flosse @qknight Die Schnittstelle vom Gemeinschaftswerk ist online und sollte funktionieren

Man muss sich registrieren und einen API Key erstellen. Dieser hier ist für uns zu Testzwecken 4d3fd084-537a-464e-9b5a-b7be8d39e483

Viel Erfolg, sollten locker 30.000 Einträge sein., 20.000 davon dupletten, da von uns gespendet

Ich übergebe das issue daher Mal @qknight

wellemut commented 8 months ago

@qknight auch diese Daten vom Gemeinschaftswerk kannst du schon importieren (Testdaten?...) oben ist alles beschreiben.

wellemut commented 3 days ago

@qknight @flosse Hier könnt ihr das Format vom Gemeinschaftswerk testen. Gibt es irgendwo im Netz einen Json -> csv converter? Dann könnte ich die 1875 ja ziemlich einfach bei uns (Rück) importieren...

API call of all organisations

(in total there are 1875 Organisations) kvm DE-A-CH: bbox=46.22,4.39,55.16,17.49

API-Call generated on https://gemeinschaftswerk-nachhaltigkeit.de/app/swagger-ui/index.html#/organisations/getPagedOrganisation 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. (example -3.62,47.57,15.74,54.55) korrekt: bbox=4.39,46.22,17.49,55.16

https://gemeinschaftswerk-nachhaltigkeit.de/app Curl

curl -X 'GET' \
  'https://gemeinschaftswerk-nachhaltigkeit.de/app/openapi/v1/organisations?envelope=4.39%2C46.22%2C17.49%2C55.16&page=0&size=1000' \
  -H 'accept: application/json' \
  -H 'x-api-key: 4d3fd084-537a-464e-9b5a-b7be8d39e483'

Request URL https://gemeinschaftswerk-nachhaltigkeit.de/app/openapi/v1/organisations?envelope=4.39%2C46.22%2C17.49%2C55.16&page=0&size=1000

Response body (Page=0 als nur die erste Seite mit 1000 Organisationen Download DACH response_1732383141520.json

Response headers cache-control: no-cache,no-store,max-age=0,must-revalidate connection: Keep-Alive content-type: application/json date: Sat,23 Nov 2024 17:32:03 GMT expires: 0 keep-alive: timeout=5,max=100 pragma: no-cache server: Apache/2.4.56 (Debian) strict-transport-security: max-age=31536000 ; includeSubDomains transfer-encoding: chunked vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers x-content-type-options: nosniff x-xss-protection: 0

API call of all Events

(in Total 6475 Events) https://gemeinschaftswerk-nachhaltigkeit.de/app/swagger-ui/index.html#/activities/findActivities

Curl

curl -X 'GET' \
  'https://gemeinschaftswerk-nachhaltigkeit.de/app/openapi/v1/activities?page=0&size=1000' \
  -H 'accept: application/json' \
  -H 'x-api-key: 4d3fd084-537a-464e-9b5a-b7be8d39e483'

Request URL

https://gemeinschaftswerk-nachhaltigkeit.de/app/openapi/v1/activities?page=0&size=1000 Download aller Events response_1732384950231.json

Last part of Event Json:

  ],
  "pageable": {
    "pageNumber": 1,
    "pageSize": 1000,
    "sort": [],
    "offset": 1000,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 7,
  "totalElements": 6475,
  "last": false,
  "numberOfElements": 1000,
  "size": 1000,
  "number": 1,
  "sort": [],
  "first": false,
  "empty": false
}