Tipps gesucht // ändern von Serienterminen via API



  • Hallo liebe Community,

    ich suche eine Möglichkeit Serientermine in einem Churchtools Kalender zu verändern.

    Hintergrund ist: wir haben ein Gebetshaus wo einzelne Beter für die Dauer eines Jahres jeweils eine oder mehrere Gebetsschichten jede Woche wahrnehmen. Die Gebetstermine (mit den jeweiligen Betern und deren Schwerpunkte) haben wir als Serien-Termine in einem Churchtools Kalender "Gebetskalender" angelegt. Diese erscheinen dann jeweils auf einem Panel im Gebetshaus.

    Falls jemand mal verhindert ist, hat er die Möglichkeit einen Ersatz einzutragen oder seine Gebetsschicht an dem entsprechenden Tag für Springer freizugeben. Das haben wir direkt in unserer selbst gehosteten Churchtools-Version so gelöst, dass beim Klick auf den entsprechenden Kalendereintrag im Gebetskalender die Option "Schicht freigeben oder tauschen" angezeigt wird. (Wir haben als eine angepasste /churchcal/calendar.js).
    Intern wird die Funktion prooveEventChangeImpact ausgeführt um eine Terminserie zu verändern.

    Wir sind aktuell dabei eine eigene App für unsere Church zu entwickeln, wo das Thema Gebetsschichten tauschen/freigeben darüber gelöst werden soll. Für die Kommunikation der App mit der Gebets-Geschichte erstellen wir eine Rest API (PHP basiert), die alle nötigen Befehle für die App zur Verfügung stellt. Ich suche nun eine Möglichkeit, Terminserien per API zu verändern.
    Leider finde ich weder in der neuen noch in der alten API eine Möglichkeit dazu.

    Hat vielleicht jemand einen Tipp oder eine Idee für mich?

    Vielen Dank und lieben Gruß aus Berlin!


  • ChurchToolsMitarbeiter

    Ich weiß die Antwort gerade nicht auswendig, aber um so etwas herauszufinden ist es meistens eine gute Idee die Aktion die man vorhat mit dem ChurchTools Frontend durchzuführen und dabei die Entwicklertools offen zu haben. Dann sieht man welche Apis aufgerufen werden.

    Leider gibt es für die Kalender noch keine neuen Apis und ihr werdet die alte api nutzen müssen.



  • Hallo David, danke für die schnelle Antwort.
    Genau so bin ich vorgegangen und habe dabei gesehen, dass dafür 2x die Methode POST auf die URL https://[meinegemeinde].church.tools/index.php?q=churchcal/ajax ausgeführt wird.
    Dabei steht unter FormData eine lange Liste von Daten, unter anderen mit der Funktion func=getEventChangeImpact und danach func=updateEvent ausgeführt wird.

    Leider komme ich damit aber dennoch nicht weiter.
    Wie komme ich denn an die ganzen Daten ran, die für getEventChangeImpact und updateEvent übergeben werden sollen?

    In der api.church.tools Dokumentation für die alte API gibt es zwar eine Funktion getEventChangeImpact, aber die params sind nicht weiter ausgeführt.

    public getEventChangeImpact( [type] $params )
    Checking the depending changes in other modules For single events splitDate is the origin startdate
    
    Parameters
    $params
    with newEvent, originEvent, splitDate, untilEnd_yn
    

    Was werden denn für Daten für newEvent, originEvent, splitDate, untilEnd_yn erwartet?

    Wäre suuper dankbar wenn mir da jemand weiterhelfen könnte!



  • So, ich habe eine für uns brauchbare Lösung gefunden 🙂
    Da wir Churchtools selbst hosten und es sich bei der gesuchten Funktion IMMER um die Freigabe eines Serientermins handelt, kann ich die Aufgabe ganz einfach dadurch lösen, indem ich direkt in die Datenbank in die Tabelle cc_cal_except eine Terminausnahme rein schreibe.
    Ist zwar nicht ganz so schön wie über eine offizielle API Funktion, hilft uns aber erst mal weiter.


Log in to reply