Game-Jaming/Backend/Controllers/FileHandler/upload.php

91 lines
3.4 KiB
PHP
Raw Normal View History

2021-03-08 13:20:56 +00:00
<?php
2021-03-08 13:52:34 +00:00
require_once "../../../bootstrap.php";
2021-03-09 13:43:39 +00:00
require_once('../Group/Group.php');
2021-03-09 14:04:59 +00:00
require_once('FileHandler.php');
2021-04-19 07:15:15 +00:00
2021-03-08 13:20:56 +00:00
use Backend\Models\GameData;
2021-03-17 08:43:09 +00:00
use Backend\Models\GameJam;
2021-04-19 07:15:15 +00:00
use Backend\Models\Registration;
2021-03-09 13:43:39 +00:00
2021-03-09 12:54:20 +00:00
use Backend\Models\Group;
2021-03-08 13:20:56 +00:00
2021-03-17 08:43:09 +00:00
date_default_timezone_set("Europe/Copenhagen");
2021-03-09 12:17:18 +00:00
$isImages = false;
2021-03-09 12:30:21 +00:00
2021-04-19 07:15:15 +00:00
if (isLogin()) {
if (isset($_POST['submitUpload'])) {
$group = groupViaToken($_SESSION['token']);
$gameJam = GameJam::find($_POST['gameJamId']);
if ($gameJam === null) {
http_response_code(400);
echo json_encode(["message" => "gameJam not found"]);
exit();
}
2021-05-05 06:39:27 +00:00
$registration = Registration::where('game_jam_id', $gameJam->id)->where("group_id", $group->id)->first();
2021-04-19 07:15:15 +00:00
if ($registration === null) {
http_response_code(401);
echo json_encode(["message" => "group not registered for that game jam"]);
exit();
}
2021-03-09 12:30:21 +00:00
2021-03-08 13:20:56 +00:00
2021-04-19 07:15:15 +00:00
$gameJamStartTime = strtotime($gameJam->start_time);
$gameJamEndTime = strtotime($gameJam->end_time);
$date = date('Y/m/d H:i:s', time());
2021-03-17 08:43:09 +00:00
2021-04-19 07:15:15 +00:00
$currentTime = strtotime($date);
2021-03-17 08:43:09 +00:00
2021-04-19 07:15:15 +00:00
if ($gameJamStartTime <= $currentTime && $gameJamEndTime >= $currentTime) {
if (!isset($registration->game_data_id)) {
2021-03-17 08:43:09 +00:00
//Get the data from the user form
$gameFile = $_FILES['gameFile'];
$desc = $_POST['description'];
$title = $_POST['gameTitle'];
$thumbnail = $_FILES['thumbnailFile'];
2021-04-19 07:15:15 +00:00
$isWebBased = isset($_POST['isWebBased']);
2021-03-17 08:43:09 +00:00
$gameFileName = $_FILES['gameFile']['name'];//Game name
$gameFileTmp = $_FILES['gameFile']['tmp_name'];//Tmp location of the file
$gameFileError = $_FILES['gameFile']['error'];//File error
$thumbnailFileName = $_FILES['thumbnailFile']['name'];//Game name
$thumbnailFileTmp = $_FILES['thumbnailFile']['tmp_name'];//Tmp location of the file
2021-04-19 07:15:15 +00:00
$thumbnailFileError = $_FILES['thumbnailFile']['error'];//File error
2021-03-17 08:43:09 +00:00
2021-04-19 07:15:15 +00:00
if ($gameFileError === 0) {
2021-03-17 08:43:09 +00:00
$gameData = new GameData();
$gameData->game_name = $title;
2021-04-19 07:15:15 +00:00
$gameData->game_link = ZipFileHandler($gameFileName, $gameFileTmp);
2021-03-17 08:43:09 +00:00
$gameData->description = $desc;
2021-04-19 07:15:15 +00:00
if (isset($thumbnail) && $thumbnailFileError === 0) {
$gameData->img = imagesFileHandler($thumbnailFileName, $thumbnailFileTmp);
2021-03-17 08:43:09 +00:00
}
$gameData->is_web_Based = $isWebBased;
$gameData->save();
2021-04-19 07:15:15 +00:00
$registration->gameData()->associate($gameData);
if (!$registration->save()) {
http_response_code(500);
} else {
http_response_code(201);
}
2021-03-19 12:25:27 +00:00
2021-04-19 07:15:15 +00:00
} else {
http_response_code(500);
2021-03-09 12:54:20 +00:00
}
2021-04-19 07:15:15 +00:00
} else {
2021-03-23 12:39:44 +00:00
http_response_code(400);
2021-04-19 07:15:15 +00:00
echo json_encode(["message" => "file already uploaded "]);
2021-03-08 13:20:56 +00:00
}
2021-04-19 07:15:15 +00:00
} else {
2021-03-23 12:39:44 +00:00
http_response_code(400);
2021-04-19 07:15:15 +00:00
echo json_encode(["message" => "Can only upload when the game jam has started"]);
2021-03-08 13:20:56 +00:00
}
2021-04-19 07:15:15 +00:00
} else {
2021-03-23 12:39:44 +00:00
http_response_code(400);
2021-03-08 13:20:56 +00:00
}
2021-04-19 07:15:15 +00:00
} else {
2021-03-23 12:39:44 +00:00
http_response_code(401);
echo json_encode(["message" => "is not login"]);
2021-03-08 13:20:56 +00:00
}