← back to mikeyperes__laravel-hexa-package-gptzero

Function bodies 3 total

All specs Real LLM only Function bodies
GptZeroController class · php · L15-L96 (82 LOC)
src/Http/Controllers/GptZeroController.php
class GptZeroController extends Controller
{
    protected GptZeroService $service;

    /**
     * @param GptZeroService $service
     */
    public function __construct(GptZeroService $service)
    {
        $this->service = $service;
    }

    /**
     * Settings page.
     *
     * @return View
     */
    public function settings(): View
    {
        return view('gptzero::settings.index');
    }

    /**
     * Save settings.
     *
     * @param Request $request
     * @return JsonResponse
     */
    public function saveSettings(Request $request): JsonResponse
    {
        $validated = $request->validate([
            'api_key' => 'nullable|string|max:500',
            'enabled' => 'nullable|boolean',
            'debug_mode' => 'nullable|boolean',
        ]);

        if (isset($validated['api_key']) && !empty($validated['api_key'])) {
            Setting::setValue('gptzero_api_key', $validated['api_key']);
        }
        Setting::setValue('gptzero_enabled', $validated['e
GptZeroServiceProvider class · php · L10-L49 (40 LOC)
src/Providers/GptZeroServiceProvider.php
class GptZeroServiceProvider extends ServiceProvider
{
    /**
     * @return void
     */
    public function register(): void
    {
        $this->mergeConfigFrom(__DIR__ . '/../../config/gptzero.php', 'gptzero');
    }

    /**
     * @return void
     */
    public function boot(): void
    {
        $this->loadRoutesFrom(__DIR__ . '/../../routes/gptzero.php');
        $this->loadViewsFrom(__DIR__ . '/../../resources/views', 'gptzero');

        // Settings card on /settings page
        $this->registerSettingsCard();

        // Sidebar link
        if (class_exists(\hexa_core\Services\PackageRegistryService::class)) {
            $registry = app(\hexa_core\Services\PackageRegistryService::class);
            $registry->registerSidebarLink('gptzero.settings', 'GPTZero', 'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z', 'Content', 'gptzero'
GptZeroService class · php · L15-L125 (111 LOC)
src/Services/GptZeroService.php
class GptZeroService
{
    protected GenericService $generic;

    /**
     * @param GenericService $generic
     */
    public function __construct(GenericService $generic)
    {
        $this->generic = $generic;
    }

    /**
     * Check if GPTZero is enabled.
     *
     * @return bool
     */
    public function isEnabled(): bool
    {
        return Setting::getValue('gptzero_enabled', config('gptzero.enabled', true));
    }

    /**
     * Check if debug mode is on (sends only first 3 sentences).
     *
     * @return bool
     */
    public function isDebugMode(): bool
    {
        return (bool) Setting::getValue('gptzero_debug_mode', false);
    }

    /**
     * Get the API key.
     *
     * @return string|null
     */
    public function getApiKey(): ?string
    {
        return Setting::getValue('gptzero_api_key');
    }

    /**
     * Detect AI-generated content.
     *
     * @param string $text Plain text to analyze
     * @return array{success: bool, message: strin