2011-11-02 23:49:36 +00:00
< ? php
2011-11-07 21:19:32 +00:00
$db = new PDO ( 'sqlite:./stats.db' );
2011-11-07 23:48:55 +00:00
$db -> query ( 'CREATE TABLE IF NOT EXISTS stats (id INTEGER, agent TEXT, point TEXT, value REAL, time TIMESTAMP, pathname TEXT, PRIMARY KEY (id))' );
2011-11-02 23:49:36 +00:00
// making a sad attempt here to provide a clean REST-respecting url scheme.
// stats with a GET returns - wait for it - the stats, and a post with the
// the right params will create a new entry
if ( $_SERVER [ 'REQUEST_METHOD' ] == " GET " ) {
$json = Array ();
2011-11-08 00:56:00 +00:00
$st = $db -> prepare ( 'SELECT point, avg(value) as avg_value, pathname, strftime(\'%Y-%m-%d\', time) as day FROM stats GROUP BY pathname, point, strftime(\'%Y-%m-%d\', time) ORDER BY time;' );
2011-11-07 21:19:32 +00:00
$st -> execute ();
$result = $st -> fetchAll ( PDO :: FETCH_ASSOC );
2011-11-02 23:49:36 +00:00
header ( " Content-Type: application/json " );
2011-11-07 21:19:32 +00:00
echo json_encode ( $result );
2011-11-07 23:48:55 +00:00
} elseif ( $_POST [ 'datapoint' ] && $_POST [ 'value' ] && $_POST [ 'agent' ] && $_POST [ 'pathname' ]) {
$st = $db -> prepare ( 'INSERT INTO stats (agent, point, value, pathname, time) VALUES (:agent, :data_point, :value, :pathname, DATETIME(\'now\'))' );
2011-11-07 21:19:32 +00:00
$st -> execute ( array (
':agent' => $_POST [ 'agent' ],
':data_point' => $_POST [ 'datapoint' ],
2011-11-07 23:48:55 +00:00
':value' => $_POST [ 'value' ],
':pathname' => $_POST [ 'pathname' ]
2011-11-07 21:19:32 +00:00
));
2011-11-02 23:49:36 +00:00
echo " success " ;
}
?>