Changeset 115801 in spip-zone


Ignore:
Timestamp:
Jun 27, 2019, 9:36:10 AM (2 months ago)
Author:
gouz@…
Message:

version icalendar compatible avec le plugin http > 1.0.0

Location:
_plugins_/icalendar/trunk
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/icalendar/trunk/http/ical.php

    r70478 r115801  
    55
    66/*
    7  * Implémentation d'un serveur REST pour iCal
    8  * (le vrai truc bien serait d'implémenter au moins une partie de CalDAV, mais on en est pas là)
     7 * Implémentation d'un serveur REST pour APP (AtomPub)
    98 */
    109
    11 
    12 /*
    13  * GET sur la racine du serveur iCal
    14  * http://site/rest.api/ical
     10/**
     11 * Rien, car en Atom il n'y a malheureusement pas de gestion des erreurs pour l'instant
     12 *
     13 * @param int $code Le code HTTP de l'erreur à générer
     14 * @return string Retourne une chaîne vide
    1515 */
    16 function http_ical_get_index_dist(){
    17        
     16function http_ical_erreur_dist($code, $requete, $reponse){
     17        $reponse->setStatusCode($code);
     18        $reponse->setContent('');
     19        return $reponse;
    1820}
    1921
    2022/*
    2123 * GET sur une collection
    22  * http://site/rest.api/ical/all
     24 * http://site/http.api/ical/all
    2325 */
    24 function http_ical_get_collection_dist($collection){
     26function http_ical_get_collection_dist($requete, $reponse){
     27        $collection = $requete->attributes->get('collection');
     28        $contexte = $requete->query->all();
     29       
    2530        // Pour l'instant on va simplement chercher un squelette du nom de la collection
    2631        // Le squelette prend en contexte les paramètres du GET uniquement
    27         if ($flux = recuperer_fond("http/ical/$collection", $_GET)){
    28                 header('Status: 200 OK');
    29                 header("Content-type: text/calendar; charset=utf-8");
    30                 echo $flux;
    31                 exit;
     32        if ($flux = recuperer_fond("http/ical/$collection", $contexte)){
     33                $reponse->setStatusCode(200);
     34                $reponse->setCharset('utf-8');
     35                $reponse->headers->set('Content-Type', 'application/atom+xml');
     36                $reponse->setContent($flux);
    3237        }
    3338        // Si on ne trouve rien c'est que ça n'existe pas
    3439        else{
    35                 header('Status: 404 Not Found');
    36                 exit;
     40                $reponse->setStatusCode(404);
    3741        }
     42       
     43        return $reponse;
    3844}
    3945
    4046/*
    4147 * GET sur une ressource
    42  * http://site/rest.api/ical/patates
     48 * http://site/http.api/ical/event
    4349 */
    44 function http_ical_get_ressource_dist($collection, $ressource){
     50 
     51function http_ical_get_ressource_dist($requete, $reponse){
     52
     53        // Quelque soit la collection, tous les événements ont le même squelette
     54        // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux
     55        $ressource = $requete->attributes->get('ressource');
     56
    4557        // Quelque soit la collection, tous les événements ont le même squelette
    4658        // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux
     
    4961                'ressource' => $ressource,
    5062        );
    51         $contexte = array_merge($_GET, $contexte);
     63        $contexte = array_merge($requete->query->all(), $contexte);
    5264       
    5365        if ($flux = recuperer_fond("http/ical/event", $contexte)){
    54                 header('Status: 200 OK');
    55                 header("Content-type: text/calendar; charset=utf-8");
    56                 echo $flux;
    57                 exit;
     66                $reponse->setStatusCode(200);
     67                $reponse->setCharset('utf-8');
     68                $reponse->headers->set("Content-type: text/calendar; charset=utf-8");
     69                $reponse->setContent($flux);
    5870        }
    5971        // Si on ne trouve rien c'est que ça n'existe pas
    6072        else{
    61                 header('Status: 404 Not Found');
    62                 exit;
     73                $reponse->setStatusCode(404);
    6374        }
     75       
     76        return $reponse;
    6477}
    6578
    66 ?>
  • _plugins_/icalendar/trunk/paquet.xml

    r107741 r115801  
    22        prefix="icalendar"
    33        categorie="date"
    4         version="0.4.5"
     4        version="0.5.0"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
     
    1717
    1818        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
    19         <utilise nom="http" compatibilite="[0.1.0;0.1.*]" />
     19        <utilise nom="http" compatibilite="[1.0.0;1.*.*]" />
    2020</paquet>
Note: See TracChangeset for help on using the changeset viewer.