<?php

// Laravel
use Illuminate\Support\Facades\Route;

// Creatia
use App\Http\Controllers\Token\Controller;

class AccessToken {
    public static function routes() {
        Route::group(['middleware' => ['auth:api','bounce:management.write'], 'prefix' => 'token'], function ($r) {

            // Get all tokens
            Route::get('/', [Controller::class, 'get_tokens'])->name('get_tokens');
            
            // Get complete list of scopes
            Route::get('scope', [Controller::class, 'get_all_scopes'])->name('get_all_scopes');
            
            // Get specific token
            Route::get('{_token_id}', [Controller::class, 'get_token_details'])->name('get_token_details');

            // Create token
            Route::post('', [Controller::class, 'post_token'])->name('post_token');

            // Edit token
            Route::patch('{_token_id}', [Controller::class, 'patch_token'])->name('patch_token');
            
            // Toggle a token
            Route::patch('{_token_id}/toggle', [Controller::class, 'toggle_token'])->name('toggle_token');
            
            // Delete a token entirely
            Route::delete('{_token_id}', [Controller::class, 'delete_token'])->name('delete_token');

        });
    }

}
