<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Traits\ValidationTrait;
use App\Http\Requests\Api\SubscriptionStoreRequest;
use App\Services\SubscriptionService;
use Illuminate\Http\JsonResponse;

class SubscriptionController extends Controller
{
    use ValidationTrait;

    /** @var SubscriptionService */
    private $subscriptionService;

    public function __construct(SubscriptionService $subscriptionService)
    {
        $this->subscriptionService = $subscriptionService;
    }

    public function subscribe(SubscriptionStoreRequest $request)
    {
        try {
            $this->subscriptionService->subscribe($request);
        } catch (\Exception $e) {
            return self::getErrorResponse($e->getMessage());
        }

        return new JsonResponse(['data' => ['customer subscribed']]);
    }
}
