71 lines
3.8 KiB
PHP
71 lines
3.8 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\V1\CustomerController;
|
|
use App\Http\Controllers\Api\V1\ArcadiaController;
|
|
use App\Http\Controllers\Api\V2\ApiController as V2ApiController;
|
|
use App\Http\Controllers\Api\V2\ArcadiaController as V2ArcadiaController;
|
|
use App\Http\Controllers\Api\V2\CustomerController as V2CustomerController;
|
|
use App\Http\Controllers\Api\V2\OptinController as V2OptinController;
|
|
use App\Http\Controllers\Api\V2\AnswerController as V2AnswerController;
|
|
use App\Http\Controllers\Api\V2\QuestionController as V2QuestionController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register API routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
| is assigned the "api" middleware group. Enjoy building your API!
|
|
|
|
|
*/
|
|
|
|
Route::prefix('v1')->middleware(['auth:api', 'check-brand'])->group(function () {
|
|
// Clients
|
|
Route::prefix('customer')->group(function () {
|
|
Route::get('/{type}/{value}', [CustomerController::class, 'show']);
|
|
Route::post('/create', [CustomerController::class, 'store']);
|
|
Route::put('/{id}', [CustomerController::class, 'update']);
|
|
Route::delete('/{id}', [CustomerController::class, 'delete']);
|
|
Route::post('/{id}/change-password', [CustomerController::class, 'changePassword']);
|
|
Route::post('/{id}/activate', [CustomerController::class, 'activateAccount']);
|
|
Route::post('/{id}/toggle-optin', [CustomerController::class, 'toggleOptin']);
|
|
Route::post('/{hashcode}/remove-optin', [CustomerController::class, 'removeOptin']);
|
|
Route::post('/login', [CustomerController::class, 'authenticate']);
|
|
});
|
|
// Optin simple
|
|
Route::post('/single-optin', [CustomerController::class, 'addSingleOptin']);
|
|
// Arcadia
|
|
Route::post('/arcadia/outgoing-mail', [ArcadiaController::class, 'outgoingMail']);
|
|
});
|
|
|
|
Route::prefix('v2')->name('apiV2.')->group(function () {
|
|
Route::get('/ping', [V2ApiController::class, 'ping'])->name('ping');
|
|
Route::post('/auth', [V2ApiController::class, 'authenticate'])->name('authenticate');
|
|
Route::middleware('auth:api')->group(function () {
|
|
Route::post('/optin', [V2OptinController::class, 'optin'])->name('optin');
|
|
Route::apiResource('customers', V2CustomerController::class)->except(['index']);
|
|
Route::prefix('customers')->name('customers.')->group(function () {
|
|
Route::post('/authenticate', [V2CustomerController::class, 'authenticate'])->name('authenticate');
|
|
Route::prefix('{customer}')->group(function () {
|
|
Route::post('/activate', [V2CustomerController::class, 'activateAccount'])->name('activate');
|
|
Route::post('/answers', [V2AnswerController::class, 'storeCustomerAnswers'])
|
|
->name('answers.store');
|
|
});
|
|
});
|
|
Route::prefix('arcadia')->name('arcadia.')->group(function () {
|
|
Route::post('/outgoing-mail/default', [V2ArcadiaController::class, 'outgoingMailDefault'])
|
|
->name('outgoingMailDefault');
|
|
Route::post('/outgoing-mail/game', [V2ArcadiaController::class, 'outgoingMailGame'])
|
|
->name('outgoingMailGame');
|
|
});
|
|
Route::apiResource('questions', V2QuestionController::class)->only(['index']);
|
|
Route::prefix('questions')->name('questions.')->group(function () {
|
|
Route::get('/un-answered-by/{customer}', [V2QuestionController::class, 'unAnsweredBy'])
|
|
->name('unAnsweredBy');
|
|
Route::get('/with-answers/{customer}', [V2QuestionController::class, 'indexWithResponse'])
|
|
->name('indexWithResponse');
|
|
});
|
|
});
|
|
});
|