1 | <?php |
---|
2 | |
---|
3 | // Sécurité |
---|
4 | if (!defined('_ECRIRE_INC_VERSION')) return; |
---|
5 | |
---|
6 | /* |
---|
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à) |
---|
9 | */ |
---|
10 | |
---|
11 | |
---|
12 | /* |
---|
13 | * GET sur la racine du serveur iCal |
---|
14 | * http://site/rest.api/ical |
---|
15 | */ |
---|
16 | function http_ical_get_index_dist(){ |
---|
17 | |
---|
18 | } |
---|
19 | |
---|
20 | /* |
---|
21 | * GET sur une collection |
---|
22 | * http://site/rest.api/ical/all |
---|
23 | */ |
---|
24 | function http_ical_get_collection_dist($collection){ |
---|
25 | // Pour l'instant on va simplement chercher un squelette du nom de la collection |
---|
26 | // 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 | } |
---|
33 | // Si on ne trouve rien c'est que ça n'existe pas |
---|
34 | else{ |
---|
35 | header('Status: 404 Not Found'); |
---|
36 | exit; |
---|
37 | } |
---|
38 | } |
---|
39 | |
---|
40 | /* |
---|
41 | * GET sur une ressource |
---|
42 | * http://site/rest.api/ical/patates |
---|
43 | */ |
---|
44 | function http_ical_get_ressource_dist($collection, $ressource){ |
---|
45 | // Quelque soit la collection, tous les événements ont le même squelette |
---|
46 | // Le squelette prend en contexte les paramètres du GET + l'identifiant de l'évenement en essayant de faire au mieux |
---|
47 | $contexte = array( |
---|
48 | 'id_evenement' => $ressource, |
---|
49 | 'ressource' => $ressource, |
---|
50 | ); |
---|
51 | $contexte = array_merge($_GET, $contexte); |
---|
52 | |
---|
53 | 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; |
---|
58 | } |
---|
59 | // Si on ne trouve rien c'est que ça n'existe pas |
---|
60 | else{ |
---|
61 | header('Status: 404 Not Found'); |
---|
62 | exit; |
---|
63 | } |
---|
64 | } |
---|
65 | |
---|
66 | ?> |
---|