PHP Classes

File: routes/nodelist-routes.php

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   routes/nodelist-routes.php   Download  
File: routes/nodelist-routes.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 5 days ago
Size: 3,154 bytes
 

Contents

Class file image Download
<?php

// Nodelist routes
use BinktermPHP\ActivityTracker;
use
BinktermPHP\Auth;
use
Pecee\SimpleRouter\SimpleRouter;

SimpleRouter::get('/nodelist', function() {
   
$controller = new BinktermPHP\Web\NodelistController();
   
$flags = $_GET['flag'] ?? [];
    if (!
is_array($flags)) {
       
$flags = $flags !== '' ? [$flags] : [];
    }
   
$auth = new Auth();
   
$user = $auth->getCurrentUser();
    if (
$user) {
       
$userId = $user['user_id'] ?? $user['id'] ?? null;
       
$searchLabel = trim((string)($_GET['search'] ?? ''));
        if (
$searchLabel === '') {
           
$searchLabel = 'browse';
        }
       
ActivityTracker::track($userId, ActivityTracker::TYPE_NODELIST_VIEW, null, $searchLabel);
    }
    echo
$controller->index($_GET['search'] ?? '', $_GET['zone'] ?? '', $_GET['net'] ?? '', $flags, (int)($_GET['page'] ?? 1));
});

SimpleRouter::get('/nodelist/view', function() {
   
$controller = new BinktermPHP\Web\NodelistController();
   
$address = $_GET['address'] ?? '';
   
$auth = new Auth();
   
$user = $auth->getCurrentUser();
    if (
$user && $address !== '') {
       
$userId = $user['user_id'] ?? $user['id'] ?? null;
       
ActivityTracker::track($userId, ActivityTracker::TYPE_NODE_VIEW, null, $address);
    }
    echo
$controller->view($address);
});

SimpleRouter::get('/nodelist/import', function() {
   
$controller = new BinktermPHP\Web\NodelistController();
    echo
$controller->import();
});

SimpleRouter::post('/nodelist/import', function() {
   
$controller = new BinktermPHP\Web\NodelistController();
    echo
$controller->import();
});

// Nodelist API routes
SimpleRouter::group(['prefix' => '/api/nodelist'], function() {
   
SimpleRouter::get('/search', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('search');
       
$auth = new Auth();
       
$user = $auth->getCurrentUser();
        if (
$user) {
           
$userId = $user['user_id'] ?? $user['id'] ?? null;
           
ActivityTracker::track($userId, ActivityTracker::TYPE_NODELIST_VIEW, null, $_GET['q'] ?? null);
        }
    });

   
SimpleRouter::get('/node', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('node');
       
$auth = new Auth();
       
$user = $auth->getCurrentUser();
        if (
$user) {
           
$userId = $user['user_id'] ?? $user['id'] ?? null;
           
ActivityTracker::track($userId, ActivityTracker::TYPE_NODE_VIEW, null, $_GET['address'] ?? null);
        }
    });

   
SimpleRouter::get('/zones', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('zones');
    });

   
SimpleRouter::get('/nets', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('nets');
    });

   
SimpleRouter::get('/stats', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('stats');
    });

   
SimpleRouter::get('/map-data', function() {
       
$controller = new BinktermPHP\Web\NodelistController();
       
$controller->api('map-data');
    });
});