%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/news/app/Http/Controllers/Api/
Upload File :
Create Path :
Current File : /var/www/html/news/app/Http/Controllers/Api/ConfigurationsController.php

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\ApiController;
use App\Http\Requests\Configuration\ConfigurationUpdateRequest;
use App\Http\Requests\Media\UploadImageRequest;
use App\Models\Media;
use App\Repositories\Configuration\ConfigurationRepository;
use App\Repositories\Media\MediaRepository;
use App\Transformers\ConfigurationTransformer;
use App\Transformers\MediaTransformer;
use EllipseSynergie\ApiResponse\Contracts\Response;
use Exception;
use Intervention\Image\Facades\Image;

class ConfigurationsController extends ApiController
{
    /**
     * @var ConfigurationRepository
     */
    private $configurationRepository;
    /**
     * @var MediaRepository
     */
    private $mediaRepository;

    /**
     * UsersController constructor.
     * @param Response $response
     * @param ConfigurationRepository $configurationRepository
     * @param MediaRepository $mediaRepository
     */
    public function __construct(Response $response, ConfigurationRepository $configurationRepository, MediaRepository $mediaRepository)
    {
        parent::__construct($response);
        $this->transformer = new ConfigurationTransformer;
        $this->configurationRepository = $configurationRepository;
        $this->mediaRepository = $mediaRepository;
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return $this->response->withItem($this->configurationRepository->query()->first(), $this->transformer);
    }

    /**
     * @param ConfigurationUpdateRequest $request
     * @param $configuration
     * @return mixed
     */
    public function update(ConfigurationUpdateRequest $request, $configuration)
    {
        $configuration = $this->configurationRepository->findOrFail($configuration);
        $configuration->update($request->all());
        return $this->response->withItem($configuration, $this->transformer);
    }

    /**
     * @param UploadImageRequest $request
     * @return mixed
     */
    public function uploadLogo(UploadImageRequest $request)
    {
        if ($request->get('type') !== Media::MEDIA_TYPE_IMAGE_LOGO) {
            return $this->response->errorWrongArgs('Image type must be set to \'image_logo\'');
        }
        try {
            $encodedImage = $request->get('source');
            $img = Image::cache(function ($image) use ($encodedImage) {
                return $image->make($encodedImage);
            }, 10, true);
            $img->save(public_path() . '/images/logo.png');
            return response()->json(['data' => 'ok'], 200);
        } catch (Exception $e) {
            return $this->response->errorInternalError($e->getMessage());
        }
    }

}

Zerion Mini Shell 1.0