<?php

  class UserController extends Controller
  {

    public function __construct()
    {
      $this->beforeFilter('csrf', ['on' => 'post']);
    }

    public function getIndex()
    {
      $query = User::full()
        ->join('submissions', 'users.id', '=', 'submissions.user_id')
        ->select('users.*')
        ->whereNotNull('submissions.final_image_id')
        ->with(
          [
            'submissions' => function ($query) {
              $query->full()->with('finalImage')
                ->whereNotNull('submissions.final_image_id');
            }
          ]
        )->latest('users.created_at');


      $users = $query->get();
      foreach ($users as $userItem) {
        $userSubmission = $userItem->submission;

        if ($userSubmission->finalImage) {
          try {
            $destinationPath = Config::get('path.internal.media');
            $finalName = $userSubmission->finalImage->filename;

            $finalDestinationPath = $destinationPath . '/' . $userSubmission->finalImage->filename;
            $img = Image::make($finalDestinationPath);
            $img
              ->resize(12, 12, function ($constraint) {
                $constraint->aspectRatio();
              })
              ->resizeCanvas(12, 12)
              ->save(Config::get('path.internal.thumbs') . '/' . getFileNameSize($finalName, 'Resize12x12'));
          } catch (Exception $e) {
            echo '<pre>';
            dd($e);
          }
        }

        unset($userSubmission);
        unset($destinationPath);
        unset($finalName);
        unset($finalDestinationPath);
        unset($img);
      }

      die('teste');


      $teste = Bitly::shorten('http://serami.eae.pt/');
      var_dump($teste->data->url);
      EmailerService::sendConfirmation('carlos@eae.pt', 'http://thisisatest.com', 'http://serami.eae.pt/public/uploads/media/imhere_d8d8524b31d3bb64ce83b4152b0b7427f477b2de.jpg');


      // This will get the best performing images
      $bestPerformingImages = GalleryService::getBestPerformingImages();

      // this will get the Excluded Performing images along with new images
      $images = GalleryService::getImages($bestPerformingImages['ids']);

    }

    public function getBrowserOutdated()
    {
      $view = 'frontend.pages.browser_upgrade';

      return View::make($view, [
        'metaUser' => []
      ]);
    }

    public function getClearchannel()
    {
      $view = 'frontend.pages.clearchannel';
      $images = GalleryService::getImages([], $amount = 1, TRUE);
      $extraImages = GalleryService::getImages($images['ids'], 8, TRUE);
      $activityCounter = GalleryService::getActivityCounter();

      return View::make($view, [
        'metaUser'        => [],
        'images'          => $images['images'],
        'extraImages'     => $extraImages,
        'activityCounter' => $activityCounter
      ]);
    }

    private function _phpInfo()
    {
      die('=== DEBUG MODE ===');

      phpinfo();
    }

  }
