<?php

require_once "../classes/class.helper_operator.php";
require_once "../config/config.php";
require_once "../classes/class.query_operator.php";
require_once "../classes/class.session_operator.php";
// Delete profile image from file system and image name from database
$user = SessionOperator::getUser();
unlink(ROOT . $user->getImage());
QueryOperator::uploadImage($user->getUserId(), null, "users");
// Update user session
$user = QueryOperator::getAccount(SessionOperator::getUser()->getUserId());
SessionOperator::updateUser(new User($user));
// Set feedback session
SessionOperator::setNotification(SessionOperator::DELETED_PROFILE_PHOTO);
HelperOperator::redirectTo("../views/profile_view.php");
        }
    } else {
        $error = [];
        if (($upload = ValidationOperator::checkImage()) != null) {
            // A user is logged in
            if (!is_null($user = SessionOperator::getUser())) {
                // Create random image name
                $newImageName = UPLOAD_PROFILE_IMAGE . uniqid("", true) . "." . $upload["imageExtension"];
                // Upload new profile picture to file system
                if (move_uploaded_file($upload["image"], ROOT . $newImageName)) {
                    // Delete old profile pic (if exists)
                    if (!empty($imageName = $user->getImage())) {
                        unlink(ROOT . $imageName);
                    }
                    // Store image name in database
                    QueryOperator::uploadImage($user->getUserId(), $newImageName, "users");
                    // Update user session
                    $user = QueryOperator::getAccount($user->getUserId());
                    SessionOperator::updateUser(new User($user));
                    // Set feedback session
                    SessionOperator::setNotification(SessionOperator::UPLOADED_PROFILE_PHOTO);
                } else {
                    $error["upload"] = "Image cannot be uploaded ";
                    SessionOperator::setInputErrors($error);
                }
            }
        }
    }
}
// Redirect back
HelperOperator::redirectTo("../views/profile_view.php");