Вход Регистрация
Файл: app/Http/Controllers/API/WebsiteController.php
Строк: 103
<?php

namespace AppHttpControllersAPI;

use 
AppHttpControllersController;
use 
AppHttpRequestsAPIStoreWebsiteRequest;
use 
AppHttpRequestsAPIUpdateWebsiteRequest;
use 
AppHttpResourcesWebsiteResource;
use 
AppModelsWebsite;
use 
AppTraitsWebsiteTrait;
use 
IlluminateHttpRequest;

class 
WebsiteController extends Controller
{
    use 
WebsiteTrait;

    
/**
     * Display a listing of the resource.
     *
     * @param Request $request
     * @return IlluminateHttpResourcesJsonAnonymousResourceCollection
     */
    
public function index(Request $request)
    {
        
$search $request->input('search');
        
$searchBy in_array($request->input('search_by'), ['domain']) ? $request->input('search_by') : 'domain';
        
$sortBy in_array($request->input('sort_by'), ['id''domain']) ? $request->input('sort_by') : 'id';
        
$sort in_array($request->input('sort'), ['asc''desc']) ? $request->input('sort') : 'desc';
        
$perPage in_array($request->input('per_page'), [102550100]) ? $request->input('per_page') : config('settings.paginate');

        return 
WebsiteResource::collection(Website::where('user_id'$request->user()->id)
            ->
when($search, function ($query) use ($search$searchBy) {
                return 
$query->searchDomain($search);
            })
            ->
orderBy($sortBy$sort)
            ->
paginate($perPage)
            ->
appends(['search' => $search'search_by' => $searchBy'sort_by' => $sortBy'sort' => $sort'per_page' => $perPage]))
            ->
additional(['status' => 200]);
    }

    
/**
     * Store a newly created resource in storage.
     *
     * @param StoreWebsiteRequest $request
     * @return WebsiteResource|IlluminateHttpJsonResponse
     */
    
public function store(StoreWebsiteRequest $request)
    {
        
$created $this->websiteStore($request);

        if (
$created) {
            return 
WebsiteResource::make($created);
        }

        return 
response()->json([
            
'message' => __('Resource not found.'),
            
'status' => 404
        
], 404);
    }

    
/**
     * Display the specified resource.
     *
     * @param Request $request
     * @param $id
     * @return WebsiteResource|IlluminateHttpJsonResponse
     */
    
public function show(Request $request$id)
    {
        
$link Website::where([['id''='$id], ['user_id'$request->user()->id]])->first();

        if (
$link) {
            return 
WebsiteResource::make($link);
        }

        return 
response()->json([
            
'message' => __('Resource not found.'),
            
'status' => 404
        
], 404);
    }

    
/**
     * Update the specified resource in storage.
     *
     * @param UpdateWebsiteRequest $request
     * @param int $id
     * @return WebsiteResource
     */
    
public function update(UpdateWebsiteRequest $request$id)
    {
        
$website Website::where([['id''='$id], ['user_id''='$request->user()->id]])->firstOrFail();

        
$updated $this->websiteUpdate($request$website);

        if (
$updated) {
            return 
WebsiteResource::make($updated);
        }

        return 
response()->json(404, [
            
'message' => __('Resource not found.'),
            
'status' => 404
        
]);
    }

    
/**
     * Remove the specified resource from storage.
     *
     * @param Request $request
     * @param $id
     * @return IlluminateHttpJsonResponse
     * @throws Exception
     */
    
public function destroy(Request $request$id)
    {
        
$website Website::where([['id''='$id], ['user_id''='$request->user()->id]])->first();

        if (
$website) {
            
$website->delete();

            return 
response()->json([
                
'id' => $website->id,
                
'object' => 'website',
                
'deleted' => true,
                
'status' => 200
            
], 200);
        }

        return 
response()->json([
            
'message' => __('Resource not found.'),
            
'status' => 404
        
], 404);
    }
}
Онлайн: 1
Реклама