168 lines
5.7 KiB
PHP
168 lines
5.7 KiB
PHP
|
<?php
|
||
|
|
||
|
// src/Controller/DataImport.php
|
||
|
// Grab data from transfer app
|
||
|
|
||
|
namespace App\Controller\Routes\Back;
|
||
|
|
||
|
use Symfony\Component\HttpFoundation\Response;
|
||
|
use Symfony\Component\HttpFoundation\Request;
|
||
|
use Symfony\Component\Routing\Annotation\Route;
|
||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||
|
use Symfony\Component\HttpFoundation\RequestStack;
|
||
|
use Doctrine\Persistence\ManagerRegistry;
|
||
|
use App\Service\HandleLocations;
|
||
|
//use App\Utils\PageRender;
|
||
|
//use App\Utils\StringTools;
|
||
|
use App\Service\Auth;
|
||
|
use App\Service\FileUploader;
|
||
|
|
||
|
class Locations extends AbstractController
|
||
|
{
|
||
|
/**
|
||
|
* @Route("/den/locations", name="den-reroute-index")
|
||
|
*/
|
||
|
public function rerouteIndex()
|
||
|
{
|
||
|
header("Location:/den/locations/page/1");
|
||
|
return new Response("<html><body>LOGGED IN</body></html>");
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/den/locations/page/{pageNum}", name="den-locations")
|
||
|
*/
|
||
|
public function locationIndex(
|
||
|
Request $request,
|
||
|
RequestStack $requestStack,
|
||
|
Auth $auth,
|
||
|
HandleLocations $locations,
|
||
|
string $pageNum
|
||
|
): Response {
|
||
|
$result = $auth->status();
|
||
|
if ($result["status"]) {
|
||
|
$session = $requestStack->getSession();
|
||
|
$member = $session->get("member");
|
||
|
$list = $locations->getLocationsPage($pageNum);
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations",
|
||
|
"handle" => $member->getHandle(),
|
||
|
"list" => $list,
|
||
|
"mode" => "index"
|
||
|
]);
|
||
|
} else {
|
||
|
return $this->render("back/index.twig", [
|
||
|
"title" => "Close the door behind you",
|
||
|
]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/den/locations/add", name="location-add")
|
||
|
*/
|
||
|
public function addLocation(
|
||
|
Request $request,
|
||
|
Auth $auth,
|
||
|
HandleLocations $locations,
|
||
|
ManagerRegistry $doctrine,
|
||
|
FileUploader $uploader
|
||
|
): Response {
|
||
|
$result = $auth->status();
|
||
|
if ($result["status"]) {
|
||
|
if ($request->getMethod() == "GET") {
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations | Add",
|
||
|
"mode" => "add"
|
||
|
]);
|
||
|
} else {
|
||
|
//add new member
|
||
|
$token = $request->get("token");
|
||
|
$notice = "";
|
||
|
$entityManager = $doctrine->getManager();
|
||
|
|
||
|
//token check
|
||
|
if (!$this->isCsrfTokenValid("upload", $token)) {
|
||
|
$logger->info("CSRF failure");
|
||
|
|
||
|
return new Response(
|
||
|
"Operation not allowed",
|
||
|
Response::HTTP_BAD_REQUEST,
|
||
|
[
|
||
|
"content-type" => "text/plain",
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
$examples = [];
|
||
|
$files = $request->files->get("loc_examples");
|
||
|
if (!empty($files)) {
|
||
|
for ($i = 0; $i < count($files); $i++) {
|
||
|
$path = $files[$i]->getClientOriginalName();
|
||
|
array_push($examples, ["image_index" => $i, "path" => urlencode($path)]);
|
||
|
$uploader->uploadExamples("../public/assets/images/examples", $files[$i]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (
|
||
|
$request->request->get("loc_name") == "" ||
|
||
|
$request->request->get("loc_url") == "" ||
|
||
|
$request->request->get("loc_desc") == "" ||
|
||
|
$request->request->get("loc_tags") == ""
|
||
|
) {
|
||
|
$notice = "All fields are required, champ.";
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations | Add",
|
||
|
"notice" => $notice,
|
||
|
"mode" => "add"
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
//check clear, call add method
|
||
|
$response = $locations->addLocation($request, $result["id"]);
|
||
|
if ($response["status"]) {
|
||
|
$notice = "New location added! Take a break.";
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations | Add",
|
||
|
"notice" => $notice,
|
||
|
"mode" => "add"
|
||
|
]);
|
||
|
} else {
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations | Add",
|
||
|
"notice" => $response["message"],
|
||
|
"mode" => "add"
|
||
|
]);
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
//back to index to login
|
||
|
header("Location:/den");
|
||
|
return new Response("<html><body>LOGGED IN</body></html>");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/den/locations/edit/{uuid}", name="location-edit")
|
||
|
*/
|
||
|
public function editLocation(
|
||
|
Request $request,
|
||
|
Auth $auth,
|
||
|
HandleLocations $locations,
|
||
|
ManagerRegistry $doctrine,
|
||
|
FileUploader $uploader,
|
||
|
string $uuid = "1"
|
||
|
): Response {
|
||
|
$result = $auth->status();
|
||
|
if ($result["status"]) {
|
||
|
$location = $locations->getLocationbyUUID($uuid);
|
||
|
return $this->render("back/locations.twig", [
|
||
|
"title" => "Bad Space | Locations | Edit",
|
||
|
"mode" => "edit",
|
||
|
"location" => $location[0]
|
||
|
]);
|
||
|
} else {
|
||
|
header("Location:/den");
|
||
|
return new Response("<html><body>LOGGED IN</body></html>");
|
||
|
}
|
||
|
}
|
||
|
}
|