• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Anlegen und löschen von Gruppen über API

    Feature-Vorschläge Web
    3
    7
    216
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • M
      MarkusP
      zuletzt editiert von

      Use Case:
      Ich möchte über die API Schnittstelle automatisiert jeden Sonntag eine neue Veranstaltungsgruppe anlegen und die vier Wochen alte Veranstaltungsgruppe samt Personen, die seit vier Wochen nicht mehr da waren, löschen lassen.

      Problem:
      In der Swagger UI ist kein REST Call fürs Anlegen und Löschen von Gruppen dokumentiert. Zudem erhalte ich über den REST Call /grouphomepages/{hash} nur die aktuell sichtbaren Veranstaltungen, aber nicht die abgeschlossenen Veranstaltungen.

      Anforderung:
      Für die Durchführen des Use Cases benötigt man zwei zusätzliche REST Calls

      • POST groups (Create new group)
      • DELETE groups/{id} (Delete group)
        Optional:
      • GET /grouphomepages/{hash} gibt auch abgeschlossene Veranstaltungen im JSON zurück (wobei man den Call dann per Login absichern sollte)
      B 1 Antwort Letzte Antwort Antworten Zitieren 1
      • B
        bwl21 @MarkusP
        zuletzt editiert von

        @markusp hi, da habe ich inzwischen ausführlichst daran gearbeitet ...

        du musst für das Anlegen der gruppen das V1 api bemühen.

        Vielleicht wirst du https://github.com/bwl21/CT-API-Tools fündig. In diesem Repository lege ich meine Versuchte zur Nutzung des API ab. Es ist natürlich nicht "production ready" aber es demonstriert die Durchstiche ...

        Vor allem demonstriert es die einfache handhabung des V1 und des V2 API.

        Ansonsten kriegt man die notwendign V1 calls raus, indem man im Browser bei den Development tools den Network tab aktiviert und dann die Funktion manuell ausführt.

        M 1 Antwort Letzte Antwort Antworten Zitieren 0
        • M
          MarkusP @bwl21
          zuletzt editiert von MarkusP

          @bwl21
          danke dir, ich werde es mir mal anschauen.
          Leider habe ich mit PHP überhaupt keine Erfahrung, ich wollte es mit C# umsetzen. Mal schauen, wie es dann bewerkstelligen kann.

          Wäre trotzdem schön, wenn es in der neuen API Umgebung auch verfügbar ist.

          jziegelerJ B 2 Antworten Letzte Antwort Antworten Zitieren 0
          • jziegelerJ
            jziegeler ChurchToolsMitarbeiter @MarkusP
            zuletzt editiert von

            @markusp es wird auf jeden Fall auch in die neue API kommen, das ist allerdings eine Frage der Zeit 🙂

            1 Antwort Letzte Antwort Antworten Zitieren 1
            • B
              bwl21 @MarkusP
              zuletzt editiert von

              @markusp vermutlich kannst du das Prinzip übertragen. Das ist ja im wesentlichen eine Spielwiese um API - Anwendungen zu prototypen.

              Der Ansatz hier ist, keinen Wrapper um die API zu bauen, sondern das Absetzen von Requests so zu standardisieren, dass man mit der vorhandenen Dokumentation schnell was bauen kann.

              Im wesentlichen sind das die Methoden in ct_apitools--helper.inc.php :

              CTV1_sendRequestMultipart
              CTV1_sendRequest
              CTV2_sendRequest
              CTV2_sendRequestWithPagination
              CT_login
              CT_loginAuth
              CT_logout
              

              Das gibt dir vielleicht das Muster vor, das helfen könnte.

              ctcli.php ist das aufrufprogramm, welches "kommandos" aus src inkludiert. Dabei gibt es Konventionen:

              1. de Request wird als Array beschrieben ($report)
              2. das Ergebnis wird in den Request eingetragen
              3. ctcli schreibt das ergebnis in das verzeichnis responses

              Im einfachsten Fall sieht so ein Kommando dann so aus:

              $report = [
                  'url' => $ctdomain . '/?q=churchdb/ajax' ,
                  'method' => "POST",
                  'data' => ['func'=>'getMasterData'],
                  'response' => "???"
              ];
              
              
              
              $report['response'] = CT_APITOOLS\CTV1_sendRequest($ctdomain, $report['url'], $report['data']);
              
              
              M 1 Antwort Letzte Antwort Antworten Zitieren 0
              • M
                MarkusP @bwl21
                zuletzt editiert von

                @bwl21
                Dein Projekt war schon einmal sehr hilfreich. Ich habe die API V1 Aufrufe erstmal mit Postman ausprobiert um eine grobe Ahnung vom Aufbau zu bekommen. Dabei ist mir aber aufgefallen, dass die https://api.church.tools/ Doku nicht mehr aktuell ist, aber das wurde ja schon in anderen Forumseinträge erwähnt. Der Tipp mit den Development Tool war gut, da konnte ich dann die aktuellen Parameter herausfinden.

                Dann sollte ich das ohne Probleme mit der alten API auch hinbekommen, muss ja nur alles einmal vorher mit dem Development Tool durchspielen und die richtigen Daten heraus extrahieren.

                B 1 Antwort Letzte Antwort Antworten Zitieren 0
                • B
                  bwl21 @MarkusP
                  zuletzt editiert von

                  @markusp ja das stimmt. Die ist nicht aktuell. Ich gehe so vor, dass ich in CT einen Vorgang durchspile und dabei mit den Chrome Developertools / Netzwerk beobachte, was passiert.

                  Da kommt man sehr schnell zum ziel. Bei Fragen hier im Schnittstellenforum posten ...

                  1 Antwort Letzte Antwort Antworten Zitieren 0
                  • Erster Beitrag
                    Letzter Beitrag