<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use App\Models\TitreGItem;
use Illuminate\Http\Request;
use Illuminate\Http\Response as HttpResponse;
use App\Metier\GestSession;

class TitreController extends Controller
{
    protected $gestSession;
    public function __construct(GestSession $gestSession){
        $this->gestSession=$gestSession;
    }

    public function show($titreId = null)
    {
        if (is_null($titreId)) {
            // display all titres
            return $this->gestSession->getTitreGItems();

        } else {
            // display specific titre
            $titre = $this->gestSession->getTitreGItem($titreId);
            return is_null($titre) ?
                response()->json(['error' => 'Titre not found'], HttpResponse::HTTP_NOT_FOUND) : $titre;
        }
    }

    public function store(Request $request)
    {
        // verify request inputs
        if (!$request->has([
            'nom',
            'ponderation'
        ])
        ) {
            return response()->json(['error' => 'Bad request'], HttpResponse::HTTP_BAD_REQUEST);
        } else {
            $titre = TitreGItem::create([
                'nom' => $request->input('nom'),
                'ponderation' => $request->input('ponderation')
            ]);

            return is_null($titre) ?
                response()->json(['error' => 'Bad request'], HttpResponse::HTTP_BAD_REQUEST) : $titre;
        }
    }

    public function edit(Request $request, $titreId)
    {
        // verify request inputs
        if (!$request->has([
            'nom',
            'ponderation'
        ])
        ) {
            return response()->json(['error' => 'Bad request'], HttpResponse::HTTP_BAD_REQUEST);
        } else {
            $titre = TitreGItem::where('id_TitreGItem', '=', $titreId)->update([
                'nom' => $request->input('nom'),
                'ponderation' => $request->input('ponderation')
            ]);

            return is_null($titre) ?
                response()->json(['error' => 'Bad request'], HttpResponse::HTTP_BAD_REQUEST) : $titre;
        }
    }

    public function update(Request $request, $titreId)
    {
        //
    }

    public function destroy($titreId)
    {
        //
    }
}
