<?php
session_start();

require '../vendor/autoload.php';
require '../config.php';

if (isset($_GET['logout'])) {
    $_SESSION['accessToken'] = '';
    $_SESSION['refreshToken'] = '';
}

$accessToken = '';
if (isset($_SESSION['accessToken'])) {
    $accessToken = $_SESSION['accessToken'];
}
$refreshToken = '';
if (isset($_SESSION['refreshToken'])) {
    $refreshToken = $_SESSION['refreshToken'];
}

if (!$accessToken) {
    header('Location: auth.php');
    die();
}

$session = new SpotifyWebAPI\Session(
    $CLIENT_ID,
    $CLIENT_SECRET
);

// Use previously requested tokens fetched from session
if ($accessToken) {
    $session->setAccessToken($accessToken);
    $session->setRefreshToken($refreshToken);
} else {
    // Or request a new access token
    $session->refreshAccessToken($refreshToken);
}

$scopes = $session->getScope();

$options = [
  'scope' => [
      'playlist-read-private',
      'playlist-modify-private',
      'user-read-private',
  ],
'auto_refresh' => true,
];

$api = new SpotifyWebAPI\SpotifyWebAPI($options, $session);

// Save new tokens, they might have been updated
$_SESSION['accessToken'] = $session->getAccessToken();
$_SESSION['refreshToken'] = $session->getRefreshToken();

// ################################################################

$user = $api->me();

$templateData = [];

$templateData['user'] = $user;
$templateData['userImageUrl'] = '';
if ($user->images[0]) {
    $templateData['userImageUrl'] = $user->images[0]->url;
}
$templateData['playlists'] = $api->getUserPlaylists($user->id)->items;

require '../template.php';