<?php

namespace App\Http\Controllers\Api\V1;


use App\Http\Controllers\Api\V1\ApiController;
use App\Http\Requests\V1\NewsletterSubscriptionRequest;
use App\Facades\Services\NewsletterSubscriptionService;
use Throwable;
use Illuminate\Support\Facades\Log;

class NewsletterSubscriptionController extends ApiController
{

    /**
     * Class constructor
     *
     * @return void
     */
    public function __construct()
    {
    }

    public function subscribe(NewsletterSubscriptionRequest $request)
    {
        $data = $request->validated();
        try {
            NewsletterSubscriptionService::subscribe($data['email']);
        } catch (Throwable $t) {
            return response()->json([
                'message' => $t->getMessage(),
            ], 500);
        }
        return response()->json([
            'message' => trans('response.nl_subscription_ok'),
        ], 200);
    }

    public function unsubscribe(NewsletterSubscriptionRequest $request)
    {
        $data = $request->validated();

        try {
            NewsletterSubscriptionService::unsubscribe($data['email']);
        } catch (Throwable $t) {
            Log::error($t);
            return response()->json([
                'message' => $t->getMessage(),
            ], 500);
        }
        return response()->json([
            'message' => trans('response.nl_unsubscription_ok'),
        ], 200);
    }
}
