$app->get('/api/getpref/:pref', function ($pref) use($app, $user) { $app->contentType('application/json'); echo json_encode([$pref => $user->getPref($pref)]); }); $app->get('/api/setpref/:pref/:value', function ($pref, $value) use($app, $user) { $app->contentType('application/json'); $user->setPref($pref, $value); echo json_encode([$pref => $value]); }); $app->get('/api/graph/level/:level', function ($level) use($app, $user) { $user_scores = $user->getAverageScores($level, -1); $lessons = []; for ($i = 1; $i <= count($user_scores); $i++) { array_push($lessons, $i); } $global_scores = array_slice(\PTA\App::getAverageScores($level), 0, count($user_scores)); $chartdata = ['empty' => true]; if (count($user_scores) > 0 || count($global_scores) > 0) { $chartdata = ['chart' => ['renderTo' => 'chart'], 'title' => ['text' => 'Performance'], 'xAxis' => ['title' => ['text' => 'Lessons'], 'categories' => $lessons], 'yAxis' => ['min' => 0, 'max' => 100, 'title' => ['text' => 'Average Score / Tries']], 'series' => [['name' => 'You', 'data' => $user_scores, 'type' => 'line'], ['name' => 'Other Users', 'data' => $global_scores, 'type' => 'line']]]; } $app->contentType('application/json'); echo json_encode($chartdata); }); $app->post('/api/login/hook', function () use($app, $user) { $request = $app->request(); $ip = $_SERVER['REMOTE_ADDR']; $logged = true; #if ($user->isLoggedIn() && $user->verifyNonce($request->post('nonce'), $ip, 'login-' . $user->getUsername(), 0)) { $user->logLogin($ip); #} $app->contentType('application/json');